技術ノート Linux Linux インストール パッケージを他の形式に変換する方法

Linux インストール パッケージを他の形式に変換する方法

alien プログラムは、ある Linux ディストリビューションのインストール パッケージを別の Linux ディストリビューション で使用できるように変換します。しかし、 と Flatpak の登場により、それは不要になったのではないでしょうか?ある種のことですが、それほど単純ではありません。

Linux パッケージング システム

ユーザーがソフトウェアをインストールできるようにするために、Linux ディストリビューションにはソフトウェア パッケージング システムが必要です。ディストリビューションが別の確立されたディストリビューションのフォークである場合、通常は古いディストリビューションのパッケージング システムをそのまま使用します。

そのため、Fedora は RPM パッケージ (かつては RedHat Package Manager の略でした) を使用し、 Ubuntu とその多数の子は DEB パッケージ を使用します。 DEB は単に「Debian」の略です。他のディストリビューションは独自のパッケージ管理システムを作成することを選択しています。あるパッケージ マネージャー用にパッケージ化されたインストール ファイルは、他のパッケージ マネージャーと互換性がありません。

従来、アプリケーション開発者は、サポートするために選択したすべての形式でアプリケーションをパッケージ化するか、さまざまな Linux ディストリビューションのメンテナと協力してパッケージ化手順をメンテナに引き継ぐ必要がありました。後者は新しいリリースをユーザーの手に届けるのに遅れをもたらし、前者は開発者に多くの余分な作業を与えます。

Snap プロジェクトと Flatpak プロジェクトは、パッケージ配布の聖杯を提供しようとします。つまり、アプリケーションを一度パッケージ化して、任意の Linux ディストリビューションにインストールします。もちろん、目的のアプリケーションに Snap や Flatpak がある場合もあれば、ない場合もあります。

Git リポジトリのクローン作成 ソース コードからのアプリケーションの構築 に慣れている限り、パッケージング システムを方程式から完全に削除できます。しかし、誰もがそうであるわけではありません。また、すべてのアプリケーションが (Linux であっても) オープンソース であるわけではないため、いずれにしてもソースからすべてを構築することはできません。

一部のディストリビューションのメンテナは、他のプラットフォーム用のパッケージを取得し、クローズドソース アプリケーションを含む独自のパッケージ管理システム用に再パッケージ化することに優れています。しかし、アプリケーションが DEB または RPM (2 つの主要な形式) を提供する場合は常にあり、他の誰もがそれを自分で理解する必要があります。

alien のようなプログラムは、パッケージ ファイルを別のディストリビューションから Linux コンピュータで必要なバージョンに変換する問題を解決するために存在します。理論的にはそれでいいのですが、どれくらい成功しているのでしょうか?

Linux インストール パッケージを他の形式に変換する方法

エイリアンの実験

プリンの証は食べることにあります。

3 つの異なる RPM を取得し、 alien を使用してそれらを DEB に変換しました。次に、新しく作成した DEB を Ubuntu にインストールしようとしました。

すべてのテスト ケースで、ダウンロード可能な DEB もあったため、私たちが行っていたことは実際には冗長でした。しかし、テスト アプリケーション — Microsoft Edge ブラウザ 、Atom エディタ、および Slack — は alien の機能をテストするのに適していると考えたので、既製の DEB は無視しました。

Linux インストール パッケージを他の形式に変換する方法

エイリアンのインストール

Ubuntu、Fedora、Manjaro では、Alien のインストールは簡単でした。

Ubuntu では次のコマンドを使用できます。

 sudo apt インストールエイリアン

Fedora では、次のように入力する必要があります。

 sudo dnf エイリアンをインストールします

Manjaro では、エイリアン パッケージは Arch ユーザー リポジトリにあります。これは、 pacman それを認識できないことを意味するため、 yay のような AUR ヘルパー プログラムを使用する必要があります。パッケージ名も若干異なります。

やったーS Alien_package_converter 

Linux インストール パッケージを他の形式に変換する方法

エイリアンを使用する

alien を使用するには、変換する ファイル と変換先の形式を指定します。通常は同じファイル名で、指定した形式の拡張子が付いたファイルが作成されます。

alien を使用してパッケージを作成すると、 alien パッケージのバージョン番号をインクリメントします。ファイル名にパッケージ番号が含まれている場合は、ファイル名も変更されます。

これらは、 alien 変換できる形式と変換できる形式です。

  • -d : Debian、Ubuntu、およびすべての派生製品用の DEB ファイルに変換します。
  • -r : RedHat、CentOS、および Fedora 用の RPM ファイルに変換します。
  • -t : EndeavourOS Manjaro などの Arch および Arch ベースのシステム用の TAR.GZ アーカイブ ファイル に変換します。
  • -l : LSB ファイル、Linux 標準ベース ファイルに変換します。これは、クロスディストリビューション パッケージ フォーマットを開発するためのもう 1 つの取り組みでした。
  • -p : Solaris などで使用される形式である PKG ファイルに変換します。
  • –to-slp : 廃止された Stampede Linux ディストリビューションで使用される形式である SLP パッケージに変換します。

DEB ファイルに変換するため、使用する形式オプションは -d (DEB) です。また、 -c (スクリプト) オプションを使用して、パッケージに含まれるスクリプトを変換します。

Linux インストール パッケージを他の形式に変換する方法

マイクロソフトエッジ

Microsoft の Edge ブラウザ用の RPM をダウンロードし、それに対して次のコマンドを実行しました。

 sudo 外国人 -d -c Microsoft-edge-beta-97.0.1072.54-1.x86_64.rpm

-c (スクリプト) オプションを指定しないと、DEB ファイルは作成されず、エラーが報告されました。 -c オプションを使用すると、DEB が作成されました。

DEB ファイル名には 54-1 ではなく 54-2 が含まれていることに注意してください。

スクリプトの変換がうまく終わる可能性は低いです。これらは、元のパッケージ ファイルの本物のターゲット プラットフォームに固有の特定の状況または構成に合わせて作成される可能性があります。このため、私たちは大きな期待を持っていませんでした。それにもかかわらず、 dpkg プログラムと -i (インストール) オプションを使用して DEB をインストールしようとしました。

 sudo dpkg -i microsoft-edge-beta_97.0.1072.54-2_amd64.deb

うまくいきませんでした。

また、DEB ファイルをダブルクリックし、Ubuntu ソフトウェア アプリケーションを使用して DEB をインストールすることも試みました。興味深いことに、ソフトウェア アプリケーションは DEB が alien によって作成されたことを認識していました。

それもうまくいきませんでした。 Edge ブラウザが実際に Ubuntu にインストールされることを確認するために、公式の Microsoft Edge DEB ファイルをインストールしました。

 sudo dpkg -i microsoft-edge-beta_97.0.1072.54-1_amd64.deb

それは問題なく動作しました。以下では、Ubuntu 上で実行されている Microsoft Edge を確認できます。

Linux インストール パッケージを他の形式に変換する方法

アトムエディター

人気の Atom エディターの RPM インストール パッケージをダウンロードしました。同じ alien コマンドを使用して DEB に変換しました。

 sudo エイリアン -d -c atom.x86_64.rpm

これにより、警告やエラーなしで DEB ファイルが作成されました。 dpkg コマンドに -i (インストール) オプションを指定してインストールしました。

 sudo dpkg -i atom_1.58.0-1.1_amd64.deb

それは完璧に機能しました。

Linux インストール パッケージを他の形式に変換する方法

Slack ビジネスメッセージングアプリ

最後に、Slack RPM を DEB に変換してみました。

 sudo 外国人 -d -clack-4.23.0-0.1.fc21.x86_64.rpm

この場合も、警告やエラーのない DEB が作成されました。次のインストール コマンドを使用しました。

 sudo dpkg -ilack_4.23.0-1.1_amd64.deb

インストールは問題なく動作しました。 Slack は問題なく稼働していました。

さまざまな結果

alien のようなユーティリティは苦戦必至だ。あらゆるケースで機能する可能性は非常に高く、これは私たちの少量のテストによって裏付けられました。そうは言っても、それが機能したときは素晴らしかったです。

他に何もできない状況にある場合は、 alien 試してみてください。ただし、他の方法 (スナップ、Flatpak、またはソースからのビルド) が利用できる場合は、まずそれらを試してください。 alien の作者もその限界を知っており、 man ページ に次の警告を記載しています。

Alien は、init、libc、またはシステムの機能に不可欠なその他の重要なシステム パッケージの置き換えに使用しないでください。これらのパッケージの多くは、ディストリビューションごとに異なる方法で設定されており、異なるディストリビューションのパッケージを互換的に使用することはできません。一般に、システムを破壊せずにパッケージを削除できない場合は、そのパッケージをエイリアン バージョンに置き換えようとしないでください。

それはあなたを穴から救い出すかもしれませんが、 alien に頼る前に他のすべての可能性を使い果たしたことを確認してください。

しかし、他に何もないときは、 alien あなたを驚かせるかもしれません。

「 Linux インストール パッケージを他の形式に変換する方法」に関するベスト動画選定!

Ubuntu24.04 LTS(Linux)をVirtualBox7にインストール、日本語設定
Linuxの日本語入力の詳細と各種IMの変換機能を比較