2021年には、人々がLinuxをこれまで以上に愛する理由が増えました。このシリーズでは、Linuxを使用する21の異なる理由を共有します。今日は、Linuxのパッケージングがプログラマーにとって理想的な理由についてお話します。
プログラマーはプログラミングが大好きです。それはおそらく明白な声明のように思えますが、ソフトウェアの開発にはコードを書くだけではないことを理解することが重要です。これには、コンパイル、ドキュメント、ソースコード管理、インストールスクリプト、構成のデフォルト、サポートファイル、配信形式などが含まれます。空白の画面から成果物のソフトウェアインストーラーに移行するには、プログラミングだけでは不十分ですが、ほとんどのプログラマーはパッケージ化よりもプログラミングを望んでいます。
パッケージとは何ですか?
食品が購入のために店舗に送られるとき、それは包装されます。農家から直接購入する場合、または環境に優しいバルクストアやビンストアから購入する場合、パッケージは持ち込んだコンテナです。食料品店から購入する場合、パッケージは段ボール箱、ビニール袋、ブリキ缶などになります。
その他のLinuxリソース
- Linuxコマンドのチートシート
- 高度なLinuxコマンドのチートシート
- 無料のオンラインコース:RHELの技術概要
- Linuxネットワーキングのチートシート
- SELinuxチートシート
- Linuxの一般的なコマンドのチートシート
- Linuxコンテナとは何ですか?
- 最新のLinux記事
ソフトウェアをコンピュータユーザー全体が利用できるようにする場合は、ソフトウェアもパッケージ化する必要があります。食品のように、ソフトウェアをパッケージ化する方法はいくつかあります。オープンソースソフトウェアは、生のコードにアクセスできるユーザーが自分でコンパイルしてパッケージ化できるため、パッケージ化されていないままにしておくことができます。ただし、パッケージには利点があるため、アプリケーションは通常、ユーザーのプラットフォームに固有の形式で提供されます。ソフトウェアパッケージのフォーマットは1つだけではないため、ここから問題が始まります。
すべての作業はシステムのインストーラーによって行われるため、ユーザーにとって、パッケージを使用するとソフトウェアを簡単にインストールできます。ソフトウェアはパッケージから抽出され、オペレーティングシステム内の適切な場所に配布されます。何かがうまくいかない可能性はほとんどありません。
ただし、ソフトウェア開発者にとって、パッケージ化とは、パッケージを作成する方法を学ぶ必要があることを意味します。1つのパッケージだけでなく、ソフトウェアをインストールするすべてのオペレーティングシステムに固有のパッケージを作成する必要があります。問題を複雑にするために、オペレーティングシステムごとに、場合によっては使用されているプログラミング言語に対しても、複数のパッケージ形式とオプションがあります。
Linuxでのパッケージング
Linuxのパッケージオプションは、従来、かなり圧倒されてきました。 Red HatやCentOSなどのFedoraから派生したLinuxディストリビューションは、デフォルトで.rpm
になります。 パッケージ。 DebianとUbuntu(および同様のもの)のデフォルトは.deb
パッケージ。他のディストリビューションでは、カスタム形式を選択して、どちらか一方を使用するか、どちらも使用しない場合があります。尋ねられたとき、多くのLinuxユーザーは、理想的には、プログラマーはLinux用にソフトウェアをパッケージ化せず、代わりに各ディストリビューションのパッケージメンテナーに依存してパッケージを作成すると言います。 Linuxシステムにインストールされるすべてのソフトウェアは、そのディストリビューションの公式リポジトリから取得する必要があります。ただし、すべてのディストリビューションは言うまでもなく、ソフトウェアを確実にパッケージ化して1つのディストリビューションに含める方法は不明です。
Linux用Flatpak
Flatpakパッケージングシステムは、開発者向けの配信ターゲットとしてLinuxを統合および分散化するために導入されました。 Flatpakを使用すると、開発者または誰でも(Linuxコミュニティのメンバー、別の開発者、Flatpakチームのメンバー、または他の誰でも)ソフトウェアを自由にパッケージ化できます。その後、パッケージをFlathubに送信するか、パッケージをセルフホストして基本的にすべてのLinuxディストリビューションに提供することを選択できます。 FlatpakシステムはすべてのLinuxディストリビューションで利用できるため、1つをターゲットにすることはそれらすべてをターゲットにすることと同じです。
Flatpakテクノロジーの仕組み
Flatpakの普遍的な魅力の秘訣は標準的なベースです。 Flatpakシステムを使用すると、開発者はソフトウェア開発キット(SDK)モジュールの一般的なセットを参照できます。これらは、Flatpakシステムのメンテナによってパッケージ化および管理されます。 Flatpakをインストールするたびに、SDKが必要に応じて取り込まれ、システムとの互換性が確保されます。 SDKに含まれるライブラリは、SDKを呼び出すすべてのFlatpakで共有できるため、特定のSDKは1回だけ必要です。
開発者が既存のSDKにまだ含まれていないライブラリを必要とする場合、開発者はそのライブラリをFlatpakに追加できます。
結果はそれ自体を物語っています。ユーザーは、Flathubと呼ばれる1つの中央リポジトリから任意のLinuxディストリビューションに数百のパッケージをインストールできます。
開発者がFlatpaksを使用する方法
Flatpaksは再現性があるように設計されているため、ビルドプロセスはCI/CDワークフローに簡単に統合できます。 Flatpakは、YAMLまたはJSONマニフェストファイルで定義されます。私の紹介記事に従って最初のFlatpakを作成できます。また、docs.flatpak.orgで完全なドキュメントを読むことができます。
Linuxで簡単に
Linuxでソフトウェアを作成するのは簡単で、Linux用にパッケージ化するのは簡単で自動化できます。プログラマーの場合、Linuxでは、1つのシステムを対象とし、それをビルドプロセスに統合することで、パッケージ化を忘れやすくなります。