Linux에는 소프트웨어를 설치할 때 종속성 문제가 너무 많은데 Windows에는 VC++와 같은 몇 가지를 제외하고는 종속성 문제가 없는 이유는 무엇입니까? [폐쇄]

Linux에는 소프트웨어를 설치할 때 종속성 문제가 너무 많은데 Windows에는 VC++와 같은 몇 가지를 제외하고는 종속성 문제가 없는 이유는 무엇입니까? [폐쇄]

저는 Windows 사용자이고 업무에 Linux 배포판을 많이 사용합니다. 모든 종속성 누락/버전 업그레이드 안 됨/OS 배포 버전 불일치로 인해 소프트웨어 설치가 매우 어렵습니다.

내가 리눅스의 장점을 인식하지 못하는 것은 아니다. 나는 이유를 알고 싶습니다. Windows에서는 이 문제를 어떻게 처리합니까? Windows Fat Installer가 모든 종속성을 번들로 제공하기 때문입니까?

구체적으로 Ubuntu와 apt를 예로 들어보겠습니다. 예를 들어 정확한 운영 체제에서 신뢰할 수 있는 운영 체제로 운영 체제가 업그레이드될 때마다 종속성이 깨집니다. 대부분의 경우 이전 버전을 계속 사용하는 것이 해결책입니다. 물론 개발자는 새 OS 버전과 호환되는지 테스트하고 확인하고 저장소에 태그를 지정해야 합니다.

답변1

즉, Windows 설치 프로그램에는 일반적으로 필요한 모든 라이브러리(DLL)가 포함되어 있으며 일반적으로 응용 프로그램과 동일한 디렉터리에 설치되며 일반적으로 해당 응용 프로그램에서만 사용할 수 있습니다. 이는 동일한 소스 라이브러리(예: 압축 라이브러리 또는 GUI 요소)를 사용하는 두세 개의 Windows 제품이 있는 경우 모두 동일한 DLL을 설치하지만 버전은 다를 수 있음을 의미합니다.

이로 인해 동일한 라이브러리의 설치된 모든 복사본에 패치가 일관되게 적용되지 않을 수 있으므로 팽창이 발생하고 보안 취약점이 발생할 수 있습니다.

일부 공유 라이브러리가 존재합니다(분명히 운영 체제에서 제공하는 라이브러리 포함). 이 경우 해당 라이브러리가 설치되어 있는지 확인해야 하며 간단한 내장 Windows 솔루션은 없습니다(일반적으로 설치 프로그램 자체에서 처리됨). .

최신 Linux 배포판에는 배포 저장소에 있는 모든 애플리케이션의 종속성을 처리해야 하는 패키지 관리자가 함께 제공됩니다. 여기에서 대부분의 작업이 배포판을 패키징하는 데 사용됩니다(일관성을 제공하기 위한 요소를 사용자 정의하는 것과 함께). 예를 들어 aptDebian의 종속성은 처리되므로 Debian 저장소에서 설치하는 한 걱정할 필요가 없습니다.

자신의 패키지를 다운로드하여 설치하거나 소스에서 컴파일하는 경우 종속성을 직접 관리해야 합니다.

관련 정보