rpmとdebianパッケージの両方をサポートするLinuxディストリビューションを構築することが理論的に可能かどうか疑問に思います。
どちらもサポートしているディストリビューションはありますか?
できないならこれは可能ですか?
答え1
どのディストリビューションも基本的に両方をサポートするとは思わない。それは明らかです開発中のものもあり、ベッドロックLinux(ありがとうございます。I.マリノフスキー情報を得るため)。他のディストリビューションでは、次の変換ツールを使用できます。alien
ある形式から別の形式に変換します。十分な時間と労力があれば、ソフトウェアベースのすべてが可能なので、そのようなディストリビューションを構築することが可能です(ただし、機能と.deb
パッケージ.rpm
の違いを考慮すると非常に困難です)。
しかし、これらすべては、おそらく両方のパッケージ形式をサポートすると、人生がより単純になるという考えに由来しています。なぜなら、どこからでも(もちろん、または.deb
提供しているどこでも.rpm
)パッケージをインストールできるからです。哲学的に、これは欠陥があります。ディストリビューションは一貫したパッケージのセットです。そのディストリビューションにソフトウェアを提供するには、そのパッケージ形式(そしてより重要なのはメタデータ)の使用を含む、具体的にターゲットを指定する必要があります。デフォルトでは、複数のパッケージ形式をサポートすることは意味がありません。
(Debianの世界では、パッケージの命名法はかなり均質であり、ほとんどのディストリビューションは継承ツリーに適しているため、パッケージは主要なターゲットではなくバリアントで動作する可能性があります。RPMの世界ではそうではありません。混在する両方の状況で一致するのは悪い考えです。です)。
ディストリビューションを他のディストリビューションのコンテンツを混在させるのではなく、ディストリビューションの規則とエコシステムを遵守しながら、必要なシステムを構築するための基盤と考える必要があります。ミックスとマッチングをサポートするには(またはクロスディストリビューション環境を提供する)、Steamランタイム、Flatpakなどのより高いレベルの抽象化が必要です。
答え2
Bedrock Linuxはまさにそのようなことをします。私がそれをしたというわけではなく、それが良いアイデアではありませんが、それはすでに行われています。
答え3
いや、そんなモンスターを作ってはいけない。一般に、オペレーティングシステムでアプリケーションを実行するために必要なすべてが含まれているMacOSアプリケーションパッケージとは異なり、RPMパッケージと.debパッケージは、ほとんど常に共有ライブラリなどの他のパッケージに依存します。 Linuxパッケージには、必要がある他のパッケージがリストされており、パッケージマネージャはこれらの要件を適用するのに役立ちます。さらに、Linuxディストリビューションはこれを別の方法で実行します(例/etc/network/interfaces.d
:/etc/sysconfig/network-scripts
同じパッケージ形式ファミリのランダムストアのパッケージを混在させないでください。つまり、CentOSシステムにSuSEパッケージをインストールすることは、すべてRPMを使用しても問題を引き起こすだけです。私が何をしているのかを正確に知らない限り、同じオペレーティングシステムに異なるバージョンのパッケージ(16.04システムのUbuntu 14.04パッケージなど)をインストールすることもありません。
したがって、同じシステムでRPMと.debをサポートすることは不可能です。一部の切迫した場合は、変換専用パッケージを使用できますが、alien
これらのハッキングによって必然的に発生する問題を解決するために多くの努力が必要です。
答え4
はい、可能です。ただし、展開は中断されます。
パッケージは単純な形式以上であり、ある形式から別の形式に簡単に移植できます。
注:すべてのパッケージ、バージョン、依存関係、構成ファイル、プレインストール、およびインストール後のスクリプト(あるパッケージを別のパッケージに置き換える場合)の形式の集中リストを別の形式にしたいので、パッケージインストールツールを移植する必要があります。パッケージ)とアンインストールスクリプト(以前の形式)を新しいパッケージシステムで実行しようとしています。
ただし、ディストリビューションとパッケージは単純なパッケージ形式以上です。たとえば、Debianの場合:ファイルを正しい場所に配置したい、マニュアルページを提供したい、いくつかの一般的な悪魔除去スクリプトをしたい、プログラムを複数のアーキテクチャ、さまざまなグラフィック環境で実行したいとします。ユーザーがディストリビューションの新しい packages.packages に慣れるようにします。
Debian では、ユーザーが重要なパッケージをカスタマイズできるように、ソースを簡単にパッケージ化できます。これには、ほとんどのアップストリーム作成者が提供しない多くのインフラストラクチャが必要です(さまざまなアーキテクチャの自動化されたビルドとテスト、頻繁に実行されます)。さらに、Debianの独自のライセンス要件は、すべてのパッケージを確認することなく、パッケージやディストリビューションをフォークすることを容易にします。
最後に、ディストリビューションはパッケージだけでなく、一貫したパッケージで構成されます。