Linux ではソフトウェアをオフラインでインストールできないのはなぜですか?

Linux ではソフトウェアをオフラインでインストールできないのはなぜですか?

Linux (デスクトップ) には、Windows のようにソフトウェアをダウンロードしてダブルクリックするだけでインストールできる機能がなぜ提供されていないのでしょうか。すべてのソフトウェアをオンラインでインストールしなければならないのは面倒です。

それは技術的に不可能なのでしょうか、それとも単なる設計上の決定なのでしょうか?

答え1

まず、前述したように、あなたの仮定は間違っています。できるUbuntu または私が知っている他の Linux バリアントにソフトウェアをオフラインでインストールします。(エッジケースが存在する可能性がありますが、私の知る限りではありません。)

適切な質問は、「なぜ... すべきではないのか?」または「なぜ Ubuntu の vlc パッケージが完全ではないのか?」のどちらかです。どちらも、互いの背後にある基本に依存しています。では、状況から始めましょう。

Windowsにインストールするパッケージには以下が含まれますすべてそのパッケージをインストールするために必要なもの、つまりドライバー、サブシステム、サポート ライブラリ (DLL) などです。インストーラーを実行すると、システムを調べて何が必要で何が不要かを判断し、必要なものだけをインストールし、他のパッケージで使用されている類似のファイルを上書きしないようにします。必要なものがすべて含まれているため、1 回のダウンロードですべてが完了します。システムに VLC が想定する MP3 コーデックがインストールされていない場合は、ダウンロードしたパッケージに含まれているコーデックがインストールされます。VLC が使用するように記述されていない別の MP3 コーデックがある場合でも、VLC のインストーラーから別のコーデックが取得されます。

Linux にインストールするパッケージを入手すると、そのプログラムのみが含まれます。他に必要なものは含まれていません。VLC プレーヤーに MP3 コーデックのインストールが必要な場合は、それもインストールする必要があります。そうしないと、VLC は MP3 ファイルを再生できません。パッケージにリストされているその他の依存関係についても同様です。

パッケージの依存関係を確認するなど、適切な調査を行えば、できる.debファイル (Ubuntu 用、またはRedHat 用)をダウンロードし.rpm、必要なパッケージをすべてオフラインでインストールします。これは大変な作業であり、何かを忘れた場合は、戻ってダウンロードしてインストールする必要があります。完了すると、まだ機能し、すべてオフラインでインストールされました。

こうした作業はすべて、ディストリビューションのパッケージ マネージャーが代わりに処理します。もしインストールする必要があったそのパッケージの依存関係をすべてダウンロードするには、まずそれらをすべてダウンロードする必要があります。Windows では、パッケージをインストールする場合、インストールする前にその依存関係もすべてダウンロードする必要があります。違いは、Windows インストーラーではすべての依存関係が 1 つのダウンロード ファイルにバンドルされているのに対し、Linux では各パッケージが独自のファイルに含まれていることです。

さて、Windows に 5 つの異なるメディア プレーヤーをインストールするとどうなるでしょうか。ほとんどすべてのメディア プレーヤーは、MP3 コーデック、サウンド システムへのインターフェイス、ウィンドウ マネージャーへのインターフェイス、ファイル システムからファイルを読み取る方法など、システム内の同じ基本ライブラリ セットを必要とします。最初に VLC をインストールすると、他のどのプログラムでもまだインストールされていないため、VLC によってそれらのヘルパーがすべてインストールされます。次に Banshee をインストールすると、ほとんどのヘルパー ファイルがすでにインストールされています。したがって、インストーラーは、そのプログラム用にヘルパー ファイルを見つけてリンクを作成する以外にはほとんど何もする必要がありません。最後のプレーヤー (それが何であれ) をインストールする頃には、必要なヘルパー ファイルがすべてすでに存在している可能性が高く、インストールは非常に高速になります。

Linux に 5 つのメディア プレーヤーをインストールするとどうなるでしょうか。ほぼ同じです。パッケージ マネージャーを使用して進行状況を確認すると、最初のプレーヤーには長いヘルパー ファイルのリストがインストールされ、2 番目のプレーヤーにはそれよりはるかに短いリストがインストールされ、5 番目のプレーヤーにはおそらく何もインストールされていないことがわかります。

それで、違いは何でしょうか? 違いはありませんよね?間違っている。5 つの Windows インストーラーには、ヘルパー ファイルがすべて含まれています。そのため、MP3 コーデックのコピー 5 つ、WMA コーデックのコピー 5 つ、FLAC コーデックのコピー 5 つ、ウィンドウ マネージャー インターフェイスのコピー 5 つなどをダウンロードすることになります。一方、Linux では、ヘルパー ファイルのコピーを 5 つではなく 1 つダウンロードするため、帯域幅の使用量は少なくなります。インストーラーを後で使用できるように保存すると、ディスク領域の使用量も大幅に少なくなります。さらに、ヘルパー ファイルの多くはすでにインストールされている可能性があるため、ダウンロードも保存も必要ありません。

Unundu.debと Windows を含む 2 つのパッケージを比較する.exe.msi、次のようになります。

-rw-r--r-- 1 gypsy users 23052120 May 11 22:35 Banshee-2.4.0.msi
-rw-r--r-- 1 gypsy users 30533688 May 11 21:49 vlc-2.2.4-win32.exe
                         --------
                 Total = 53585808
-rw-r--r-- 1 gypsy users  2731866 May 11 22:36 banshee_2.9.0+really2.6.2-7ubuntu2_amd64.deb
-rw-r--r-- 1 gypsy users  2002764 May 11 21:52 vlc_2.2.4-4_amd64.deb
                         --------
                 Total =  4734630

これら 2 つのプレーヤーのパッケージ サイズを比較すると、Windows では Linux の約 10 倍のダウンロード量になります。当然、一部のプログラムはさらに悪いでしょうし、他のプログラムはより優れています。たとえば、Windows で Strawberry Perl を使用して Perl をインストールする場合、84.3 MB の.msiファイルをダウンロードします。Linux にインストールする場合は、15.6 MB のソースをダウンロードできますが、これは 5 分の 1 のサイズにすぎません。

なぜ違いがあるのか​​?それは主に哲学によるものです。Linux哲学Unixから継承された概念は、一つのことをやり、それをうまくやり遂げる。そのため、パッケージのインストーラーは、必要なヘルパー ライブラリをすべてインストール、リンク、テストする方法を知る必要はなく、それらが適切な場所にあるかどうかを確認するだけで済みます。Firefox のインストーラーは、Web サイトの HTTPS 証明書を確認するために OpenSSL をインストールする必要はなく、OpenSSL にアクセスできるかどうかを知るだけで済みます。

Linux 哲学のもう 1 つの側面は選択です。これが、選択できる Linux ディストリビューションが非常に多く、さまざまなウィンドウ マネージャーやその他のプログラムをインストールできる理由の 1 つです。使用する MP3 コーデックを選択することもできます。また、オープン ソース バージョンとプロプライエタリ バージョンの両方から選択できます。

とはいえ、パッケージを1ステップでインストールするためのバンドルを作成したケースもいくつかあります。すぐに思い浮かぶのは、メール・イン・ア・ボックスただし、それでもオンラインでインストールする必要があります。これは、パッケージ マネージャーが行うのと同じことであり、動作に必要な他のライブラリを検索して、必要に応じてダウンロードするからです。それでも、すべてを 1 回のダウンロードに「バンドル」するわけではありません。

結論

もし、あんたがしなければならないオフラインでインストールする場合は、パッケージ マネージャーを使用して、並べ替え、選別、選択を行います。ファイルをインストールせずにダウンロードのみを行うように指示します。その後、オフラインでインストールを自分で行うことができます。インストールでより冒険的なことをしたい場合は、元のソース tarball をダウンロードしてパッケージをコンパイルします。ボーナスとしてパフォーマンスが向上する可能性があります。必要に応じて、節約したディスク領域を音楽、ビデオ、ゲームなどに使用できます。本当に「ワイルド サイド」に挑戦するには、カーネル自体のコンパイルを含め、独自の Linux をゼロから作成してみてください。ゼロから学ぶLinuxこのようなプロジェクトであれば、すべての手順は問題なく完了するでしょう。ただし、予備のコンピュータで実行してください。ない一晩でインストールでき、完了した後も、使い慣れたウィンドウ GUI に戻すためにさらに多くの作業が必要になります。

答え2

「なぜLinuxはこの機能を提供しないのか」という問いに対する答えはミュー

「あなたの質問は誤った前提に基づいているため、答えることができません」という意味の日本語。

この異例の答えを正当化するために:

昔から、さまざまな Linux では、パッケージを自分でダウンロードしてインストールしたり (またはソースからビルドしたり)、何らかのマネージャを使用したりできました。後者は Windows の世界では新しいものです。あるシステムで、別の方法ではなく、ある方法でインストールしなければならない場合、それは Linux ではありません。

答え3

確かに可能です。ソフトウェアのインストールに使用するリポジトリは、多くの場合、パッケージをファイルとして提供する ftp/http サーバーにすぎません。Debian ベースのディストリビューションの場合、これらは .deb ファイルです。これらをダウンロードしてオフラインでインストールできます。

多くの場合、パッケージ マネージャーは「ダウンロードのみ」のオプションも提供します。

通常、パッケージ マネージャーはオンラインで使用します。この方法では、依存関係 (実際に必要なプログラムが動作するためにインストールする必要があるプログラム/ライブラリ) が処理され、署名がチェックされるため、変更された、悪意のある可能性のあるパッケージが提供されることはありません。

関連情報