Posted at

GentooでRPMパッケージを作成する

More than 3 years have passed since last update.

Gentoo Linuxのパッケージマネージャである Portage は RPM 形式のバイナリパッケージも生成することができます。

ただし、Gentooの環境と作成したRPMをインストールする環境でダイナミックリンクしているライブラリに差異があると、インストールすることができないので注意です。

スタティックリンクできる(USE="static")パッケージであれば動作させることが出来ると思います。

また、CentOS7 に作成したRPMパッケージをインストールしようとすると、filesystem パッケージと conflict するため、インストールすることが出来ませんでした。

CentOS6であれば、インストール出来ることを確認しています。


生成方法1: emerge コマンド

$ sudo emerge --pkg-format=rpm --buildpkgonly <category>/<package>


$ sudo emerge --pkg-format=rpm --buildpkgonly net-misc/wget

$ ls -l /usr/portage/rpm/net-misc/
-rwxr-xr-x. 1 root root 358526 Apr 13 21:56 wget-1.17.1-r1.rpm
$ rpm2tar /usr/portage/rpm/net-misc/wget-1.17.1-r1.rpm
$ tar tvf wget-1.17.1-r1.tar
drwxr-xr-x root/root 0 2016-04-13 21:57 ./
drwxr-xr-x root/root 0 2016-04-13 21:57 ./usr/
drwxr-xr-x root/root 0 2016-04-13 21:57 ./usr/share/
drwxr-xr-x root/root 0 2016-04-13 21:57 ./usr/share/man/
drwxr-xr-x root/root 0 2016-04-13 21:57 ./usr/share/man/man1/
-rw-r--r-- root/root 33979 2016-04-13 21:56 ./usr/share/man/man1/wget.1.gz
drwxr-xr-x root/root 0 2016-04-13 21:57 ./usr/share/locale/
drwxr-xr-x root/root 0 2016-04-13 21:57 ./usr/share/locale/ja/
drwxr-xr-x root/root 0 2016-04-13 21:57 ./usr/share/locale/ja/LC_MESSAGES/
-rw-r--r-- root/root 78527 2016-04-13 21:56 ./usr/share/locale/ja/LC_MESSAGES/wget.mo
drwxr-xr-x root/root 0 2016-04-13 21:57 ./usr/share/info/
-rw-r--r-- root/root 69498 2016-04-13 21:56 ./usr/share/info/wget.info.gz
drwxr-xr-x root/root 0 2016-04-13 21:57 ./usr/share/doc/
drwxr-xr-x root/root 0 2016-04-13 21:57 ./usr/share/doc/wget-1.17.1-r1/
-rw-r--r-- root/root 2252 2016-04-13 21:56 ./usr/share/doc/wget-1.17.1-r1/sample.wgetrc.bz2
-rw-r--r-- root/root 2014 2016-04-13 21:56 ./usr/share/doc/wget-1.17.1-r1/README.bz2
-rw-r--r-- root/root 12245 2016-04-13 21:56 ./usr/share/doc/wget-1.17.1-r1/NEWS.bz2
-rw-r--r-- root/root 919 2016-04-13 21:56 ./usr/share/doc/wget-1.17.1-r1/MAILING-LIST.bz2
-rw-r--r-- root/root 1190 2016-04-13 21:56 ./usr/share/doc/wget-1.17.1-r1/AUTHORS.bz2
drwxr-xr-x root/root 0 2016-04-13 21:57 ./usr/bin/
-rwxr-xr-x root/root 482632 2016-04-13 21:56 ./usr/bin/wget
drwxr-xr-x root/root 0 2016-04-13 21:57 ./etc/
-rw-r--r-- root/root 4925 2016-04-13 21:56 ./etc/wgetrc


生成方法2: ebuild コマンド

$ ebuild xxx-1.0.0.ebuild rpm


$ cd /usr/portage/net-misc/wget

$ ebuild wget-1.17.1-r1.ebuild rpm
$ rpm2tar /usr/portage/rpm/net-misc/wget-1.17.1-r1.rpm
$ tar tvf wget-1.17.1-r1.tar
drwxr-xr-x root/root 0 2016-04-13 22:00 ./
drwxr-xr-x root/root 0 2016-04-13 22:00 ./usr/
drwxr-xr-x root/root 0 2016-04-13 22:00 ./usr/share/
drwxr-xr-x root/root 0 2016-04-13 22:00 ./usr/share/man/
drwxr-xr-x root/root 0 2016-04-13 22:00 ./usr/share/man/man1/
-rw-r--r-- root/root 33979 2016-04-13 21:59 ./usr/share/man/man1/wget.1.gz
drwxr-xr-x root/root 0 2016-04-13 22:00 ./usr/share/locale/
drwxr-xr-x root/root 0 2016-04-13 22:00 ./usr/share/locale/ja/
drwxr-xr-x root/root 0 2016-04-13 22:00 ./usr/share/locale/ja/LC_MESSAGES/
-rw-r--r-- root/root 78527 2016-04-13 21:59 ./usr/share/locale/ja/LC_MESSAGES/wget.mo
drwxr-xr-x root/root 0 2016-04-13 22:00 ./usr/share/info/
-rw-r--r-- root/root 69498 2016-04-13 21:59 ./usr/share/info/wget.info.gz
drwxr-xr-x root/root 0 2016-04-13 22:00 ./usr/share/doc/
drwxr-xr-x root/root 0 2016-04-13 22:00 ./usr/share/doc/wget-1.17.1-r1/
-rw-r--r-- root/root 2252 2016-04-13 21:59 ./usr/share/doc/wget-1.17.1-r1/sample.wgetrc.bz2
-rw-r--r-- root/root 2014 2016-04-13 21:59 ./usr/share/doc/wget-1.17.1-r1/README.bz2
-rw-r--r-- root/root 12245 2016-04-13 21:59 ./usr/share/doc/wget-1.17.1-r1/NEWS.bz2
-rw-r--r-- root/root 919 2016-04-13 21:59 ./usr/share/doc/wget-1.17.1-r1/MAILING-LIST.bz2
-rw-r--r-- root/root 1190 2016-04-13 21:59 ./usr/share/doc/wget-1.17.1-r1/AUTHORS.bz2
drwxr-xr-x root/root 0 2016-04-13 22:00 ./usr/bin/
-rwxr-xr-x root/root 482632 2016-04-13 22:00 ./usr/bin/wget
drwxr-xr-x root/root 0 2016-04-13 22:00 ./etc/
-rw-r--r-- root/root 4925 2016-04-13 21:59 ./etc/wgetrc