2006-05-13 (Sat)

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

この記事へのコメント

コメントはお気軽にどうぞ

Cookie に保存しますか?


・スパム対策のため、http:// を含むコメントの投稿は出来ません。
・スパムチェックのため、投稿がすぐに反映されない場合があります。
・メールアドレス入力欄には何も入力しないでください。

トラックバック

トラックバックURL: http://espion.just-size.jp/mt-tb.cgi/576


この記事のリンク元

 
Copyright (C) Kyosuke Takayama, All rights reserved.