dmg를 설치하는 명령이 있습니까


51

원격 서버에 dmg 파일을 설치하고 싶습니다. 내가 가진 것은 ssh 액세스입니다. DMG는 디스크 이미지이므로 마운트하려고했지만 mount가 해당 형식을 인식하지 못하는 것 같습니다.

file내 dmg 파일은입니다 VAX COFF executable.

답변:


71

먼저 dmg 이미지를 마운트하십시오. sudo hdiutil attach <image>.dmg

이미지가에 장착됩니다 /Volumes/<image>. 광산에는 내가 설치 한 패키지가 포함되어 있습니다.sudo installer -package /Volumes/<image>/<image>.pkg -target /

마지막으로 이미지를 마운트 해제하십시오 sudo hdiutil detach /Volumes/<image>.


나는 그것을 Docker.dmg가지고 있었고 나는 <image>.pkg그렇게 작동 하지 않도록 아무것도 없었다
Dimitri Kopriwa

19

다음을 .dmg사용하여 마운트 할 수 있어야합니다 .

hdiutil attach /path/to/file.dmg

그런 다음 /Volumes원하는 곳에 내용을 복사하십시오 (에 표시됨 ).


5

폴더 를 마운트하고 복사해야 .app했습니다 /Applications. Etcher.app의 경우 :

@trojanfoe가 말한대로 :

sudo hdiutil attach /Users/janatac/Etcher-1.2.1.dmg

그때

sudo cp -R /Volumes/Etcher\ 1.2.1/Etcher.app /Applications

그런 다음 /Applications폴더에 응용 프로그램이 있습니다.

볼륨을 마운트 해제하는 것을 잊지 마십시오 :

sudo hdiutil unmount /Volumes/Etcher\ 1.2.1/

블로그 게시물에서 지침을 읽은 후 작동 했습니다 .


5

설치를 스크립팅하려면 .dmg파일 이름, 생성 된 볼륨 이름, 응용 프로그램 이름 및 분리해야하는 장치 이름이 모두 다를 수 있으므로 몇 단계가 더 필요합니다. 게다가 그들은 공간을 가질 수 있습니다.

또한이 .dmg수 있습니다 .app파일이나 .pkg거기에 파일을 이들은 다른 동작을 필요로한다.

원격 URL에서 dmg를 설치하는 bash 함수는 다음과 같습니다.

# usage: installdmg https://example.com/path/to/pkg.dmg
function installdmg {
    set -x
    tempd=$(mktemp -d)
    curl $1 > $tempd/pkg.dmg
    listing=$(sudo hdiutil attach $tempd/pkg.dmg | grep Volumes)
    volume=$(echo "$listing" | cut -f 3)
    if [ -e "$volume"/*.app ]; then
      sudo cp -rf "$volume"/*.app /Applications
    elif [ -e "$volume"/*.pkg ]; then
      package=$(ls -1 "$volume" | grep .pkg | head -1)
      sudo installer -pkg "$volume"/"$package" -target /
    fi
    sudo hdiutil detach "$(echo "$listing" | cut -f 1)"
    rm -rf $tempd
    set +x
}

프로그램을 설치하기 위해 실행 .dmg되는 .app파일이 있으면 다시 다른 작업을 수행해야합니다.


이는 패키지 또는 설치 프로그램이 아닌 실행 준비가 된 앱이 포함 된 dmg에만 적용됩니다.
nohillside

@patrix 대답을 구체화하기 위해 테스트 할 수있는 패키지 및 설치 프로그램의 예를 알려 주시겠습니까?
voutasaurus

패키지는 간단하지만 (.pkg로 끝남) 설치 프로그램은 실제와 동일하게 보입니다.
nohillside

이것은 파일을 분리하지 않습니다. hdiutil: detach failed - No such file or directory
Nicholas DiPiazza

1
@NicholasDiPiazza 필자는 Apple이 사용하기 쉬운 단일 표준을 제공하고 적용하여 개발자가 기존 설치 프로그램을 자동으로 변환하여 새로운 표준을 사용할 수있는 도구를 제공함으로써이 작업을 더 쉽게 해주길 바랍니다.
voutasaurus

1

당신은 명령을 시도 할 수 open disk://host.tld/image.dmg있습니다.


open오류 메시지없이 아무것도하지 않고 종료하십시오.
Philant

2
그렇습니다. 방금 테스트했습니다. 디스크 이미지가 완전히 마운트 될 때까지 아무 것도 표시되지 않으므로 / Volumes에 나타나려면 1 분 정도 기다려야합니다. (당신이 ssh를 입력하고 입력하면 작동합니다 open path/to/file.dmg. disk://host.tld/그래도 작동 하지는 않습니다 .)
daviewales

OP가 필요한 것은 아니지만 도움이 될 수 있습니다. 감사.
Danny Whitt
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.