CUBE SUGAR CONTAINER

技術系のこと書きます。

Alien で rpm を deb に変換してみる

最近知ったんだけど 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
    \_/      \__/  \__/  \__/  \__/      \_/               \_/   \_/    \_/   \_

サーバで使うのはさすがにないけど、ちょっと使いたいときにプラットフォーム向けのパッケージが提供されていないときは試してみるのもありかもしれない。