ウェブサイト検索

Alien を使用して RPM から DEB および DEB から RPM パッケージに変換する方法


すでにご存知かと思いますが、Linux にソフトウェアをインストールする方法はたくさんあります。ディストリビューションが提供するパッケージ管理システム (例を挙げると、aptitude、yum、または zypper) を使用する方法、ソースからコンパイルする方法 (多少は可能ですが)最近では珍しいことですが、Linux の初期にはこれが唯一の方法でした)、または .deb< で dpkgrpm などの低レベル ツールを利用することもできます。.rpm は、それぞれスタンドアロンのプリコンパイル済みパッケージです。

この記事では、.rpm から .deb へ (またはその逆の) 異なる Linux パッケージ形式間で変換するツールである エイリアン を紹介します。その逆) が最も一般的な使用法です。

このツールは、作成者がもうメンテナンスを行っておらず、エイリアンはおそらく常に実験段階に留まるだろうとウェブサイトで述べている場合でも、特定の種類のパッケージが必要だが、そのプログラムが別のパッケージ形式でしか見つからない場合に便利です。

たとえば、一度インクジェット プリンタ用の.deb ドライバを探していたときに、 エイリアン が私の命を救ってくれました。メーカーは .rpm パッケージのみを提供しました。 Alien をインストールし、パッケージを変換し、やがてプリンターを問題なく使用できるようになりました。

ただし、重要なシステム ファイルとライブラリはディストリビューションごとに異なる設定になっているため、このユーティリティを使用して重要なシステム ファイルとライブラリを置き換えるべきではないことを明確にする必要があります。 Alien は、この記事の冒頭で推奨されているインストール方法が必要なプログラムに当てはまらない場合の最後の手段としてのみ使用してください。

最後になりましたが、この記事ではCentOSDebianを使用しますが、Alien はSlackwareでも動作することが知られていることに注意する必要があります。最初の 2 つのディストリビューションとそれぞれのファミリーに加えて、Solaris でもです。

ステップ 1: Alien と依存関係のインストール

CentOS/RHEL 7alien をインストールするには、EPELNux を有効にする必要があります。 Dextop (はい、Dextop です。Desktop ではありません) リポジトリの順序は次のとおりです。

yum install epel-release
rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro

このリポジトリを有効にするパッケージの最新バージョンは現在 0.5 です (2015 年 8 月 10 日に公開)。次に進む前に、http://li.nux.ro/download/nux/dextop/el7/x86_64/ をチェックして、新しいバージョンがあるかどうかを確認する必要があります。

rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm

それから、そうしてください

yum update && yum install alien

Fedora では、最後のコマンドを実行するだけで済みます。

Debian とその派生版では、次のようにするだけです。

aptitude install alien

ステップ 2: .deb から .rpm パッケージへの変換

このテストでは、大量の財務データを処理するための一連の日付時刻ユーティリティを提供するdateutilsを選択しました。 .deb パッケージを CentOS 7 ボックスにダウンロードし、それを .rpm に変換してインストールします。

cat /etc/centos-release
wget http://ftp.us.debian.org/debian/pool/main/d/dateutils/dateutils_0.3.1-1.1_amd64.deb
alien --to-rpm --scripts dateutils_0.3.1-1.1_amd64.deb

重要: (デフォルトで、エイリアンがターゲット パッケージのバージョン マイナー番号を増やす方法に注意してください。この動作をオーバーライドする場合は、- を追加します。バージョン維持フラグ)。

パッケージをすぐにインストールしようとすると、次のような小さな問題が発生します。

rpm -Uvh dateutils-0.3.1-2.1.x86_64.rpm 

この問題を解決するには、epel-testing リポジトリを有効にし、rpmrebuildユーティリティをインストールして、再構築するパッケージの設定を編集します。

yum --enablerepo=epel-testing install rpmrebuild

それから走って、

rpmrebuild -pe dateutils-0.3.1-2.1.x86_64.rpm

これにより、デフォルトのテキストエディタが開きます。 %files セクションに移動し、エラー メッセージに記載されているディレクトリを参照する行を削除し、ファイルを保存して終了します。

ファイルを終了すると、再構築を続行するかどうかを確認するメッセージが表示されます。 Y を選択すると、ファイルは指定されたディレクトリ (現在の作業ディレクトリとは異なります) に再構築されます。

rpmrebuild –pe dateutils-0.3.1-2.1.x86_64.rpm

これで、パッケージのインストールに進み、通常どおり確認できます。

rpm -Uvh /root/rpmbuild/RPMS/x86_64/dateutils-0.3.1-2.1.x86_64.rpm
rpm -qa | grep dateutils

最後に、dateutils に含まれている個々のツールを一覧表示し、それぞれのマニュアル ページを確認することもできます。

ls -l /usr/bin | grep dateutils

ステップ 3: .rpm から .deb パッケージへの変換

このセクションでは、.rpm から .deb に変換する方法を説明します。 32 ビットの Debian Wheezy ボックスで、CentOS 6 OS から zsh シェルの .rpm パッケージをダウンロードしましょう。strong>リポジトリ。このシェルは、Debian および派生製品ではデフォルトでは利用できないことに注意してください。

cat /etc/shells
lsb_release -a | tail -n 4

wget http://mirror.centos.org/centos/6/os/i386/Packages/zsh-4.3.11-4.el6.centos.i686.rpm
alien --to-deb --scripts zsh-4.3.11-4.el6.centos.i686.rpm

署名の欠落に関するメッセージは無視しても問題ありません。

しばらくすると、.deb ファイルが生成され、インストールする準備が整います。

dpkg -i zsh_4.3.11-5_i386.deb

インストール後、zsh が有効なシェルのリストに追加されていることを確認できます。

cat /etc/shells

まとめ

この記事では、そのようなプログラムがリポジトリまたは配布可能なソース コードとして利用できない場合の最後の手段として、.rpm から .deb に、またはその逆に変換してパッケージをインストールする方法を説明しました。私たちは皆、一度はエイリアンを必要とすることになるので、この記事をブックマークしておくとよいでしょう。

以下のフォームを使用して、この記事に関するご意見をお気軽に共有してください。