ホームディレクトリにコンパイルされたZshシェルでscreenを実行しようとすると、次のエラーが発生します。
> screen
Cannot exec '/my/path/to/zsh/bin/zsh'
csh
Zシェルは完全に機能し、たとえばシステムシェルを使用して呼び出すと画面を実行できることがわかりました。私は通常、以下に会いますzsh
。exec zsh
私のシステムに関する追加情報は次のとおりです。
> echo $SHELL
/my/path/to/zsh/bin/zsh
> echo $ZSH_VERSION
5.0.0
> which screen
/usr/bin/screen
> screen --version
Screen version 4.00.03 (FAU) 23-Oct
鉱山には.screenrc
2行しかありません。
escape ^A^A
bind o other
重要な場合:/my/path/to/zsh/
私のホームディレクトリの下のパスを記号的に参照します。
修正する
呼び出しの結果
file
:> file /my/path/to/zsh/bin/zsh > /~/sw/zsh/bin/zsh: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for > GNU/Linux 2.6.9, dynamically linked (uses shared libs), > for GNU/Linux 2.6.9, stripped
しかし、私はできる正常に実行され、私のシェルから入ります
/my/path/to/zsh/bin/zsh
。私は通常zshに切り替えますzsh
csh
exec /my/path/to/zsh/bin/zsh
ls
詳細は次のとおりです。/my/path/to/zsh/bin/zsh
-rwxr-xr-x 2 YYYY ZZZZ 651K Jan 3 11:58 zsh*
Mi
.login
が空です(コメントのみ).profile
ファイルがありませんcat/etc/*-release
:Scientific Linux SL release 5.1 (Boron)
この問題の原因と、ローカルインストールで画面が機能する方法についてのアイデアはありますかzsh
?
答え1
考えられる理由の1つは、端末の所有権を記録するscreen
権限(一部のシステムではsetgid)があるためです。utmp
utmp
ファイル)、このzshバイナリにはデフォルトのライブラリパスにないライブラリが必要です。 setuidまたはsetgidプログラムを呼び出すと、いくつかの環境変数、特にLD_LIBRARY_PATH
。
外部画面では可能ですが、内部では不可能で で設定した場合、/my/path/to/zsh/bin/zsh
症状が説明されます。LD_LIBRARY_PATH
.profile
答え2
これは厄介です。私の変数の値が$SHELL
正しくありません(タイプミスがあります)。お詫び申し上げます。これらの質問を投稿して、誰もが時間を無駄にする前に、これらのことを3回確認してみましょう。助けてくださった皆さんに心から感謝します。