い〜さねっと

雑多メモ

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を使いたいと思ったのはヒミツだ!