■ vim-7.0 の deb パッケージを構築した
vim のパッケージって、いっぱい分割されてて面倒そうだから今まで試した事なかったんだけど、vim7 を使いはじめようと思って挑戦してみたのでメモ。
http://debian.fam.cx/ の 自作パッケージを作りたい を参考にして作業しました。
まず、vim.org からソースコードをゲットしてきて展開。今後の事を考えて、なんか空ディレクトリ作って作業した方が良いです。
$ mkdir /usr/local/src/vim $ cd /usr/local/src/vim $ wget ftp://ftp.vim.org/pub/vim/extra/vim-7.0-lang.tar.gz $ wget ftp://ftp.vim.org/pub/vim/unix/vim-7.0.tar.bz2 $ tar xvfj vim-7.0.tar.bz2 $ tar xvfz vim-7.0-lang.tar.gz
作業ディレクトリはそのままバージョン番号になるので名前を適切に変更。dh_make でパッケージに必要な情報を一気に作ります。
$ mv vim70 vim-7.0 $ cd vim-7.0 $ dh_make
dh_make するとパッケージの種類を聞かれたので、ここでは Single の s を選択しました。
次は必要に応じてソースコードにパッチをあてます。ここの作業は、Mac 環境構築 その5 - vim のコンパイル が参考になったと言うか、そのまんま。
自分の場合は migemo が使いたいので、KaoriYa の testdir の中にある vim7 の exe ファイルから 0021-feature_migemo.diff を貰ってきました。この exe ファイルは Windows じゃないと(多分)展開出来ないっぽいので Windows で作業する必要があります。
持ってきたこの migemo.diff ですが、そのままだと使えないので、同じく KaoriYa の「Vim 6.4 差分パッケージ」の中にある kaoriya.diff の ./src/auto/configure の部分(8098行目〜8219行目)を丸々コピーして別途用意する必要があります。ちと面倒臭い。
パッチが用意出来たら /usr/local/src/vim にでも配置して、パッチをあてましょう。
$ pwd /usr/local/src/vim/vim-7.0 $ patch -p0 < ../kaoriya_conf.diff $ patch -p0 < ../0021-feature_migemo.diff
いくつかエラー出ますが、無視して平気です。
最後に debian/rules を編集して configure オプションをいじります。30行目辺りに CFLAGS とか何とか書いてあるので、そこの末尾にでも好きな事を付け足しておいて下さい。私は以下のオプションを付け加えました。
$ vi debian/rules --enable-gui --enable-rubyinterp --enable-perlinterp --with-features=big
(ruby!!)
ここまで終わると準備完了です。vim-7.0 ディレクトリで debuild とすると、パッケージの構築が始まります。結構時間かかります。途中で終わると最初からやり直しになってしまって結構面倒なので、初めは手動で configure make してビルド出来るかどうかを確認した方が良いです。
$ debuild
ジツはこの部分でエライはまったのですが、どうしても size_t がどうとかこうとかってエラー で終わってしまうんですね。
上述の migemo パッチで利用する c/migemo が自分の環境だと /usr/local にインストールされていて、それを使うために環境変数の LD_RUN_PATH を使うようにしていたんだけど、debuild 上で LD_RUN_PATH を有効にするためにはオプションで明示的に渡さないといけなかったようです。手動の make はうまく出来るからなかなか気付けませんでした。
で、こんな風にしました。
$ export LD_RUN_PATH=/usr/local/lib:$LD_RUN_PATH $ debuild -e LD_RUN_PATH
-e で指定した環境変数を引き継げます。複数渡したかったら、debuild -e LD_RUN_PATH -e PATH とかやると良いみたい。
debuild をすると、以下のようなエラーが出る事がありますが、こういった場合は autotools-dev を入れてからもう一度やれば大丈夫です。
dpkg-checkbuilddeps: Unmet build dependencies: autotools-dev dpkg-buildpackage: Build dependencies/conflicts unsatisfied; aborting. dpkg-buildpackage: (Use -d flag to override.) debuild: fatal error at line 765: dpkg-buildpackage failed!
で、debuild が無事に最後まで終わると一つ上のディレクトリに .deb が出来ているはずです。
場合によっては debuild の最後に gpg のエラーが出て abort とか言われて終了する事があるかもしれませんが、配布とかしない限りは特に気にする必要はないので、そのまま作業を続けて構いません。
$ ls .. 0021-feature_migemo.diff vim-7.0.tar.bz2 vim_7.0-1_i386.build kaoriya.diff vim_7.0-1.diff.gz vim_7.0-1_i386.changes vim-7.0/ vim_7.0-1.dsc vim_7.0-1_i386.deb vim-7.0-lang.tar.gz vim_7.0-1.dsc.asc vim_7.0.orig.tar.gz
じゃあ、早速インストールしましょう。
$ cd .. $ dpkg -i vim_7.0-1_i386.deb $ apt-get remove vim-common
vim-common は、古い vim の syntax とかそういうファイルを管理しているのですが、今回一つのパッケージにまとめてしまったので必要ないから削除しました。以上でアップグレード完了ですお疲れ様でした。
$ vim --version VIM - Vi IMproved 7.0 (2006 May 7, compiled May 13 2006 13:50:38)
Posted by Kyosuke Takayama at 2006-05-13 (Sat) 14:52 printable version