--/--/-- (--)
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
2010/06/30 (水)
zshとかvimをホームディレクトリにインストールする方法は
http://tochiii.blog119.fc2.com/blog-entry-225.html
http://tochiii.blog119.fc2.com/blog-entry-224.html
とかで説明したけど、たまに以下のようなエラーを吐くことがある。

% ./configure ...
...
configure: error: "No terminal handling library was found on your system.
This is probably a library called 'curses' or 'ncurses'. You may
need to install a package called 'curses-devel' or 'ncurses-devel' on your
system."
See `config.log' for more details.

とか

checking for tgetent()... configure: error: NOT FOUND!
You need to install a terminal library; for example ncurses.
Or specify the name of the library with --with-tlib.
make[1]: *** [config] Error 1
make[1]: Leaving directory `/h/sgovinda/tmp/vim72/src'
make: *** [first] Error 2

である。
どういうことかというと

「ターミナルを制御するライブラリがないよー!エラー!」

と言っているのである。

ターミナルの制御には一般的にcursesとかncursesと呼ばれるものが使われる。
UNIX系システムで端末を制御するためのAPIを提供しているライブラリである。

zshやvimは内部でこういった端末制御のAPIを使用しているので、ncurses等がないとコンパイル時にエラーになってインストールできないのだ。

すなわち、このエラーを回避するにはncursesをインストールしてやれば良いのだ!

% wget http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.7.tar.gz
% mkdir local
% mkdir src
% cd src
% tar zxvf ncurses-5.7.tar.gz
% cd ncurses-5.7
% ./configure --prefix=$HOME/local
% make
% make install

今回は~/localにインストールしたがホームのどこにインストールしてもかまわない。

ところで、ncursesが首尾よくインストールできたとしても、vimやzshのインストール時にそのncursesを参照するように指定しなければならない。

なんか「ncursesはroot権限でインストールしないと駄目ですよ」みたいな事を平気でブログとか掲示板に書いてる人々がいるけど、決してそんなことはない。
zshとかvimをインストールするときに、参照するライブラリパスを追加してやれば良いのだ。

以下の環境変数を定義してやればインストールできるようになるはず。
% export CPPFLAGS="-I$HOME/local/include"
% export LDFLAGS="-L$HOME/local/lib"

これは、
% ./configure --help
で詳細を見ることができると思う。

ちなみに、vimのインストールには上記の環境変数を定義する以外にも
--with-local-dir=$HOME/local
オプションを追加してやることで参照するライブラリパスを変更できる。

こういったことは、manとか--helpを普段から使用しているユーザにしかわからない。
最近のLinuxユーザはわからないことがあるとすぐにググって解決しようとするけど、まずはmanコマンドとか--helpオプションで詳細を調べるクセをつけるべきだと思う。

普段からmanとか--helpを使っていると、普遍的なオプションのルールみたいなものが良くわかってくるし、新しい発見も多い。

で、そのうち、zshの補完機能で未知のオプションを指定するようになると、それはもう立派なzsh信者である
コメント
この記事へのコメント
大変参考になりました。ありがとうございます。

>>最近のLinuxユーザはわからないことがあるとすぐにググって解決しようとするけど、まずはmanコマンドとか--helpオプションで詳細を調べるクセをつけるべきだと思う。
まさに自分のことだったので、耳が痛いです。
確かに、応用性を持たせるためにも部分的な知識より基礎から理解すべきですよね。苦しみながら@@;

以後気をつけます。
2011/01/27 (木) 22:23 | URL | linux初心者#mQop/nM. [ 編集 ]
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事へのトラックバック
この記事のトラックバックURL
http://tochiii.blog119.fc2.com/tb.php/227-8fccf5aa
この記事にトラックバックする(FC2ブログユーザー)
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。