dmgをインストールするコマンドはありますか


51

リモートサーバーにdmgファイルをインストールしたい。私が持っているのはsshアクセスだけです。DMGはディスクイメージであるため、マウントしようとしましたが、マウントはそのフォーマットを認識しないようです。

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は、答えを絞り込むためにテストできるパッケージとインストーラーアプリの例をいくつか教えてもらえますか?
ヴォウタサウルス

パッケージには、簡単に(の.pkgで終了)ですが、インストーラアプリは、実際のものと同じに見えます
nohillside

これはファイルをデタッチしません。hdiutil: detach failed - No such file or directory
ニコラスディピアザ

1
@NicholasDiPiazza単一の使いやすい標準を提供および実施し、開発者に既存のインストーラーを自動的に変換して新しい標準を使用させることにより、Appleがこれを簡単にしたいと思います。
ヴォウタサウルス

1

コマンドを試すことができopen disk://host.tld/image.dmgます。


openエラーメッセージなしで、何もせずに終了します。
慈善家

2
はい、そうです。私はそれをテストしました。ディスクイメージが完全にマウントされるまで何も表示されないため、/ Volumesに表示されるまで1分ほど待つ必要があります。(sshで入力するopen path/to/file.dmgdisk://host.tld/動作します。動作するとは思いません。)
daviewales

役立つが、おそらくOPが必要とするものとは必ずしも正確ではない。ありがとう。
ダニーホイット14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.