একটি dmg ইনস্টল করার জন্য একটি আদেশ আছে?


51

আমি একটি রিমোট সার্ভারে একটি ডিএমজি ফাইল ইনস্টল করতে চাই। আমার কাছে যা আছে তা সবই এসএসএস অ্যাক্সেস। যেহেতু ডিএমজি একটি ডিস্ক চিত্র, তাই আমি এটিকে মাউন্ট করার চেষ্টা করেছি, তবে মাউন্টটিকে এর ফর্ম্যাটটি স্বীকৃতি বলে মনে হচ্ছে না।

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কাজ ছিল যাতে ডিট কাজ না করে
দিমিত্রি কোপ্রিয়া

19

আপনি .dmgব্যবহার করে মাউন্ট করতে সক্ষম হওয়া উচিত :

hdiutil attach /path/to/file.dmg

এবং তারপরে এর সামগ্রীগুলি (যেখানে প্রদর্শিত হবে /Volumes) অনুলিপি করুন যেখানে আপনি পছন্দ করেন।


5

আমাকে মাউন্ট .appকরে /Applicationsফোল্ডারে অনুলিপি করতে হয়েছিল । ইচার.অ্যাপের জন্য:

@ ট্রোজানফোয় হিসাবে প্রথম বলেছেন:

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 ইনস্টল করতে এখানে একটি বাশ ফাংশন রয়েছে:

# 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ফাইল রয়েছে যা প্রোগ্রামটি ইনস্টল করতে চালিত হয়, তবে আপনাকে আবার আলাদা কিছু করতে হবে।


এটি কেবলমাত্র ডিএমজির জন্য প্রস্তুত অ্যাপ্লিকেশনগুলির জন্য কাজ করবে, প্যাকেজ বা ইনস্টলার অ্যাপ্লিকেশনগুলির জন্য নয়।
nohillside

@ পেট্রিক্স আপনি কি আমাকে প্যাকেজ এবং ইনস্টলার অ্যাপগুলির কয়েকটি উদাহরণ দিতে পারেন যার উত্তরটি পরিমার্জন করার জন্য আমি পরীক্ষা করতে পারি?
ভুটসৌরাস

প্যাকেজগুলি সহজ (শেষ
অবধি

এটি ফাইলটি আলাদা করে না। hdiutil: detach failed - No such file or directory
নিকোলাস ডিপিয়াজা 19

1
@ নিকোলাসডিপিয়াজাজা আমি আশা করি অ্যাপল কোনও একককে সহজ স্ট্যান্ডার্ড ব্যবহার এবং প্রয়োগ করে এবং বিকাশকারীদের তাদের বিদ্যমান ইনস্টলারদের স্বয়ংক্রিয়ভাবে নতুন স্ট্যান্ডার্ডটি রূপান্তর করতে রূপান্তর করতে সরঞ্জাম সরবরাহ করে এটিকে আরও সহজ করে তুলবে wish
ভুটসৌরাস

1

আপনি কমান্ড চেষ্টা করতে পারে open disk://host.tld/image.dmg


openকোনও ত্রুটি বার্তা ছাড়াই প্রস্থান করুন, কিছুই করেননি।
পরোপযুক্ত

2
হ্যাঁ এটা করে. আমি শুধু এটি পরীক্ষা করেছি। ডিস্ক চিত্রটি সম্পূর্ণরূপে মাউন্ট না হওয়া পর্যন্ত এটি কোনও কিছুই প্রদর্শন করবে না, সুতরাং এটি / ভলিউমে প্রদর্শিত হওয়ার আগে আপনাকে এক মিনিট বা আরও অপেক্ষা করতে হবে। (আপনি যদি টাইপ করেন এবং টাইপ করেন তবে এটি কাজ করে open path/to/file.dmgI disk://host.tld/যদিও আমি কাজ করি বলে মনে করি না ))
ডেভিওয়েলেস

সহায়ক, যদিও ওপিটির প্রয়োজন ঠিক ঠিক তা নয়। ধন্যবাদ।
ড্যানি হুইট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.