概説
ここでは、CentOS5.10の環境で、Vim7.3のsrc.rpmファイルから、以下のrpmファイル群を作成する方法を示します。
- vim-X11-7.3.712-1.x86_64.rpm
- vim-common-7.3.712-1.x86_64.rpm
- vim-debuginfo-7.3.712-1.x86_64.rpm
- vim-enhanced-7.3.712-1.x86_64.rpm
- vim-filesystem-7.3.712-1.x86_64.rpm
- vim-minimal-7.3.712-1.x86_64.rpm
前提
作業はrootユーザーのカレントディレクトリ「/root」で行うこととします。
ビルドに必要な関連パッケージの確認
$rpm-qp--requiresftp://rpmfind.net/linux/fedora/linux/releases/18/Fedora/source/SRPMS/v/vim-7.3.712-1.fc18.src.rpmwarning:ftp://rpmfind.net/linux/fedora/linux/releases/18/Fedora/source/SRPMS/v/vim-7.3.712-1.fc18.src.rpm:HeaderV3RSA/SHA256signature:NOKEY,keyIDde7f38bdpython-develncurses-develgettextperl-develperl(ExtUtils::Embed)libacl-develgpm-develautoconflibselinux-develruby-develrubydesktop-file-utils>=0.2.93gtk2-devellibSM-devellibXt-devellibXpm-develrpmlib(FileDigests)<=4.6.0-1rpmlib(CompressedFileNames)<=3.0.4-1
$rpm-qp--requiresftp://rpmfind.net/linux/fedora/linux/releases/18/Fedora/source/SRPMS/a/autoconf-2.69-3.fc18.src.rpmwarning:ftp://rpmfind.net/linux/fedora/linux/releases/18/Fedora/source/SRPMS/a/autoconf-2.69-3.fc18.src.rpm:HeaderV3RSA/SHA256signature:NOKEY,keyIDde7f38bdm4>=1.4.14emacsperl-macrosperl(Data::Dumper)gcc-gfortranerlangrpmlib(FileDigests)<=4.6.0-1rpmlib(CompressedFileNames)<=3.0.4-1
事前準備
上記の手順で確認した、ビルドするために必要な関連パッケージをインストールします。
なお、perl-devel、perl-macrosについては、標準パッケージに含まれていないため、ここではインストールを行いません。
参考URL:Buliding Vim 7.3 RPM packages for 64-bit CentOS 5 / 6
# yum groupinstall "Development Tools"# yum install \>python-devel\>ncurses-devel\>libacl-devel\>gpm-devel\>libselinux-devel\>ruby-devel\>gtk2-devel\>libSM-devel\>libXt-devel\>libXpm-devel\>emacs\>erlang
m4のインストール
Vim7.3のsrc.rpmの取得元として、Fedora18(CentOS5.x相当)を利用しましたが、Vim7.3のビルドには、上記の確認作業でも分かるようにautoconfが必要となります。
さらに、autoconfはm4の1.4.14以上を依存パッケージとして要求するため、ここでは、Fedora18でのm4の最新版をsrc.rpmからビルドしインストールします。(CentOS5.x標準のm4のバージョンは1.4.5)
# wget ftp://rpmfind.net/linux/fedora/linux/releases/18/Fedora/source/SRPMS/m/m4-1.4.16-5.fc18.src.rpm# rpm -Uvh --nomd5 m4-1.4.16-5.fc18.src.rpm# rpmbuild -ba /usr/src/redhat/SPECS/m4.spec・・省略・・Checkingforunpackagedfile(s):/usr/lib/rpm/check-files/var/tmp/m4-1.4.16-5-root-rootWrote:/usr/src/redhat/SRPMS/m4-1.4.16-5.src.rpmWrote:/usr/src/redhat/RPMS/x86_64/m4-1.4.16-5.x86_64.rpmWrote:/usr/src/redhat/RPMS/x86_64/m4-debuginfo-1.4.16-5.x86_64.rpmExecuting(%clean):/bin/sh-e/var/tmp/rpm-tmp.25937+umask022+cd/usr/src/redhat/BUILD+cdm4-1.4.16+rm-rf/var/tmp/m4-1.4.16-5-root-root+exit0
もし、rpmbuildコマンドでエラーになるようであれば、下記の手順でspecファイルを修正し、再度ビルドを行います。
参考URL:Porting Fedora RPM Spec File to CentOS Error: find: invalid predicate
# vi /usr/src/redhat/SPECS/m4.spec
Provides:bundled(gnulib)
Provides:bundled(gnulib)BuildRoot:%{_tmppath}/%{name}-%{version}-%{release}-buildroot←この行を追加
m4のパッケージが正常に作成されたら、インストールを行います。
# rpm -Uvh /usr/src/redhat/RPMS/x86_64/m4-1.4.16-5.x86_64.rpm
autoconfのインストール
m4がインストールされたら、次はautoconfのインストールを行います。手順はほぼm4と同じです。
# wget ftp://rpmfind.net/linux/fedora/linux/releases/18/Fedora/source/SRPMS/a/autoconf-2.69-3.fc18.src.rpm# rpm -Uvh --nomd5 autoconf-2.69-3.fc18.src.rpm# rpmbuild -ba /usr/src/redhat/SPECS/autoconf.specerror:Failedbuilddependencies:perl-macrosisneededbyautoconf-2.69-3.noarch
rpmbuildコマンドの実行直後に依存パッケージのエラーで怒られます。理由は、標準パッケージとして存在しないperl-macrosが導入されていないためです。
この問題を解決するために、specファイルを修正し、perl-macrosを依存パッケージから除外します。
# vi /usr/src/redhat/SPECS/autoconf.spec
BuildRequires:perl-macros
#BuildRequires: perl-macros ←この行をコメントアウト
気を取り直して、ビルドの再実行を行います。
ただし、ビルド途中のチェック処理でエラーが発生し、ビルドが正常に完了しないため、ここではチェック処理をスキップする指定を付加しています。
# rpmbuild --without check -ba /usr/src/redhat/SPECS/autoconf.spec・・省略・・Checkingforunpackagedfile(s):/usr/lib/rpm/check-files/var/tmp/autoconf-2.69-3-root-rootWrote:/usr/src/redhat/SRPMS/autoconf-2.69-3.src.rpmWrote:/usr/src/redhat/RPMS/noarch/autoconf-2.69-3.noarch.rpmExecuting(%clean):/bin/sh-e/var/tmp/rpm-tmp.12305+umask022+cd/usr/src/redhat/BUILD+cdautoconf-2.69+rm-rf/var/tmp/autoconf-2.69-3-root-root+exit0
autoconfのパッケージが正常に作成されたら、インストールを行います。
# rpm -Uvh /usr/src/redhat/RPMS/noarch/autoconf-2.69-3.noarch.rpm
Vim7.3のsrc.rpmを取得
# wget ftp://rpmfind.net/linux/fedora/linux/releases/18/Fedora/source/SRPMS/v/vim-7.3.712-1.fc18.src.rpm
依存パッケージの確認
autoconfと同様に、ビルドを行うと依存パッケージのエラーで怒られるので、今回も標準パッケージとして存在しないperl-develを依存パッケージから除外します。
# wget ftp://rpmfind.net/linux/fedora/linux/releases/18/Fedora/source/SRPMS/v/vim-7.3.712-1.fc18.src.rpm# rpm -Uvh --nomd5 vim-7.3.712-1.fc18.src.rpm# rpmbuild -ba /usr/src/redhat/SPECS/vim.specerror:Failedbuilddependencies:perl-develisneededbyvim-7.3.712-1.x86_64
# vi /usr/src/redhat/SPECS/vim.spec
BuildRequires:python-develncurses-develgettextperl-devel
BuildRequires:python-develncurses-develgettext←「perl-devel」を削除する
ビルドの再実行を行います。
# rpmbuild -ba /usr/src/redhat/SPECS/vim.spec・・省略・・Checkingforunpackagedfile(s):/usr/lib/rpm/check-files/var/tmp/vim-7.3.712-1-root-rootWrote:/usr/src/redhat/SRPMS/vim-7.3.712-1.src.rpmWrote:/usr/src/redhat/RPMS/x86_64/vim-common-7.3.712-1.x86_64.rpmWrote:/usr/src/redhat/RPMS/x86_64/vim-minimal-7.3.712-1.x86_64.rpmWrote:/usr/src/redhat/RPMS/x86_64/vim-enhanced-7.3.712-1.x86_64.rpmWrote:/usr/src/redhat/RPMS/x86_64/vim-filesystem-7.3.712-1.x86_64.rpmWrote:/usr/src/redhat/RPMS/x86_64/vim-X11-7.3.712-1.x86_64.rpmWrote:/usr/src/redhat/RPMS/x86_64/vim-debuginfo-7.3.712-1.x86_64.rpmExecuting(%clean):/bin/sh-e/var/tmp/rpm-tmp.99047+umask022+cd/usr/src/redhat/BUILD+cdvim73+rm-rf/var/tmp/vim-7.3.712-1-root-root+exit0
以下のディレクトリにファイルが作成されています。
# ls -l /usr/src/redhat/RPMS/x86_64/vim-*-rw-r--r--1rootroot1191026Dec1302:46/usr/src/redhat/RPMS/x86_64/vim-X11-7.3.712-1.x86_64.rpm-rw-r--r--1rootroot7732543Dec1302:46/usr/src/redhat/RPMS/x86_64/vim-common-7.3.712-1.x86_64.rpm-rw-r--r--1rootroot6069786Dec1302:46/usr/src/redhat/RPMS/x86_64/vim-debuginfo-7.3.712-1.x86_64.rpm-rw-r--r--1rootroot1044001Dec1302:46/usr/src/redhat/RPMS/x86_64/vim-enhanced-7.3.712-1.x86_64.rpm-rw-r--r--1rootroot11065Dec1302:46/usr/src/redhat/RPMS/x86_64/vim-filesystem-7.3.712-1.x86_64.rpm-rw-r--r--1rootroot401410Dec1302:46/usr/src/redhat/RPMS/x86_64/vim-minimal-7.3.712-1.x86_64.rpm
現在インストールされているVimのバージョンを確認
# rpm -qa |grep vimvim-enhanced-7.0.109-7.2.el5vim-minimal-7.0.109-7.2.el5vim-common-7.0.109-7.2.el5
作成したVim7.3のrpmをインストールする(現在インストールされているものと入れ替え)
vim-filesystem
は vim-common
と依存関係があるため、一緒に入れます。
# rpm -e --nodeps vim-enhanced vim-common vim-minimal# rpm -Uvh /usr/src/redhat/RPMS/x86_64/vim-{m,c,e,f}*Preparing...########################################### [100%]1:vim-minimal########################################### [ 25%]2:vim-filesystem########################################### [ 50%]3:vim-common########################################### [ 75%]4:vim-enhanced########################################### [100%]