開発者とパッケージメンテナは、必ずしもすべてのLinuxディストリビューションのパッケージを作成するとは限りません。一部のパッケージは、特定のLinuxプラットフォームでのみ使用できる場合があります。このような場合、エイリアンなどのパッケージ変換ツールを使用できます。 Linuxパッケージをさまざまな形式に簡単に変換できます。このガイドでは、Alienとは何か、さまざまなLinuxオペレーティングシステムにAlienをインストールする方法、そしてAlienパッケージコンバーターを使用してLinuxパッケージをある形式から別の形式に変換する方法について説明します。
エイリアンとは何ですか?
Alienは、Red Hat rpm、Debian deb、Stampede slp、Slackware tgz、SolarispkgなどのさまざまなLinuxパッケージ形式間で変換するコマンドラインパッケージコンバーターです。
Alienは現在、次のパッケージ形式をサポートしています。
- Linux Standard Base(LSB)、
- LSB準拠の
.rpm
パッケージ、 -
.deb
、 - スタンピード(
.slp
)、 - Solaris(
.pkg
) - Slackware(
.tgz
、.txz
、.tbz
、。tlz
。
Linuxディストリビューションで特定のパッケージまたはパッケージの特定のバージョンが利用できない場合、エイリアンプログラムが役に立ちます。 Alienを使用して、このようなパッケージを好みのパッケージ形式に簡単に変換し、システムにインストールできます。
Alienはパッケージコンバーターであるだけでなく、パッケージ変換後に生成されたパッケージを自動的にインストールすることもできます。パッケージのインストール時に実行されるスクリプトを変換するオプションもあります。このオプションを使用するときは注意が必要です。このオプションを使用する前に、スクリプトを注意深く調べ、これらのスクリプトが何をするかを確認する必要があります。
ヘッズアップ: initなどの重要なシステムパッケージを変換するためにAlienを使用しないでください。 、 libc 、Linuxシステムの機能に必要です。特定のLinuxディストリビューション用に特別に設計されたシステムパッケージは互換的に使用できず、強制的にインストールしようとするとシステムが破損する可能性があります。
LinuxにAlienをインストールする
Alienパッケージコンバータは、一般的なLinuxディストリビューションのデフォルトのリポジトリで利用できます。
Alpine LinuxにAlienをインストールするには、次のコマンドを実行します。
$ sudo apk add alien
AlienをDebian、Ubuntu LTS、Linux Mint、Pop!_OSにインストールします:
$ sudo apt install alien
AlienをFedoraにインストールする:
$ sudo dnf install alien
CentOS 8、RHEL 8、AlmaLinux 8、Rocky Linux 8にAlienをインストールします:
$ sudo dnf install epel-release
$ sudo dnf install alien
Alienを使用してLinuxパッケージを変換する
Alienを使用してLinuxパッケージをある形式から別の形式に変換するための一般的な構文は次のとおりです。
alien [--to-deb] [--to-rpm] [--to-tgz] [--to-slp] [options] file [...]
Alienを使用したパッケージの変換は非常に簡単です!
.rpm
を変換するには .deb
にパッケージ化する パッケージ、単に root
としてalienを実行します またはsudo
ユーザー:
$ sudo alien --to-deb /path/to/file.rpm
同様に、 .deb
を変換するには .rpm
へのファイル 、実行:
$ sudo alien --to-rpm /path/to/file.deb
Linuxパッケージをさまざまな形式に変換するためにサポートされているフラグのリストは次のとおりです。
-
-d
、--to-deb
-Debianパッケージを作成します。これがデフォルトです。 -
-r
、--to-rpm
-rpmパッケージを作成します。 -
-l </ code> 、
--to-lsb
-LSBパッケージを作成します。 -
-t
、--to-tgz
-tgzパッケージを作成します。 -
--to-slp
-slpパッケージを作成します。 -
-p
、-to-pkg
-Solarispkgパッケージを作成します。
いくつかの例を見てみましょう。このガイドでは、 hello world .rpm
を使用します。 パッケージ。 hello
に注意してください packageは、ほぼすべてのLinuxディストリビューション用にパッケージ化されています。したがって、変換する必要はありません。デモンストレーションのためだけに使用しています。
Alienを使用してRPMパッケージをDEBパッケージに変換する
それでは、hellorpmパッケージを.deb
に変換しましょう。 以下のようにエイリアンを使用したフォーマット:
$ sudo alien --to-deb hello-2.10-5.fc34.x86_64.rpm
またはまもなく、
$ sudo alien -d hello-2.10-5.fc34.x86_64.rpm
これにより、指定された .rpm
が変換されます .deb
にパッケージ化する パッケージ化して、生成されたパッケージを現在のディレクトリに保存します。
ヘッズアップ: フラグが指定されていない場合、Alienはパッケージを .debに変換します
デフォルトでフォーマットします。
生成されたパッケージは、デフォルトのパッケージマネージャーを使用してインストールできます。
一度に複数のパッケージを変換することもできます。次のコマンドは、指定されたパッケージ(hello&vim)を .deb
に変換します。 フォーマット。
$ sudo alien hello-2.10-7.x86_64.rpm vim-enhanced-8.2.2637-1.fc34.x86_64.rpm
Alienを使用してDEBパッケージをRPMパッケージに変換する
同様に、 .deb
を変換できます .rpm
にパッケージ化する 以下のようなパッケージファイル:
$ sudo alien --to-rpm hello-2.10-5.fc34.x86_64.rpm
またはまもなく、
$ sudo alien -r hello-2.10-5.fc34.x86_64.rpm
パッケージを自動的にインストールする
生成されたパッケージを自動的にインストールしたい場合があります。
パッケージを変換してAlienで自動的にインストールするには、 -i
を使用します フラグ。
$ sudo alien -d -i hello-2.10-7.x86_64.rpm
このコマンドは、指定された.rpmパッケージを.debパッケージ形式に変換してからインストールし、最後に生成されたパッケージを削除します。
出力例:
dpkg --no-force-overwrite -i hello_2.10-8_amd64.deb Selecting previously unselected package hello. (Reading database ... 52712 files and directories currently installed.) Preparing to unpack hello_2.10-8_amd64.deb ... Unpacking hello (2.10-8) ... Setting up hello (2.10-8) ... Processing triggers for man-db (2.9.4-2) ...
複数のパッケージ形式に変換
Alienは、単一のパッケージファイルから複数のパッケージファイル形式を作成できます。次の例は、 .deb
を作成する方法を示しています 、および .tgz
.rpm
からのパッケージ ファイル。
$ sudo alien --to-deb --to-tgz hello-2.10-7.x86_64.rpm
バージョン番号を保持する
デフォルトでは、Alienは変換する各パッケージのマイナーバージョン番号に1を追加します。たとえば、バージョン番号が1.2-3の場合、Alienはマイナーバージョンに1を追加し、1.2-4に変更します。
次のコマンド出力を見てください。
$ sudo alien --to-deb hello-2.10-7.x86_64.rpm hello_2.10-8_amd64.deb generated
上記のコマンドのソースパッケージのバージョンは2.10.7です。パッケージ変換後、Alienはターゲットファイルのマイナーバージョンを7から8に変更しました。
Alienにバージョン番号を変更させたくない場合は、 -k
を使用します 、-keep-version
生成されたパッケージに元のバージョン番号を保持するためのフラグ。
$ sudo alien -k --to-deb hello-2.10-7.x86_64.rpm hello_2.10-7_amd64.deb generated
上記のように、ソースファイルとターゲットのバージョン番号は同じです。
助けを得る
エイリアンの簡単な説明とサポートされているすべての一般的なオプションを表示するには、次のコマンドを実行してエイリアンのヘルプセクションを参照してください。
$ alien --help
また、マニュアルページを参照してください。
$ man alien
結論
エイリアンコンバーターの精度については保証しません。 Vim、Hello world、Nanoなどのいくつかのパッケージのみをテストしました。私がテストした限りでは、AlienはDebian11ブルズアイで問題なく動作します。
多数の依存関係に依存する一部のパッケージでは、おそらく機能しません。結果はパッケージごとに異なる場合があります。
このような場合、ソースから手動でビルドするか、 CheckInstallなどの他の信頼できるアプリケーションを使用してビルドする必要があります。 またはFpm 。ソースからパッケージを構築する方法については、次のリソースを調べることをお勧めします。
- ソースからDebianパッケージを構築する方法
- CheckInstallを使用してソースからパッケージを構築する方法
- 複数のプラットフォーム用のLinuxパッケージを簡単に構築する方法
- システムにすでにインストールされているDebianバイナリパッケージを再作成する
- DEBパッケージをArchLinuxパッケージに変換する方法
これがお役に立てば幸いです。