新しくインストールされたAlmaLinux 9(Puttyを使用)でLINESとCOLUMNSの問題

新しくインストールされたAlmaLinux 9(Puttyを使用)でLINESとCOLUMNSの問題

Almalinux 9で私が解決できない奇妙な問題に気付いたようです。

LINES変数とCOLUMNS変数は、対話型の非ログインシェルの場合はフルサイズに設定されていますが、対話型ログインシェルの場合はフルサイズに設定されていないようです。残念ながら、これはユーザーがvimログインしlessたときに一部のツールが正しく機能しないように見える副作用がありますman(提供されたVMでコンソールを有効にすると、対話型の非ログインのルートシェルが表示されますqemu-guest-agent)。

以前の展開ではこの問題は発生せず、検索によってこれらの値を自動的に設定するシェルに関するいくつかの情報が見つかりました(bashv5.1.8を使用しています)。すべてのインタラクティブシェルに対してシェルオプションを設定してこれを確認しましたが、ターミナルのサイズを変更しようとするcheckwinsizeと変更は表示されません(明らかにこれはPuttyターミナルとAlmalinux 9にのみ影響するようです)。on/etc/bashrc

/tmp/size.sh私の問題が何であるかを示すために、各セッションで次のエイリアス(場所)を実行します。

alias test_size="echo -e \
    \"login: \$(shopt -q login_shell && echo 'yes' || echo 'no') \
    \ninteractive: \$([[ -t 0 || -p '/dev/stdin' ]] && echo 'yes' || echo 'no') \
    \n\$(id) \
    \n\$(tty) \$TERM \${COLUMNS}x\${LINES} \
    \""

KVMのデフォルトコンソールには、正しいフルスクリーンサイズ(列= 425、行= 79)があります。

bash-5.1# . /tmp/size.sh
bash-5.1# test_size
login: no
interactive: yes
uid=0(root) gid=0(root) groups=0(root) context=system_u:system_r:unconfined_t:s0
/dev/pts/0 putty-256color 425x79

非ログインシェルのサイズも正確です。

bash-5.1# su test2
[test2@files01 /]$ . /tmp/size.sh
[test2@files01 /]$ test_size
login: no
interactive: yes
uid=1001(test2) gid=1001(test2) groups=1001(test2) context=system_u:system_r:unconfined_t:s0
/dev/pts/0 putty-256color 425x79
[test2@files01 /]$
exit

ログインシェルのサイズは非常に小さいです(COLUMNS = 80、LINES = 24)。

bash-5.1# su - test2
[test2@files01 ~]$ . /tmp/size.sh
[test2@files01 ~]$ test_size
login: yes
interactive: yes
uid=1001(test2) gid=1001(test2) groups=1001(test2) context=system_u:system_r:unconfined_t:s0
/dev/pts/0 putty-256color 80x24
[test2@files01 ~]$
logout

これを入力している間、他のコンピュータの端末が正しく実行され、サイズ変更に反応することがわかりました。

適切なサイズの対話型ログインシェル:

[root@files01 ~]# . /tmp/size.sh 
[root@files01 ~]# test_size
login: yes  
interactive: yes    
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023    
/dev/pts/1 xterm-256color 238x58 

これで問題になる可能性がありますが、TERM=putty-256color同じ端末が他の展開でも機能するかどうかはわかりません。私はAlmalinux 9で利用可能な最新バージョンであるように見えるterminfoをncurses-base-6.2-10.20210508提供しました。putty-256color最新のncursesterminfo(v6.4.20231202)を使用したローリングリリースがあり、Puttyを使用すると正しく機能し、サイズが変更されます。

私の質問は、正しいフルスクリーンサイズを取得し、checkwinsizeログインしているすべての端末で作業する方法です。他のインストール(主にCentOS 7/8、Debian 10/11/12、およびOpenSUSE Tumbleweed)では、この特定の問題は表示されません。各ユーザーに対して行と列のサイズをハードコードすることを避けたいと思います。サポートが必要な場合は、追加情報を提供できます。

ありがとう

ベストアンサー1

おすすめ記事