screen 4.0.3_5 のインストール
今まで普通にscreenを利用していて,便利やったわけやけど,
今日screenを使おうとして,screenコマンドを実行すると,
なぜかscreenが見つからないという罠にはまる
消したわけでもないし,なんで?!って思ってしまった
仕方ないので,インストールし直すことに
# cd /usr/ports/sysutils/screen # make install clean
すると,エラーで落ちる
===> Building for screen-4.0.3_5 cc -c -I. -I. -O2 -pipe -march=prescott -fno-strict-aliasing screen.c In file included from screen.c:240: extern.h:149: error: conflicting types for 'execvpe' /usr/include/unistd.h:338: error: previous declaration of 'execvpe' was here *** Error code 1 [#r3cde4d4] Stop in /usr/ports/sysutils/screen/work/screen-4.0.3. *** Error code 1 [#j6937a1c] Stop in /usr/ports/sysutils/screen. *** Error code 1 [#o4b86d92] Stop in /usr/ports/sysutils/screen.
どうやら関数がコンフリクトしているらしい
仕方ないので,とりあえず汚い方法と思いつつ,
ソースコードの中の149行目をコメントアウト
# cd work/screen-4.0.3 # vim extern.h
// execvpe () // きちんとしたのは忘れた..
コメントアウトした後,再びインストールをすると,もう1度止まる
消してしまったので仕方ないけど,window.cの1392(?)行目で再びエラー
再びコンフリクトしているので,こちらもコメントアウト
こちらは,さっきのとは違い,普通に実装してあるけど,
仕方ないので,関数自体をすべてコメントアウトする
# vim window.c
その後,再度make installすると,無事にインストール完了
しかし,こんなんでいいんかいな…
とりあえず,screenをインストールするために,
エラーメッセージを見ながら作業するために,
いっぱい端末を開くのがしんどかったので,
screenを使いたいと思ったのはヒミツだ!