새로운 Mac 소유자이지만 오랜 Linux 사용자입니다. 명령줄에서 소스를 컴파일하고 설치하는 것과 .dmg 이미지에서 Subversion과 같은 소프트웨어를 설치하는 것의 차이점을 설명할 수 있는 사람이 있습니까? 소프트웨어가 같은 위치에 있습니까? 제거 절차와 같은 다른 차이점은 무엇입니까? 한 접근 방식의 장단점을 다른 접근 방식에 비해 어떻게 생각하시나요?
답변1
A .dmg
는 단지 가상 디스크("디스크 이미지")일 뿐이며 그 자체로는 설치와 관련이 없습니다.
디스크 이미지에 응용 프로그램만 포함되어 있는 경우(일반적으로 해당 응용 프로그램을 응용 프로그램 폴더로 끌어오라는 설명 텍스트가 있음) 모든 코드와 지원 파일이 해당 파일 하나에 포함되어 있습니다. 애플리케이션은 처음 실행 시 모든 설정을 수행하고 필요한 경우 제거 메커니즘을 제공합니다.~이다나중에 설치됩니다. 많은 개발자들이 사용하고 있는불꽃업데이트를 찾아 설치하는 프레임워크입니다.
디스크 이미지에 패키지( .pkg
또는 .mpkg
)가 포함되어 있으면 설치 프로그램입니다. 이를 실행하면 시스템의 어느 위치에나 파일을 설치할 수 있고 사전 설치 및 사후 설치 스크립트를 실행할 수 있으며 내장된 제거 또는 업그레이드 메커니즘이 없습니다. 하지만 시스템은 설치된 패키지의 로그를 유지하므로 나중에 설치 프로그램 패키지를 실행하면 최신 버전의 소프트웨어의 경우 처음 설치했을 때와 다르게 작동할 수 있습니다. 이 경우에도 개발자는 제거 및 업데이트에 대한 책임이 있습니다. 담당 개발자는 표준 디렉토리( /Applications
, /Library
및 ~/Library
, /usr
등) 에 설치합니다 .
일반적으로 소스에서 설치하는 명령줄 소프트웨어의 경우 다음과 같은 패키지 관리자를 권장합니다.MacPort(내 취향) 또는핑크설치 프로그램 패키지를 사용하는 것보다. 두 패키지 관리자 모두 자신이 설치하는 소프트웨어에 대한 모든 지원 파일과 실행 코드가 포함된 자체 포함 디렉터리( /opt
및 각각) 를 설정하고 (대부분의 패키지는 이를 준수함) 자신을 . 패키지 관리자를 사용하면 설치된 소프트웨어를 추적하고 이를 업그레이드하거나 제거할 수 있다는 것이 큰 장점입니다./sw
$PATH
답변2
.dmg에서 설치하는 것은 일반적으로 /Applications로 드래그 앤 드롭하면 됩니다. 제 생각에는 제거는 Mac 경험에서 아픈 부분 중 하나입니다. 응용 프로그램에서 파일을 삭제할 수 있지만 .app 래퍼에 캡슐화된 항목만 삭제됩니다. 추가 구성 파일은 사라지지 않습니다.
고려해야 할 또 다른 설치 경로는 다음과 같습니다.MacPort및/또는핑크. 이는 Linux 세계의 apt-get 또는 yum과 다소 유사합니다. 이는 일반적인 소프트웨어를 잡고, 컴파일하고, 설치하기 위한 명령줄 유틸리티를 제공합니다. 일반적으로 다음과 같이 간단합니다.
$ sudo port install svn
(맥포트 예시)
답변3
DMG 내부에는 간단한 드래그 앤 드롭 솔루션이 있을 수도 있고.PKG - 어느 위치에나 설치할 수 있습니다..pkg는 일반적으로 영수증을 남기지만(보통 /Library/Receipts에 있음) OS X에서는 해당 영수증을 관리하는 쉬운 방법이 없습니다.
Pacifist는 설치 전에 .pkg 파일(많은 명령줄 앱이 사용자 지정 설치 위치에 사용하는 파일)을 검사하여 설치 위치를 정확히 이해할 수 있는 유용한 앱입니다. 그런 다음 자체 컴파일된 버전이 동일한 위치에 설치되는지 여부와 시스템 버전과 충돌하는지 확인할 수 있습니다.
특히, 다른 위치에 설치하는 경우 경로가 사용하려는 원하는 버전을 반영하는지 확인해야 합니다. 여러 버전이 설치된 경우 Subversion이 문제가 되지 않을 것 같습니다. Ruby의 경우 호환되지 않는 코드의 경로 문제를 방지하기 위해 Ruby 실행 파일에 ruby19 이름을 사용합니다.
강력하지는 않지만 설치될 위치를 표시하는 기본 작업을 수행하는 .pkg 파일용 무료 Quicklook 플러그인이 있습니다.