突然ですが emacs-w3m をインストールすることにした。
まずは、いつものように環境から。
環境
- Mac OS X Version 10.6.8
- GNU Emacs 24.1.1 (x86_64-apple-darwin, NS apple-appkit-1038.36) of 2012-06-10 on bob.porkrind.org
- emacs-w3m-1.4.4
インストール
こちらのページを参考にして、emacs-w3m をインストールした。
【参考】EmacsでWebページをみる。(Emacs-w3m) - redtower's memo$ wget http://emacs-w3m.namazu.org/emacs-w3m-1.4.4.tar.gz $ tar zxvf emacs-w3m-1.4.4.tar.gz
$ cvs -d :pserver:anonymous@cvs.namazu.org:/storage/cvsroot co emacs-w3m $ cp -pr emacs-w3m/* emacs-w3m-1.4.4
$ cd emacs-w3m-1.4.4 $ ./configure --prefix=~/.emacs.d/elisp/emacs-w3m $ make $ make install
~/.emacs に以下の内容を記述。
(add-to-list 'load-path "~/.emacs.d/emacs-w3m/share/emacs/site-lisp/w3m") (add-to-list 'Info-additional-directory-list "~/.emacs.d/elisp/emacs-w3m/share/info") (require 'w3m-load)
エラーへの対応
M-x w3m として w3m を起動する。しかし、起動時に以下のエラーが表示され、起動に失敗する。
Wrong type argument: arrayp, nil
以下のページを参照すると、Emacs 22 未満でバイトコンパイルした *.elc を Emacs 23 でロードしているのが原因とのこと。
【参考】Re: (wrong-type-argument arrayp nil) in w3m-ems「*.elc を直接開いてみると、先頭の方にバイトコンパイルした Emacs のバージョンが記載されている」とのことなので、インストールされた w3m.elc の先頭を確認してみると Emacs 22.1.1 でバイトコンパイルされていた。
「おかしい。。。自分の使っている Emacs は 24.1.1 だぞ。。。」と思い、コマンドプロンプトにて Emacs のバージョンを確認してみた。
$ which emacs /usr/bin/emacs $ emacs --version GNU Emacs 22.1.1
ということで、Emacs 22.1.1 がバイトコンパイルに使われていることが判明した。これは、GUI で使っている Emacs と CUI で使っている Emacs が別のバージョンの Emacs であったことに原因がある。
- CUI - /usr/bin/emacs
- GUI - /Applications/Emacs.app/Contents/MacOS/Emacs
それぞれ CUI は 22.1.1、GUI は 24.1.1 であった。
よって、GUI の Emacs で w3m.el を開き、M-x byte-compile-file で w3m.el をバイトコンパイル。するとコンパイルエラー。先ほどのページのスレッドを辿ると「w3m-ems.el でエラーになる」とのことだったので、w3m-ems.el をコンパイルした後に、w3m.el をバイトコンパイル。
【参考】Re: (wrong-type-argument arrayp nil) in w3m-emsすると今度は、バイトコンパイルに成功!!
そして、M-x w3m をするとエコーエリアに以下のエラー。
Searching for program: No such file or directory, /usr/bin/w3m
/usr/bin/w3m にシムリンクを貼る。
$ which w3m /usr/local/bin/w3m $ sudo ln -s /usr/local/bin/w3m /usr/bin/w3m
をして、M-x w3m をしたところ、無事に emacs-w3m を起動することが出来ました!!
しかし、よくよく先ほどのスレッドのページを見なおしてみると「EMACS を指定するようにして解決しました。」とのこと。以下のように make 実行時に EMACS を指定してインストールすると、無事に emacs-w3m をインストールすることが出来た。。。手動で w3m.el や w3m-ems.el をバイトコンパイルする必要なんてなかった。。。
$ ./configure --prefix=~/.emacs.d/elisp/emacs-w3m $ make EMACS=/Applications/Emacs.app/Contents/MacOS/Emacs $ make install
何はともあれ、emacs-w3m が動いて良かった!!これで次のステップに進めるょっ!!
(・∀・)
0 件のコメント:
コメントを投稿