문제

많은 Mac 워크스테이션에 배포해야 하는 프로그램(동료가 만들고 Linux에서 포팅했지만 Mac에서 성공적으로 컴파일함)이 있습니다.현재 우리는 pkg 파일(우리가 만든 파일이 아님)을 푸시하여 이를 수행합니다.

내 일반적인 질문(다른 사람들이 유용한 답변을 찾을 수 있음)은 명령줄 프로그램/스크립트를 프로그램을 설치하는 pkg 파일로 패키징하는 방법에 대한 것입니다..app 파일을 패키징하는 일반적인 방법은 충분히 문서화되어 있는 것처럼 보이지만 임의의 프로그램을 가져와서 pkg 설치 프로그램에 래핑하는 방법에 대한 세부 정보가 부족합니다.

pkgbuild 등의 매뉴얼 페이지에서는 이미 xcode로 앱을 구축했고, .app을 사용하려고 하며 plist를 생성할 수 있다는 가정 등을 많이 가정합니다.우리가 원하는 것은 Mac 서버가 앱이 아닌 프로그램을 설치하도록 하고 pkgs를 사용하려는 것입니다.

프로그램을 업데이트할 때마다 새 pkg 파일을 쉽게 만들 수 있도록 솔루션이 스크립트 가능하다면 가장 좋을 것입니다.이미 이 프로세스를 설명하는 적절한 리소스가 연결될 수 있다면 물론 그것도 훌륭할 것입니다.여기서 질문은 다음과 같습니다. 전문가처럼 OS X 설치 프로그램 패키지 만들기 - Xcode 개발자 ID 지원 패키지 단순히 기본 cli 프로그램을 설치해야 하는 필요성과 일치하지 않습니다.

도움이 되었습니까?

해결책

나는 추천하고 싶다 패키지.

스크립트가 가능하므로 빌드 프로세스의 일부가 될 수 있으며 멋진 mpkg를 생성할 수 있습니다.

우리는 이를 사용하여 타사 라이브러리 다운로드를 자동화한 다음 make를 호출하여 컴파일하고 컴파일된 파일을 설치합니다.

참고로 이렇게 하면 mpkg가 생성되지만 대부분의 배포는 디스크 이미지로 수행되므로 hdiutil을 사용하여 희소 이미지를 만들고 mpkg를 여기에 복사한 다음 압축된 읽기 전용 dmg로 변환한 다음 배포합니다.

이 절차의 예는 다음과 같습니다.

1) 스파스 RW DMG 파일을 생성합니다.

hdiutil create -size 100M -type SPARSE -volname "MyInstaller" -fs HFS+ MyInstaller.dmg.sparseimage

2) 이미지에 첨부합니다.출력에서 디스크 및 마운트된 볼륨 이름을 기록합니다(예:/dev/disk2s1 및 /Volumes/MyInstaller)

hdiutil attach MyInstaller.dmg.sparseimage

3) mpkg 설치 프로그램에서 복사

cp -R Packages/build/My_Packages.mpkg /Volumes/MyInstaller/

4) 이미지에서 디테크.

hdiutil detach -force {mounted disk} (ex. hdiutil detach -force /dev/disk2s1)

5) 쓰기 가능한 희소 이미지에서 압축된 읽기 전용 이미지를 생성합니다.

hdiutil convert "MyInstaller.dmg.sparseimage" -format UDZO -o "MyInstaller.dmg" -ov -imagekey zlib-level=9
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top