- Alien は、コードを再コンパイルせずに、DEB、RPM、TGZ、SLP、LSB などの形式間でパケットを変換します。
- システムにネイティブ パッケージがない場合に、他のディストリビューションのソフトウェアを適応させることができます。
- オプションには、スクリプトの保存、ワンステップインストール、出力形式の制御などがあります。
- システム パッケージの置き換えを避け、公式リポジトリを優先するなど、注意して使用する必要があります。
異なる GNU/Linux ディストリビューション間を移動すると、次のような典型的な問題に遭遇しやすくなります。 必要なプログラムは別のディストリビューション用にのみパッケージ化されています。通常、DebianやUbuntuではパッケージを操作します debファイル一方、Fedora、openSUSE、RHELでは、 。回転数もちろん、開発者は必ずしもソフトウェアを複数の形式でリリースするわけではありません。
この窮地から抜け出すには、古風ですが非常に便利なツールがあります。 Alienは、異なるフォーマット間の「翻訳者」として機能するパッケージコンバータです。かつてほど流行っておらず、より現代的な代替手段もありますが、ディストリビューションに適したパッケージが見つからない特定の状況では非常に実用的なリソースであり続けます。
Alien とは何ですか? また、具体的に何に使用されますか?
Alienはコンソールユーティリティであり、 バイナリ パッケージを 1 つの GNU/Linux ディストリビューションから別の GNU/Linux ディストリビューションに変換するこれは、[システム] に基づいたシステムが共存する環境での生活を楽にするために作成されました。 Debianの, レッドハット o Slackwareのそして時間の経過とともに、あまり一般的ではない他の形式との互換性も追加されました。
実際には、エイリアンは特定の形式のパッケージを受け取り、 解凍して別の形式で再構築するソースコードを再コンパイルするのではなく、パッケージ構造とメタデータを対象のパッケージマネージャーが理解できるように調整するだけです。これにより、コンテンツに十分な互換性がある限り、Red Hat や SUSE 向けに設計されたソフトウェアを Debian/Ubuntu 系のディストリビューションにインストールしたり、その逆を行ったりすることが可能になります。
Alien が扱う最も一般的な形式の中で、クラシック形式が際立っています。 .rpm (Red Hat、Fedora、openSUSE、CentOS など) および .deb (Debian、Ubuntu、Linux Mint、派生版)しかし、このツールはそれだけではありません。 Slackware .tgz、パッケージ Stampedeの.slpファイル 特定のパッケージの形式 LSB、さらにその他の特殊な形式についてはマニュアルに記載されています。
このことの素晴らしい点は、ディストリビューションのファミリーにパッケージ化されたバージョンが1つしかない場合、 パッケージを「信頼できる」形式に変換し、ネイティブであるかのようにインストールできます。これは魔法ではありませんし、常に 100% 機能するわけではありませんが、最後の手段として、窮地から抜け出すのに役に立ちます。
背景: Linuxのフレーバーとフォーマット戦争
GNU/Linux エコシステムにはさまざまな「フレーバー」があります。 Debian、Ubuntu、Linux Mint、Fedora、Red Hat、CentOS、 openSUSE と YaSTArch、Manjaro、Slackware…などなど。すべて同じLinuxカーネルを共有していますが、各ディストリビューションは独自の方法でシステムとソフトウェア管理を構成しています。
これらのディストリビューションのほとんどは、いくつかの主要なファミリーにグループ化されています。 Debianとその派生は.deb形式とdpkgベースツールを使用する。通常は以下のようなトップレイヤーと組み合わせられます 適性と適性Red Hat および会社側では、パッケージが使用されます。 .rpm と yum や dnf などのマネージャSlackwareのようなプロジェクトは圧縮パッケージに依存しているが、 の。tgz はるかにシンプルな哲学で。
長い間、開発者は単一のフォーマットを選択してソフトウェアをリリースしてきました。 deb または rpm両方を提供しているプロジェクトは稀で、通常はソースコードをダウンロードして手動でコンパイルし、すべてがうまくいくことを祈るしかありませんでした。この方法は今でも残っていますが、特に手動で依存関係を解決するのに時間をかけたくない場合は、必ずしも便利とは言えません。
デスクトップにおけるGNU/Linuxの普及により、特に Ubuntuとその巨大なユーザーベース多くの企業やプロジェクトが、アプリケーションを両方の形式でパッケージ化するようになりました。今日では、多くのプログラムの公式サイトで、少なくとも.debと.rpmのパッケージを見つけるのは比較的一般的です。それでもなお、 ソフトウェアが特定のディストリビューション ファミリ向けにのみ配布されるケースも依然として存在します。そして、そこにエイリアンが意味を成すのです。
主要ディストリビューションにAlienをインストールする
エイリアンは通常、 ほぼすべての主要ディストリビューションの公式リポジトリ通常、デフォルトではインストールされませんが、システムに追加する方法 は使用するパッケージ マネージャーによって若干異なりますが、いずれの場合もプロセスは非常に簡単です。
Debian、Ubuntuおよびその派生ディストリビューションでは、インストールは通常のリポジトリから行う。 aptターミナルを開き、管理者権限を取得し (sudo または root として)、次のような簡単なコマンドを実行します。
sudo apt-get install エイリアン
Ubuntuの古いバージョン(12.10など)ではデフォルトでインストールされていませんでしたが、リポジトリでは利用可能でした。それ以降のバージョンや一部の派生バージョンでは、 Alien はすでにプリインストールされている可能性があります。そのため、まずはこれをチェックすることをお勧めします(たとえば、 エイリアン-h 彼が反応するかどうか確認するためです。
Red Hatベースのディストリビューション(Fedora、CentOS、RHELなど)を使用している場合は、インストールもパッケージマネージャから実行します。通常は、 yum または dnfFedora での一般的なコマンドは次のようになります。
sudo yum -y エイリアンをインストール
いずれにせよ、Alien はシステム内の単なる別のパッケージのように動作します。 グラフィック ソフトウェア センターからインストール、更新、または削除できます。 またはコンソールのパッケージマネージャーを使用してください。追加したら、パッケージの形式変換を開始できます。
エイリアンの内部の仕組み(概要)
パッケージに対してAlienを呼び出すと、ツールは 元のファイルを解凍し、内部構造を分析して、新しいパッケージを再構築します。 ターゲットフォーマットに適応します。コードに変更を加えたり、再コンパイルしたりすることはありません。ディストリビューションのパッケージマネージャーが理解できるように、ファイル、スクリプト、メタデータを再編成するだけです。
このプロセスにはいくつかのタスクが含まれます。 パッケージの内容を抽出し、制御情報 (依存関係、インストール前およびインストール後のスクリプト、説明など) を読み取ります。 その後、出力形式のルール (たとえば、dpkg が .deb に期待する構造) に従ってパッケージ化されます。
重要な点の一つは、エイリアン インストール前およびインストール後のスクリプトが含まれている場合と含まれていない場合があります。 元のパッケージからコピーされます。多くの設定では、デフォルトではこれらのスクリプトが新しいパッケージにそのままコピーされないため、インストール中に特定の自動設定が失われる可能性があります。これを回避するには、後ほど説明する特定のオプションがあります。
最終結果は新しいパッケージファイルで、通常は コマンドを実行している現在のディレクトリ一部のディストリビューションでは、RPMを使用する場合、Alienは新しく作成されたパッケージをディレクトリツリーのどこに配置するかを教えてくれます(たとえば、次のようなパス)。 /usr/src/redhat/RPMS/ など)がありますが、実際には、現在ではユーザー ディレクトリから作業するのが一般的です。
Alien は再コンパイルしないため、ライブラリ間または依存関係バージョン間の深刻な非互換性を解決できないことを覚えておく価値があります。 変換するプログラムに、システムに存在しないコンポーネントや、古すぎる/新しいコンポーネントが必要な場合は、実行に失敗する可能性があります。 変換がエラーなく終了した場合でも同様です。
Alienでパケットを変換するための基本コマンド
Alienの一般的な構文は非常にシンプルです。基本的なコマンド構造は次のとおりです。
エイリアンファイル
エイリアンは自動的に パッケージソース形式 (.rpm、.deb、.tgzなど)どの形式に変換したいかは、適切なオプションを使って指定するだけです。多くのユーザーが最もよく使用するフラグは以下のとおりです。
- -d o –to-deb: .deb 形式 (Debian/Ubuntu) でパッケージを生成します。
- -r o –rpm: .rpm 形式 (Red Hat、Fedora、openSUSE など) でパッケージを生成します。
- -t o –to-tgz: .tgz 形式 (Slackware) でパッケージを生成します。
- –to-slp: .slp 形式 (Stampede) に変換します。
- -l: LSB 形式でパッケージを生成します。
たとえば、.rpm パッケージがあり、それを Ubuntu にインストールできるように .deb に変換したい場合、通常の手順としては、ダウンロードしたディレクトリに移動して、次のようなコマンドを実行します。
エイリアン -d パッケージ.rpm
RPM ベースのディストリビューションで使用したい .deb パッケージがある場合、同等のコマンドは次のようになります。
エイリアン -r パッケージ.deb
どちらの場合も、 Alienは、ターゲット形式に適合した名前で現在のディレクトリに新しいファイルを作成します。そこから、ディストリビューション独自のパッケージマネージャ(dpkg、rpmなど)を使用して、ネイティブパッケージのようにインストールできます。詳細については、 .deb および .rpm パッケージのインストールに関する完全ガイド.
フォーマット間の変換の実例
Alienの使い方をより深く理解するために、いくつかの典型的な例を見てみましょう。例えば、 Red Hat 用の RPM パッケージしかし、DebianまたはUbuntuをお使いの場合は、-dオプションを使用してRPMからDEBに変換するのが最も直接的な方法です。
エイリアン -d ファイル.rpm
変換をより正確に行いたい場合は、元のパッケージのスクリプトを保持するオプションを追加するのが一般的です。より完全なコマンドは以下のようになります。
エイリアン –scripts -d ファイル.rpm
逆のシナリオでは、パッケージがあるとします Debian/Ubuntu用に用意された.debファイル Fedora または openSUSE にインストールしたい場合は、オプションを -r に変更して RPM を生成します。
エイリアン -r ファイル.deb
繰り返しになりますが、パッケージのインストール スクリプトのコピーにも興味がある場合は、次のコマンドを使用できます。
エイリアン –scripts -r file.deb
よく挙げられる典型的な例としては、Networker(別名lgtoclnt)と呼ばれる特定のパッケージのような特定のクライアントが挙げられます。このような場合、コマンドは次のようになります。
エイリアン –scripts -d lgtoclnt-7.5.1-1.i686.rpm
.debと.rpmの他に、Alienでは次のことも可能です。 Slackwareの.tgzなどの代替フォーマットに変換する-t フラグはこの目的で使用されます:
エイリアン -t パッケージ.deb
利用可能なすべてのオプションを一目で確認したい場合は(ここで説明したもの以外にもいくつかあります)、以下を起動するだけです。
エイリアン-h
画面上のヘルプを使用すると、詳細レベル、出力ディレクトリ、スクリプトの組み込み、ワンステップ変換とインストールなど、ニーズに応じてパラメータを調整できます。
Alienでワンステップで変換とインストール
エイリアンの非常に便利な機能の一つは、 パケットをフォーマット間で変換するしかし、それはまた 結果を自動的にインストールする 変換後すぐに、すべて 1 つの注文で実行されます。
これを実現するには、オプションを使用する必要があります -iこれは、新しいパッケージが生成されたら、システム上でインストールを実行する必要があることを示しています。これは、変換されたファイルを手動で管理することなく、プロセスを迅速に実行したい場合に特に便利です。
例えば、.debパッケージがあり、目標が RPMベースのディストリビューションにインストールする 1 ステップで、次のようなものを実行できます。
エイリアン -r -c -i ファイル.deb
この例にはオプションも含まれています -cこれは、元のパッケージの制御スクリプトが保存される必要があることを示しています(多くのガイドで説明されている方法の短縮形です)。 –スクリプト)。 こちらです、 Alien は .deb ファイルを .rpm に変換し、インストール スクリプトを保持して、新しいパッケージを自動的にインストールします。.
Debian または Ubuntu で使用する予定の .rpm パッケージの場合は、同様の操作を実行できます。
エイリアン -d -c -i ファイル.rpm
しかし、多くのユーザーは、まずパッケージを変換し、次に手動でインストールするという2つの段階に分けてプロセスを分割することを好みます。これにより、 システムに何を入れるかをより細かく制御できる 実行前に結果を検査することができます。例えば:
エイリアン -d パッケージ.rpm
sudo dpkg -i package.deb
この方法により、生成されたファイルの名前と場所が期待どおりであることを確認し、インストールを続行する前にディストリビューションのツールを使用してファイルを調べることもできます。
スクリプト、依存関係、潜在的な問題の管理
エイリアンとの変換で最も繊細な点の1つは インストール前およびインストール後のスクリプト 多くのパッケージを運ぶスクリプトです。これらのスクリプトは、システムユーザーの作成、権限の調整、設定ファイルの生成、サービスの登録といったタスクを処理します。
デフォルトでは、一部のエイリアン設定 これらのスクリプトは、変換されたパッケージに自動的には含まれません。設定手順が不足しているため、プログラムはインストールされても期待通りに動作しない可能性があります。このリスクを軽減するには、以下のオプションを追加することをお勧めします。 –スクリプト (または適切な場合は省略形 -c) を変換コマンドの実行時に使用します。
これらのスクリプトを含めても、Alienはパッケージが問題なく動作することを保証できません。主な問題は通常、…から発生します。 依存関係ライブラリのバージョンの違い、ディストリビューション間で異なるファイルパス、異なる管理方法のサービスなどにより、非互換性が発生する可能性があります。パッケージは正常にインストールされても、必要なライブラリが見つからないため実行に失敗する場合があります。
エイリアンは、 最後の手段これに頼る前に、他の解決策を試してみるのが通常は良いでしょう。ディストリビューションに特定のリポジトリがあるかどうか確認したり、次のようなツールを使用してソースコードからコンパイルしたりします。 checkinstallまたは、次のような最新のユニバーサルフォーマットを使用します。 Flatpak、Snap、またはAppImage 利用可能な場合。
にもかかわらず、フォーラムやFAQでは、次のような状況でAlienを推奨することが依然として非常に多い。 対象ディストリビューション用のパッケージが存在せず、コンパイルが不可能であるある程度注意して使用し、重要なシステム コンポーネントでの使用を避ければ、実際の多くのケースを大きな問題なしに解決できます。
最後に、Alienを実行して結果のパッケージをインストールするには、 スーパーユーザー権限が必要になりますそのため、ほとんどの例には sudo または、必要に応じてシステム内で直接 root として作業することが推奨されます。
Alienで他の種類のパッケージを変換する
ほとんどのユーザーは二項式に注目しているが .deb ↔ .rpmエイリアンはこれら2つのフォーマットだけに限定されません。その利点の一つはまさに あまり一般的ではない他のパッケージング システムとの変換もサポートしています。これにより、再利用可能なソフトウェアの範囲が大幅に拡大します。
処理できる追加のフォーマットにはパッケージがあります Slackware .tgzこれらは基本的に、特定の構造を持つ圧縮されたtarアーカイブです。別のパッケージから.tgzファイルを生成するには、-tオプションを使用します。例:
エイリアン -t ファイル.deb
パッケージとの互換性もあります Stampedeの.slpファイル選択肢のある方のために –to-slpこの形式は現在では非常にまれですが、古い Alien ドキュメントの一部にはまだ記載されており、非常に特殊な環境では役立つことがあります。
最後に、Alienには特定のパッケージのサポートが含まれています LSB (Linux 標準ベース)これらは、異なるディストリビューション間で共通の標準となることを目的としていました。この種類のファイルを扱うには、通常、オプションが使用されます。 -l、その形式でパッケージを作成します。
これらのケース以外にも、Alienはいくつかの追加オプションを提供しており、例えば、 出力パッケージが生成される場所を制御したり、プロセスの詳細度を調整したり、元のパッケージに関する詳細情報を表示したりできます。これらすべては、クラシックからアクセスできるツールのマニュアルに記載されています。
エイリアンマン
Alienを使用する際の良い習慣と注意事項
Alienはパッケージの互換性の問題に対する魔法の解決策のように見えるかもしれませんが、 このツールを賢く使い、何をしているのかを理解しましょうこれは、ディストリビューションのネイティブ パッケージ システムを置き換えるものではなく、特定のギャップを埋めることを目的としています。
最初の明確な推奨事項は 重要なシステムパッケージを置き換えるためにAlienを使用しないでくださいこれには、必須の共有ライブラリ、デスクトップコンポーネント、基本的なシステムサービスが含まれます。これらの要素を他のディストリビューションから移植されたバージョンに置き換えると、環境が不安定になり、システムが使用できなくなる可能性があります。
また、Alienを本当に 公式リポジトリでは見つからない 信頼できる外部リポジトリにも存在しません。パッケージの変換を始める前に、ディストリビューションのリポジトリ、PPA(Ubuntuをご利用の場合)、コミュニティが管理するサードパーティのリポジトリ、またはFlatpak/Snapソリューションを検索してみてください。
エイリアンを使う場合は、 制御された環境またはテスト環境 変換されたパッケージを本番システムに展開する前に、プログラムが正しく起動し、ディストリビューションの標準パスに準拠し、依存関係が競合なく満たされていることを確認できます。
多くのマニュアルでは、ソフトウェアをコンパイルする方法を知っていれば、通常はそれが望ましいとも述べられています。 独自のディストリビューション用にソースコードからコンパイルするcheckinstall などのツールを使用して、システムに合わせたパッケージを生成すると、時間が足りない場合やコンパイルが難しすぎる場合に、Alien は貴重なリソースとなります。
結局のところ、『エイリアン』は すべてのパッケージ化作業を最初からやり直すことなく、他のディストリビューション向けに設計されたパッケージを活用できます。限界を認識した上で慎重に使用すれば、GNU/Linux での日常的な作業で多くの頭痛の種を解消することができます。
これらすべての可能性のおかげで、Alien は、さまざまなディストリビューション間を行き来してパッケージを変換する必要がある中級または上級ユーザーにとって興味深いツールであり続け、より便利で現代的な代替手段が尽きたときのインストール形式の一種の「スイス アーミー ナイフ」になります。
バイトの世界とテクノロジー全般についての情熱的なライター。私は執筆を通じて自分の知識を共有するのが大好きです。このブログでは、ガジェット、ソフトウェア、ハードウェア、技術トレンドなどについて最も興味深いことをすべて紹介します。私の目標は、シンプルで楽しい方法でデジタル世界をナビゲートできるよう支援することです。
