こんにちは、童爺です。
今回は、CentOS7へのw3mのインストールについて記述したいと思います。
理由は、「sodu yum install -y w3m」でインストール出来なかったのと、ソースからのコンパイルでリンクエラーとなり、インストールできず丸2日悩んだからです。
では、インストール手順を記述していきたいと思います。
手順
gcのヘッダが必要なのでインストールする。
また、tputsでエラーが発生する可能性があるので、ncursesもインストールする。
$ sudo yum install gc-devel $ sudo yum install ncurses-devel
次に、ソースコードをダウンロードします。
https://sourceforge.net/projects/w3m/files/w3m/にアクセスして、最新のw3m-0.5.3のソースコードをダウンロードします。
~/ダウンロード/配下に、w3m-0.5.3.tar.gzがダウンロードされるので、以下のコマンドを入力します。
$ mv ダウンロード/w3m-0.5.3.tar.gz .. $ tar zxvf w3m-0.5.3.tar.gz
解凍したディレクトリに入ります。
$ cd w3m-0.5.3
コンパイルエラーになるので、以下のコマンドを入力します。
理由は、file_handleが既に定義されているので二重定義になるからです。
istream.cとistream.hに定義されているfile_handleの頭にw3m_を付与します。
$ sed -i -e "s/file_handle/w3m_file_handle/g" istream.?
main.cを変更します。
これもコンパイルエラー対策です。
$ vi main.c
315行目の「else if (orig_GC_warn_proc)」を「else if (orig_GC_warn_proc = GC_get_warn_proc())」に変更し、続けて837行目の「orig_GC_warn_proc = GC_set_warn_proc(wrap_GC_warn_proc);」を「GC_set_warn_proc(wrap_GC_warn_proc);」に変更します。
configureを変更します。
$ vi configure
6930行目の「IMGX11LDFLAGS=”`${PKG_CONFIG} –libs gdk-pixbuf-2.0 gdk-pixbuf-xlib-2.0 gtk+-2.0`”」を「IMGX11LDFLAGS=”`${PKG_CONFIG} –libs gdk-pixbuf-2.0 gdk-pixbuf-xlib-2.0 gtk+-2.0` -lX11“」に変更します。
こうしないと、リンクエラーになります。
ビルドとインストールを行います。
$ ./configure $ sudo make && make install
以上です。
これで、以下のコマンドを入力した結果が下図です。
$ w3m http://yahoo.co.jp
まとめ
どうでしょうか?
上手く言ったでしょうか?
自分は、configureファイルに-lX11を追加するまで、意味不明のリンクエラーに悩まされました。
こうして見返してみると簡単だったような、それともpkg-configがX11ライブラリを出力してくれる様に変更した方がスマートだったような気がします。
皆さんもチャレンジしてみてください。
それではまた。
でわでわ。
参考文献
imkitchenさんのWebサイト