GNU/Linux >> Linux の 問題 >  >> Linux

エイリアンでLinuxパッケージを変換する方法

開発者とパッケージメンテナは、必ずしもすべての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パッケージに変換する方法

これがお役に立てば幸いです。


Linux
  1. aptによるLinuxパッケージ管理

  2. rpmパッケージをビルドする方法

  3. VoidLinuxでXBPSパッケージマネージャーを使用する方法

  1. CentOSLinuxで孤立したパッケージを削除する方法

  2. LinuxRPMパッケージを作成する方法

  3. Linuxでコマンドラインを使用してPDFをJPGに変換するには?

  1. dnfを使用したLinuxパッケージ管理

  2. Linuxでpkgsrcを使用する方法

  3. rpmパッケージマネージャーを使用してパッケージ情報を照会する方法