パッケージの最新版がRPMはないのにdebがある事が多々ある。特にCENTOSのパッケージについては、かなり古いものが多く、最新版をインストールしたい時は、パッケージからでなくソースからになってしまう場合ある。ソースからインストールされたソフトはパッケージ管理されないので、最新版等の更新チェックや他ソフトの依存管理も面倒になってします。
そこで、方法としてはSRPMやdebパッケージからバイナリRPMを作成してインストールする方法かソースからRPMを作成する方法とに限定されてします。
ここでは、debパッケージからRPMパッケージを作成(変換)する方法について書き留めておきます。
変換するにはalienコマンドを利用するが、alienコマンドはyumからのインストールできないので、ソースコードを入手しビルドします。
[root@hoge Source]# wget http://ftp.debian.org/debian/pool/main/a/alien/alien_8.81.tar.gz --2012-02-08 15:02:58-- http://ftp.debian.org/debian/pool/main/a/alien/alien_8.81.tar.gz ftp.debian.org をDNSに問いあわせています... 130.89.148.12, 2001:610:1908:b000::148:12 ftp.debian.org|130.89.148.12|:80 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 63918 (62K) [application/x-gzip] `alien_8.81.tar.gz' に保存中 100%[======================================>] 63,918 53.5K/s 時間 1.2s 2012-02-08 15:02:59 (53.5 KB/s) - `alien_8.81.tar.gz' へ保存完了 [63918/63918]
[root@ora02 Source]# rpmbuild -ta alien_8.81.tar.gz実行中(%prep): /bin/sh -e /var/tmp/rpm-tmp.29269 + umask 022 + cd /usr/src/redhat/BUILD + LANG=C + export LANG + unset DISPLAY + cd /usr/src/redhat/BUILD + rm -rf alien + /bin/gzip -dc /home/shorisawa/Desktop/DownLoad/Source/alien_8.81.tar.gz + tar -xvvf - drwxr-xr-x 0/0 0 2010-05-18 09:57:16 alien/ -rwxr-xr-x 0/0 923 2009-11-21 07:32:47 alien/Makefile.PL drwxr-xr-x 0/0 0 2010-05-18 09:57:56 alien/debian/ -rw-r--r-- 0/0 746 2010-05-18 09:57:52 alien/debian/control -rw-r--r-- 0/0 19 2009-05-29 23:58:47 alien/debian/docs -rwxr-xr-x 0/0 519 2009-10-20 05:34:17 alien/debian/rules -rw-r--r-- 0/0 93524 2010-05-18 09:57:00 alien/debian/changelog -rw-r--r-- 0/0 1302 2009-05-29 23:58:47 alien/debian/copyright -rw-r--r-- 0/0 2 2009-05-29 23:58:47 alien/debian/compat -rw-r--r-- 0/0 917 2009-05-29 23:58:47 alien/alien.spec.in -rw-r--r-- 0/0 2719 2009-05-29 23:58:47 alien/README -rw-r--r-- 0/0 897 2010-05-18 09:57:16 alien/alien.spec drwxr-xr-x 0/0 0 2010-04-29 00:29:14 alien/Alien/ -rw-r--r-- 0/0 10556 2010-04-29 00:29:14 alien/Alien/Package.pm drwxr-xr-x 0/0 0 2010-05-18 09:57:04 alien/Alien/Package/ -rw-r--r-- 0/0 7487 2009-10-20 05:34:17 alien/Alien/Package/Slp.pm -rw-r--r-- 0/0 4735 2009-10-20 05:34:17 alien/Alien/Package/Tgz.pm -rw-r--r-- 0/0 16306 2010-05-18 09:54:12 alien/Alien/Package/Rpm.pm -rw-r--r-- 0/0 17298 2010-04-29 00:27:17 alien/Alien/Package/Deb.pm -rw-r--r-- 0/0 2244 2009-05-29 23:58:47 alien/Alien/Package/Lsb.pm -rw-r--r-- 0/0 7221 2009-10-20 05:34:17 alien/Alien/Package/Pkg.pm -rw-r--r-- 0/0 739 2005-07-14 02:37:34 alien/gendiff.txt -rwxr-xr-x 0/0 16379 2009-12-15 03:42:56 alien/alien.pl -rw-r--r-- 0/0 17976 2005-07-14 02:37:34 alien/GPL -rw-r--r-- 0/0 448 2005-07-14 02:37:34 alien/TODO -rw-r--r-- 0/0 283 2005-07-14 02:37:34 alien/INSTALL -rw-r--r-- 0/0 576 2010-05-18 09:57:16 alien/alien.lsm -rw-r--r-- 0/0 586 2005-07-14 02:37:34 alien/alien.lsm.in + STATUS=0 + '[' 0 -ne 0 ']' + cd alien ++ /usr/bin/id -u + '[' 0 = 0 ']' + /bin/chown -Rhf root . ++ /usr/bin/id -u + '[' 0 = 0 ']' + /bin/chgrp -Rhf root . + /bin/chmod -Rf a+rX,u+w,g-w,o-w . + rm -rf /tmp/alien-8.81.build + exit 0 実行中(%install): /bin/sh -e /var/tmp/rpm-tmp.53925 + umask 022 + cd /usr/src/redhat/BUILD + cd alien + LANG=C + export LANG + unset DISPLAY + perl Makefile.PL PREFIX=/tmp/alien-8.81.build/usr Writing Makefile for Alien + make cp Alien/Package/Deb.pm blib/lib/Alien/Package/Deb.pm cp Alien/Package/Tgz.pm blib/lib/Alien/Package/Tgz.pm cp Alien/Package.pm blib/lib/Alien/Package.pm cp Alien/Package/Rpm.pm blib/lib/Alien/Package/Rpm.pm cp Alien/Package/Pkg.pm blib/lib/Alien/Package/Pkg.pm cp Alien/Package/Lsb.pm blib/lib/Alien/Package/Lsb.pm cp Alien/Package/Slp.pm blib/lib/Alien/Package/Slp.pm perl -pe '$_="" if /use lib/; $_="our \$Version=\"8.81\";\n" if /VERSION_AUTOREPLACE/' alien.pl > alien cp alien blib/script/alien /usr/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/alien Manifying blib/man1/alien.1 Manifying blib/man3/Alien::Package::Tgz.3pm Manifying blib/man3/Alien::Package::Deb.3pm Manifying blib/man3/Alien::Package::Rpm.3pm Manifying blib/man3/Alien::Package.3pm Manifying blib/man3/Alien::Package::Pkg.3pm Manifying blib/man3/Alien::Package::Lsb.3pm Manifying blib/man3/Alien::Package::Slp.3pm perl -i -pe "s/\@version\@/8.81/g"alien.lsm perl -i -pe "s/\@version\@/8.81/g" alien.spec + make pure_install VARPREFIX=/tmp/alien-8.81.build Installing /tmp/alien-8.81.build/usr/lib/perl5/site_perl/5.8.8/Alien/Package.pm Installing /tmp/alien-8.81.build/usr/lib/perl5/site_perl/5.8.8/Alien/Package/Deb.pm Installing /tmp/alien-8.81.build/usr/lib/perl5/site_perl/5.8.8/Alien/Package/Slp.pm Installing /tmp/alien-8.81.build/usr/lib/perl5/site_perl/5.8.8/Alien/Package/Rpm.pm Installing /tmp/alien-8.81.build/usr/lib/perl5/site_perl/5.8.8/Alien/Package/Lsb.pm Installing /tmp/alien-8.81.build/usr/lib/perl5/site_perl/5.8.8/Alien/Package/Pkg.pm Installing /tmp/alien-8.81.build/usr/lib/perl5/site_perl/5.8.8/Alien/Package/Tgz.pm Installing /tmp/alien-8.81.build/usr/share/man/man1/alien.1 Installing /tmp/alien-8.81.build/usr/share/man/man3/Alien::Package::Deb.3pm Installing /tmp/alien-8.81.build/usr/share/man/man3/Alien::Package::Rpm.3pm Installing /tmp/alien-8.81.build/usr/share/man/man3/Alien::Package::Pkg.3pm Installing /tmp/alien-8.81.build/usr/share/man/man3/Alien::Package::Tgz.3pm Installing /tmp/alien-8.81.build/usr/share/man/man3/Alien::Package::Slp.3pm Installing /tmp/alien-8.81.build/usr/share/man/man3/Alien::Package.3pm Installing /tmp/alien-8.81.build/usr/share/man/man3/Alien::Package::Lsb.3pm Installing /tmp/alien-8.81.build/usr/bin/alien Writing /tmp/alien-8.81.build/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/Alien/.packlist install -d /tmp/alien-8.81.build/usr/share/alien/patches \ /tmp/alien-8.81.build/var/lib/alien + find /tmp/alien-8.81.build -not -type d -printf '/%P\n' + sed '/\/man\//s/$/\*/' + /usr/lib/rpm/redhat/brp-compress + /usr/lib/rpm/redhat/brp-strip /usr/bin/strip + /usr/lib/rpm/redhat/brp-strip-static-archive /usr/bin/strip + /usr/lib/rpm/redhat/brp-strip-comment-note /usr/bin/strip /usr/bin/objdump + /usr/lib/rpm/brp-python-bytecompile + /usr/lib/rpm/redhat/brp-java-repack-jars ファイルの処理中: alien-8.81-1 実行中(%doc): /bin/sh -e /var/tmp/rpm-tmp.74313 + umask 022 + cd /usr/src/redhat/BUILD + cd alien + DOCDIR=/tmp/alien-8.81.build/usr/share/doc/alien-8.81 + export DOCDIR + rm -rf /tmp/alien-8.81.build/usr/share/doc/alien-8.81 + /bin/mkdir -p /tmp/alien-8.81.build/usr/share/doc/alien-8.81 + cp -pr debian/changelog GPL README alien.lsm /tmp/alien-8.81.build/usr/share/doc/alien-8.81 + exit 0 Provides: perl(Alien::Package) perl(Alien::Package::Deb) perl(Alien::Package::Lsb) perl(Alien::Package::Pkg) perl(Alien::Package::Rpm) perl(Alien::Package::Slp) perl(Alien::Package::Tgz) Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires: /usr/bin/perl perl perl(Alien::Package::Deb) perl(Alien::Package::Lsb) perl(Alien::Package::Pkg) perl(Alien::Package::Rpm) perl(Alien::Package::Slp) perl(Alien::Package::Tgz) perl(Cwd) perl(Getopt::Long) perl(base) perl(constant) perl(strict) perl(vars) 伸張ファイルの検査中: /usr/lib/rpm/check-files /tmp/alien-8.81.build 書き込み完了: /usr/src/redhat/SRPMS/alien-8.81-1.src.rpm 書き込み完了: /usr/src/redhat/RPMS/noarch/alien-8.81-1.noarch.rpm [root@hoge Source]# ls /usr/src/redhat/RPMS/noarch alien-8.81-1.noarch.rpm [root@hoge Source]#
[root@hoge Source]# rpm -ivh /usr/src/redhat/RPMS/noarch/alien-8.81-1.noarch.rpm 準備中... ########################################### [100%] 1:alien ########################################### [100%] [root@hoge Source]#
# alien --to-rpm --scripts *.deb xxx.rpm generated ...
0 件のコメント:
コメントを投稿