답변:
종속성이 프로그램 자체에 포함되지 않은 주된 이유는 시스템 구성 요소를 쉽게 업데이트 할 수 있기 때문입니다.
하나의 의존성이 5 개의 다른 프로그램에 의해 사용된다고 상상해보십시오. 해당 종속성에서 보안 취약점이 발견되면 5 개가 아닌 1 개만 업데이트하면됩니다.
사용자에게 여러 패키지를 설치해야하는 것은 중요하지 않습니다. 원하는 소프트웨어를 설치하면 종속성이 자동으로 설치됩니다.
.deb와 .exe 패키징의 주요 차이점은 Ubuntu 소프트웨어가 단일 파일로 게시되지 않는다는 것입니다. 가장 큰 차이점은 패키지를 포함하고 업데이트를 쉽게 제공 할 수있는 소프트웨어 리포지토리의 전체 개념입니다.
인터넷에 직접 연결되지 않은 컴퓨터에서는 문제가 될 수 있습니다. 이러한 어려움을 최소화하는 데 도움이되는 APTonCD 와 같은 도구가 있습니다 .
그것은 사실이 아닙니다. 우분투 소프트웨어는 일반적으로 하나의 .deb 파일로 제공됩니다. 완전히 단순하고 부정확 한 .deb 파일은 Windows의 해당 .exe 파일입니다. Windows 프로그램을 포함한 모든 프로그램은 운영 체제 (라이브러리)의 다른 파일에 대한 종속성을 사용합니다. 설치 프로세스는 다른 OS에서 다소 명시 적입니다. Ubuntu의 소프트웨어 센터를 사용하여 프로그램을 다운로드하면 시스템에 설치되지 않은 종속성과 실제 프로그램 파일 만 다운로드됩니다. 이로 인해 시스템에 중복 파일과 중복 기능이 오버로드되어 충돌이 발생하지 않습니다.
믿거 나 말거나, Windows 또는 Ubuntu에 프로그램을 설치하는 것의 유일한 차이점은 사용자에게 제공하는 정보의 양입니다. Windows는 사용자가 멍청하다고 생각하며 exe 파일을 실행할 때 무엇을 설치하고 있는지 알고 싶지 않습니다. 리눅스에서는 그 정보를 얻습니다. 일부 사용자에게는 너무 자세한 정보가 있지만 다른 사용자 (대부분)는 그것을 정말로 감사합니다.
이해가 되길 바랍니다.
.deb
은 .msi
입니다.
우분투에서는 대부분의 소프트웨어가 단일 파일로 제공됩니다. *.deb
패키지 관리자에서 다운로드하여 압축을 풀고 설치 한 데비안 패키지 파일입니다.
Ubuntu가 대부분의 Windows 소프트웨어와 같이 자동 압축 풀기 실행 파일에서 소프트웨어를 설치하지 않는 이유는 무엇입니까?
자동 압축 풀림 *.exe
파일은 매우 위험한 제안입니다.
자동 압축 풀기 실행 파일과 데비안 / 우분투 시스템과 같은 패키징 시스템의 가장 중요한 차이점은 다음과 같습니다.
더 자세하게:
보안
창문 세계에서 당신은 그 단일을 신뢰해야 *.exe
파일 합니다. 어떻게 믿을 수 있는지 어떻게 확신 할 수 있습니까? 그것이 무언가를 설치한다는 것을 어떻게 알 수 있습니까? 등 뒤에서 다른 일을하지 않는 것을 어떻게 확신 할 수 있습니까?
우분투에서 모든 패키지는 디지털 서명되므로 별도의 패키지 파일 (패키지 관리자 (muon, synaptic, aptitude 또는 apt apt))을 사용하여 설치가 완료 되기 전에 패키지를 풀기 전에 내용을 확인할 수 있습니다. 물론 이것은 리포지토리를 신뢰한다고 가정합니다. 차라리 우연히 다운로드 할 수있는 수백 가지의 다른 소스보다 우분투 리포지토리 (단일 권한)를 신뢰하고 싶습니다.
세분화 된 제어
A를 *.exe
파일, 당신은 본질적으로 한 가지 작업을 수행 할 수 있습니다를 실행합니다. 우분투에서는 설치 여부를 결정 하기 전에 패키지 관리자의 편리함에서 패키지의 내용, 설명, 구성, 개별 파일, 최신 변경 사항, 버그 수정 등을 검사 할 수 있습니다 .
*.exe
파일 에서 설치하는 경우 '제거'후크도 신뢰해야합니다 (모든 *.exe
파일에 파일이있는 것은 아닙니다 ). 우분투에서 패키지 관리자가 설치 한 표준 패키지에 속하는 모든 파일은 패키지 자체가 아니라 패키지 관리자의 기능이기 때문에 항상 제거 할 수 있습니다. 패키지 관리자는 별도의 신뢰할 수있는 응용 프로그램으로 설치 관리자와 제거 관리자를 모두 제공하므로 패키지에서 제거 후크를 제거 할 수 없습니다. 물론, 악의적 인 패키지는 설치 후 작업을 통해 내용을 몰래 숨길 수 있지만, 공식 저장소 시스템과이를 관리 할 수있는 직원이 동일한 이유입니다.
투명도
더 나아갑니다. 우분투에서는 소프트웨어를 여러 수준에서 확인할 수 있기 때문에 시스템을 실제로 신뢰할 수 있습니다. 궁극적 인 수준은 소스 코드를 볼 수있는 것입니다. 이진 패키지에는 해당 소스 패키지가 있습니다. 실제로 소스를 볼 수 있습니다 (예 : ' apt-get source bash '는 bash 쉘에 대한 전체 소스를 제공합니다). * .exe 파일의 세계에는 일반적으로 이진 파일 만 있으며 실제로 어떤 작업을 수행하는지 누가 알 수 있습니까?
즉, 규칙에는 항상 예외가 있지만 보안 및 신뢰의 경우 시스템에 구성 요소를 설치하는 표준 방법으로 확인하기 어려운 수백 가지 소스의 바이너리를 실행할 수 없다는 것을 의미합니다.
의존성에 대한 나의 이해를 공유해 보자 . 내 친구) .
아니요, 거의 모든 소프트웨어가 다른 일부 소프트웨어에 종속되어 있습니다. (소프트웨어가 매우 저수준이고 운영 체제 자체와 같은 하드웨어와 직접 통신 할 수있는 경우가 아니라면) . Microsoft의 소프트웨어에는 의존성이 없습니다. 중요한 질문은 어떻게 처리 하는가?
답 : 그들은 이것을 전통적인 방식으로 처리합니다. 대부분의 사용자를 멍청하다고 가정하면 모든 종속성을 단일 파일에두기 만하면 더 큰 크기의 (1 파일) 소프트웨어가 만들어집니다.
예를 들어, Microsoft 용으로 출시 된 게임을 참조하십시오. 거의 모든 게임에는 DirectX 설정이 포함되어 있지만 사용자가 이미 버전을 업데이트했을 수도 있습니다.
DirectX가 모든 게임에 포함되는 이유에 대해 Google에서 찾은 내용은 다음과 같습니다.
최신 버전의 바이너리가 이미 설치되어 있어도 해당 버전을 사용할 수 없으며 DirectX 설치가 최신 버전 인 경우에도 최신 버전의 설치 관리자를 모두 실행하지 않아도되므로 최신 버전 인 경우에도 이전 버전. 더 나쁜 것은 x86 용 버전이 설치된 경우 x64 용으로 동일한 버전이 설치되었다고 보장하지 않으므로 64 비트 및 32 비트 게임은 동일한 정확한 설치 프로그램 버전을 실행해야하지만 실행될 때 다른 플랫폼을 대상으로해야 할 수도 있습니다.
전체 기사를 보려면 여기 를 클릭하십시오 . 그들이 의존성을 다루는 데있어 잘하지 못하는 것은 분명하다.
대부분의 경우 이미 의존성에 관계없이 사용자에게 단순성을 제공합니다 . 또한 .NET 런타임 구성 요소를 포함하는 테마가 몇 개인 지 확인하십시오.
내 경험의 또 다른 예 : 일단 MS 소프트웨어를 다운로드하여 설치했습니다. 프로세스가 만족 스러우면 아이콘을 클릭하여 소프트웨어를 연 다음 "Java를 실행해야합니다"라는 메시지가 표시됩니다. Linux 환경에서는 패키지 관리를 통해 이러한 상황이 발생하지 않습니다. (저장소 사이트에서 .deb 파일을 다운로드하고 MS 방식으로 두 번 클릭하여 설치하지 않는 한) .
Linux 또는 Ubuntu는 소프트웨어를 사용하기 위해 종속성을 설치해야한다는 사실을 숨기지 않습니다 (Microsoft 방식과 달리). 그러나 구성 요소를 설치할 때 동일한 구성 요소에 종속 된 다른 소프트웨어는 이전에 설치 한 설치된 장치를 사용합니다 (모든 것을 포함한 MS 소프트웨어와 달리).