画面:「ローカルシェルを使用して/my/path/to/zshを実行することはできません。」

画面:「ローカルシェルを使用して/my/path/to/zshを実行することはできません。」

ホームディレクトリにコンパイルされたZshシェルでscreenを実行しようとすると、次のエラーが発生します。

> screen
Cannot exec '/my/path/to/zsh/bin/zsh'

cshZシェルは完全に機能し、たとえばシステムシェルを使用して呼び出すと画面を実行できることがわかりました。私は通常、以下に会いますzshexec 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

鉱山には.screenrc2行しかありません。

escape ^A^A
bind o other

重要な場合:/my/path/to/zsh/私のホームディレクトリの下のパスを記号的に参照します。

修正する

  1. 呼び出しの結果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
    
  2. しかし、私はできる正常に実行され、私のシェルから入ります/my/path/to/zsh/bin/zsh。私は通常zshに切り替えますzshcshexec /my/path/to/zsh/bin/zsh

  3. ls詳細は次のとおりです。/my/path/to/zsh/bin/zsh

    -rwxr-xr-x 2 YYYY ZZZZ 651K Jan 3 11:58 zsh*
    
  4. Mi.login が空です(コメントのみ)

  5. .profileファイルがありません
  6. cat/etc/*-release:

    Scientific Linux SL release 5.1 (Boron)
    

この問題の原因と、ローカルインストールで画面が機能する方法についてのアイデアはありますかzsh

答え1

考えられる理由の1つは、端末の所有権を記録するscreen権限(一部のシステムではsetgid)があるためです。utmputmpファイル)、このzshバイナリにはデフォルトのライブラリパスにないライブラリが必要です。 setuidまたはsetgidプログラムを呼び出すと、いくつかの環境変数、特にLD_LIBRARY_PATH

外部画面では可能ですが、内部では不可能で で設定した場合、/my/path/to/zsh/bin/zsh症状が説明されます。LD_LIBRARY_PATH.profile

答え2

これは厄介です。私の変数の値が$SHELL正しくありません(タイプミスがあります)。お詫び申し上げます。これらの質問を投稿して、誰もが時間を無駄にする前に、これらのことを3回確認してみましょう。助けてくださった皆さんに心から感謝します。

関連情報