最近知ったんだけど Alien というソフトウェアを使うと rpm とか deb を相互に変換できるらしい。 今回はその Alien で CentOS7 向けの rpm を deb に変換して Ubuntu 14.04 LTS にインストールしてみた。
使った環境は次の通り。
$ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=14.04 DISTRIB_CODENAME=trusty DISTRIB_DESCRIPTION="Ubuntu 14.04.4 LTS" $ uname -r 3.16.0-30-generic
インストール
Alien は Ubuntu の標準リポジトリで提供されている。
$ sudo apt-get -y install alien
インストールすると alien コマンドが使えるようになる。
$ which alien
/usr/bin/alien
パッケージを変換する
何を変換しようかなーと考えて sl にした。 理由は依存パッケージとかを考える必要がないため。
まずは EPEL のリポジトリから sl の rpm をダウンロードしておく。
$ wget http://dl.fedoraproject.org/pub/epel/7/x86_64/s/sl-5.02-1.el7.x86_64.rpm
alien コマンドを使って rpm を処理する。 ルート権限がいるので fakeroot をかましておく。
$ fakeroot alien sl-5.02-1.el7.x86_64.rpm
すると deb ファイルができあがる。
$ ls | grep deb$
sl_5.02-2_amd64.deb
できあがったパッケージを試してみる
早速 dpkg コマンドでインストールしてみよう。
$ sudo dpkg -i sl_5.02-2_amd64.deb
インストールがおわると sl コマンドが使えるようになった。
$ which sl
/usr/bin/sl
実行して機関車が走ったら成功。
$ sl
( ) (@@) ( ) (@) () @@ O @ O @
(@@@)
( )
(@@@@)
( )
==== ________ ___________
_D _| |_______/ \__I_I_____===__|_________|
|(_)--- | H\________/ | | =|___ ___| _________________
/ | | H | | | | ||_| |_|| _| \___
| | | H |__--------------------| [___] | =|
| ________|___H__/__|_____/[][]~\_______| | -|
|/ | |-----------I_____I [][] [] D |=======|____|______________________
__/ =| o |=-~~\ /~~\ /~~\ /~~\ ____Y___________|__|________________________
|/-=|___|=O=====O=====O=====O |_____/~\___/ |_D__D__D_| |_D__D__D
\_/ \__/ \__/ \__/ \__/ \_/ \_/ \_/ \_/ \_
サーバで使うのはさすがにないけど、ちょっと使いたいときにプラットフォーム向けのパッケージが提供されていないときは試してみるのもありかもしれない。