HOME > Vim RPM Package | Time-stamp: "Feb 08 2003" |
テキストエディタ Vim に日本語入力パッチ im_custom をあてた rpm パッケージを作成します。
Vim 6.1 + im_custom の rpmパッケージを作成するシェルスクリプトです。
2003-02-08 時点での最新、vim 6.1.320 + im_custom061 に対応しています。
RedHatLinux 7.1/7.2/7.3 で動作を確認しています。
実行すると以下のことを自動でおこないます。
$HOME/rpmdir
というディレクトリを作る
実行は一般ユーザでおこないます。wget というダウンロードソフトが必要です。インストールされていない場合は、RedHatLinux の場合 RedHat のサイトから取得できます。
$ ./vim-mkrpm.sh
または
$ sh vim-mkrpm.sh
$ ./vim-mkrpm.sh 2>&1 | tee vim.log
作成された rpm パッケージは、$HOME/rpmdir/RPMS
の下にあります。
rpm 作成までは、一般ユーザで可能です。 作成した rpm パッケージをインストールするときにはスーパーユーザになりましょう。
$ su # rpm -Uvh rpmdir/RPMS/i386/vim-6.1.320_im061-1.i386.rpm
というふうにすればインストールできます。
ただし、RedHatLinux 7.x にインストールするとき、普通は 「依存性の欠如」とかいうエラーがでます。
error: failed dependencies: vim-common conflicts with vim-6.1.320_im061-1
RedHatLinux を標準的にインストールすると、vim も既にインストールされています。インストールされているパッケージ名を知るには、
$ rpm -qa | grep vim
とすると分かります。RedHatLinux 7.1 では、vim-minimal, vim-common が入っていました。RedHatLinux 7.3 はそれに加えて vim-enhanced も入っていました。
今つくった vimパッケージは、RedHat が作った vim-common と競合するように指定してあるので、エラーが出るのは正しい動作です。 解決策は、vim-common のほうを削除すればよいです (rpm パッケージなので、削除したものをインストールしなおすのも簡単ですから、気軽に削除できます)。 ただし、以下のようにすると、
# rpm -e vim-common error: removing these packages would break dependencies: vim-common is needed by vim-minimal-6.0-0.27
vim-common を消したいなら vim-minimal も削除しろ、と言ってきました。
vim-minimal が含むパッケージを調べてみると、
$ rpm -qlv vim-minimal lrwxrwxrwx 1 root root 2 Apr 2 2001 /bin/ex -> vi lrwxrwxrwx 1 root root 2 Apr 2 2001 /bin/rvi -> vi lrwxrwxrwx 1 root root 2 Apr 2 2001 /bin/rview -> vi -rwxr-xr-x 1 root root 377404 Apr 2 2001 /bin/vi lrwxrwxrwx 1 root root 2 Apr 2 2001 /bin/view -> vi $ file /bin/vi /bin/vi: ELF 32-bit LSB executable, Intel 80386, version 1, dynamically linked (uses shared libs), stripped $ ldd /bin/vi libtermcap.so.2 => /lib/libtermcap.so.2 (0x40022000) libdl.so.2 => /lib/libdl.so.2 (0x40026000) libc.so.6 => /lib/libc.so.6 (0x4002a000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) $ rpm -qf /lib/libtermcap.so.2 /lib/libdl.so.2 /lib/libc.so.6 /lib/ld-linux.so.2 ファイル /lib/libtermcap.so.2 はどのパッケージにも属していません glibc-2.2.4-31 glibc-2.2.4-31 glibc-2.2.4-31
となっています (RedHatLinux7.1 の場合)。vim-minimal は、vim-common とは (ライブラリとかの) 直接的な関連は無いようです。
ですので vim-minimal を削除しないまま、vim-common を強制的に削除することもできます (vim-enhanced があればそれも削除します)。
# rpm -e --nodeps vim-common
このあと、先ほど作成したパッケージをインストールすればよいです。しかし、これは あまりお勧めしません。
ここでは、vim-minimal も削除します。vim-enhanced が入っていればそれも削除します。
# rpm -e vim-common vim-minimal vim-enhanced
そして、今作った vim のパッケージをインストールします。
ところで、先ほど vim-minimal を削除したため /bin/vi が無くなってしまいました。
今作ったパッケージには vi
という名前のコマンドが入っていないので、シンボリックリンクを作成しておきます。
# rpm -Uvh rpmdir/RPMS/i386/vim-6.1.320_im061-1.i386.rpm # ln -s /usr/bin/vim /bin/vi
これでインストールは終わりです。
ちなみに rpm パッケージに入っているファイルをインストール前に知りたい場合は、以下のようにします。
$ rpm -qlp rpmdir/RPMS/i386/vim-6.1.320_im061-1.i386.rpm
あと、/bin/vi
ですが Vim6.1 + im_custom では
後述のとおり日本語入力が最初から on になっているようなので、設定ファイルを書き換えるには向いていない感じです。nvi
や オリジナル vi を入れておくほうがいいかもしれません。
vim のコンパイルに関しては、mattnさんのページを参考にしました。
vim パッチを
$ wget ftp://ftp.vim.org/pub/vim/patches/6.1.*
と指定してダウンロードするやりかたは proxy 環境では無理だったので、スクリプトの中では 1 ファイルずつ取得しています。
Vim に関する新規パッチが出た場合、スクリプト最初にある VIM_LASTPATCH や IMCUSTOM の数値を変更してから
$ ./vim-mkrpm.sh
を実行すれば最新版の rpm パッケージが作成できるはずです。以前インストールした Vim+im_custom rpm パッケージを削除しなくても、
# rpm -Uvh <新rpmパッケージ>
すればアップデートできます。
日本語を使用するためには、$HOME/.vimrc
というファイルを作り、以下のように書き込みます。私は日本語入力に POBox を使用するので、そのように im_custom を設定しています
set encoding=japan if has('iconv') set fileencodings+=iso-2022-jp set fileencodings+=utf-8,ucs-2 if &encoding ==# 'euc-jp' set fileencodings+=cp932 else set fileencodings+=euc-jp endif endif set imoptions=pobox,serv:localhost
vim を起動して i で挿入モードにしたとき、いきなり pobox が有効になっています。Ctrl-\ で POBox の ON/OFF ができます。
Emacs + pobox-el とは使い勝手がちがうな... しばらく使いこんでみます。
設定については Vimの使い方 と im_custom のマニュアル を参考にしました。