私はWindowsユーザーで、仕事にLinuxディストリビューションをたくさん使用しています。すべての依存関係が見つからない/バージョンがアップグレードされない/OSの配布バージョンが不一致であるため、ソフトウェアのインストールは非常に困難です。
私はLinuxの利点を認識していません。私は理由を知りたいです。 Windowsではこの問題をどのように処理しますか? Windows Fat Installerがすべての依存関係をバンドルしているためですか?
具体的には、Ubuntuとaptを例に挙げてみましょう。たとえば、正確なオペレーティングシステムから信頼できるオペレーティングシステムにオペレーティングシステムがアップグレードされるたびに依存関係が壊れます。ほとんどの場合、以前のバージョンを引き続き使用するのが解決策です。もちろん、開発者は新しいOSバージョンと互換性があるかどうかをテストして確認し、リポジトリにタグを付ける必要があります。
答え1
つまり、Windowsインストーラには通常必要なすべてのライブラリ(DLL)が含まれており、通常はアプリケーションと同じディレクトリにインストールされ、通常はそのアプリケーションでのみ使用できます。これは、同じソースライブラリ(圧縮ライブラリやGUI要素など)を使用する2つの3つのWindows製品がある場合は、すべて同じDLLをインストールしますが、バージョンが異なる場合があります。
これにより、同じライブラリのインストールされているすべてのコピーにパッチが一貫して適用されない可能性があるため、拡張が発生し、セキュリティの脆弱性が発生する可能性があります。
一部の共有ライブラリが存在します(明らかにオペレーティングシステムが提供するライブラリを含む)。この場合、そのライブラリがインストールされていることを確認する必要があり、単純な組み込みのWindowsソリューションはありません(通常はインストーラ自体によって処理されます)。 。
最新のLinuxディストリビューションには、デプロイメントリポジトリ内のすべてのアプリケーションの依存関係を処理する必要があるパッケージマネージャが付属しています。ここでは、ほとんどのタスクがディストリビューションをパッケージ化するために使用されます(一貫性を提供するための要素をカスタマイズすることで)。たとえば、apt
Debianの依存関係は処理されるため、Debianリポジトリからインストールする限り、心配する必要はありません。
独自のパッケージをダウンロードしてインストールしたり、ソースからコンパイルする場合は、依存関係を直接管理する必要があります。