最近知ったんだけど 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 \_/ \__/ \__/ \__/ \__/ \_/ \_/ \_/ \_/ \_
サーバで使うのはさすがにないけど、ちょっと使いたいときにプラットフォーム向けのパッケージが提供されていないときは試してみるのもありかもしれない。