Linuxにはソフトウェアをインストールするときに依存関係の問題が多すぎますが、WindowsにはVC ++などのいくつかを除いて依存関係の問題がないのはなぜですか? [閉鎖]

Linuxにはソフトウェアをインストールするときに依存関係の問題が多すぎますが、WindowsにはVC ++などのいくつかを除いて依存関係の問題がないのはなぜですか? [閉鎖]

私はWindowsユーザーで、仕事にLinuxディストリビューションをたくさん使用しています。すべての依存関係が見つからない/バージョンがアップグレードされない/OSの配布バージョンが不一致であるため、ソフトウェアのインストールは非常に困難です。

私はLinuxの利点を認識していません。私は理由を知りたいです。 Windowsではこの問題をどのように処理しますか? Windows Fat Installerがすべての依存関係をバンドルしているためですか?

具体的には、Ubuntuとaptを例に挙げてみましょう。たとえば、正確なオペレーティングシステムから信頼できるオペレーティングシステムにオペレーティングシステムがアップグレードされるたびに依存関係が壊れます。ほとんどの場合、以前のバージョンを引き続き使用するのが解決策です。もちろん、開発者は新しいOSバージョンと互換性があるかどうかをテストして確認し、リポジトリにタグを付ける必要があります。

答え1

つまり、Windowsインストーラには通常必要なすべてのライブラリ(DLL)が含まれており、通常はアプリケーションと同じディレクトリにインストールされ、通常はそのアプリケーションでのみ使用できます。これは、同じソースライブラリ(圧縮ライブラリやGUI要素など)を使用する2つの3つのWindows製品がある場合は、すべて同じDLLをインストールしますが、バージョンが異なる場合があります。

これにより、同じライブラリのインストールされているすべてのコピーにパッチが一貫して適用されない可能性があるため、拡張が発生し、セキュリティの脆弱性が発生する可能性があります。

一部の共有ライブラリが存在します(明らかにオペレーティングシステムが提供するライブラリを含む)。この場合、そのライブラリがインストールされていることを確認する必要があり、単純な組み込みのWindowsソリューションはありません(通常はインストーラ自体によって処理されます)。 。

最新のLinuxディストリビューションには、デプロイメントリポジトリ内のすべてのアプリケーションの依存関係を処理する必要があるパッケージマネージャが付属しています。ここでは、ほとんどのタスクがディストリビューションをパッケージ化するために使用されます(一貫性を提供するための要素をカスタマイズすることで)。たとえば、aptDebianの依存関係は処理されるため、Debianリポジトリからインストールする限り、心配する必要はありません。

独自のパッケージをダウンロードしてインストールしたり、ソースからコンパイルする場合は、依存関係を直接管理する必要があります。

関連情報