
root権限なしでLinuxシステムにZshをインストールしようとしています。ソースtarballをダウンロードし、以下を実行しました。
./configure --prefix=<my_installation_path>
しかし、私は次のような結果を得ます:
構成:エラー:「システムに端末処理ライブラリが見つかりませんでした。これはcursesまたはncursesというライブラリです。システムソフトウェアパッケージに「curses-devel」または「ncurses-devel」というライブラリをインストールする必要があります。
ncursesをインストールします。
私はこのシステムのルートではないので、ncurses
手動でダウンロードしてインストールしましたが(github.comも使用./configure --prefix=<my_installation_path>
)うまくいくようです。
その後、次のパスを更新しました。
INSTALLATION_PATH='/path/to/installation'
export PATH=$INSTALLATION_PATH/bin/:$PATH
export LD_LIBRARY_PATH=$INSTALLATION_PATH/lib:$LD_LIBRARY_PATH
export CFLAGS=-I$INSTALLATION_PATH/include
そして、Zshを再インストールしようとしましたが、同じncurses
エラーが発生しました。私が知っている限り、上記のパス変数は正しい場所を指しており、これをシェルで確認できます。 Zshが認識されないのはなぜですか?ncurses?
答え1
少なくとも1つが欠けているようです。これを渡しているのでCFLAGS=-I/path/to/installation/include
、コンパイルスクリプトはヘッダファイルを見つけることができますが、コンパイルスクリプトに()へのリンク先のライブラリを見つけるようにする必要がありますlibncurses.a
。インストール手順CPPFLAGS
にはCFLAGS
。
export CPPFLAGS="-I$INSTALLATION_PATH/include" LDFLAGS="-L$INSTALLATION_PATH/lib"
完全なエラーメッセージを読んで、./configure
より多くの情報を含むログを確認してください(実行されたコマンドとその出力に関する詳細な履歴がありますconfig.log
)。configure
答え2
修正する:
Gilesの回答に従って更新しましたが、CPPFLAGS
その間LDFLAGS
に問題は消えましたconfigure
。
ただし、次のプロセス中にエラーが発生しますmake
。
<INSTALLATION_PATH>/lib/libncurses.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
私もrecompile with -fPIC
。どうすればいいですか?ncurses
ncurses
アップデート2:
私はそれを再コンパイルしましたncurses
。今回は以下を行いました。
export CXXFLAGS=" -fPIC"
export CFLAGS=" -fPIC"
前にあり、次にmake
追加されます。これで問題が解決したようです!--enable-shared
./configure
ncurses
Zsh