लिनक्स में .dmg फाइल कैसे निकाले?


19

लिनक्स उपयोगकर्ता के रूप में, मुझे एक .dmg (Mac OSX डिस्क छवि) फ़ाइल की सामग्री प्राप्त करने की आवश्यकता है जिसमें एक एप्लिकेशन इंस्टॉलर है।

मैंने कोशिश की dmg2dir(जिसमें आवश्यकता है dmg2img) जिसने एक .img फ़ाइल बनाई लेकिन कुछ और नहीं।

$ sudo dmg2dir jdk-8u51-macosx-x64.dmg
==> Routines successfully accomplished. Ready! 
==> Prepare loop device... 
==> Mount block device... 
Error looking up object for device /dev/disk/by-label/JDK\x208\x20Update\x2051 INTENSO openSUSE\x20Live\x20CD\x20GNOME dump
Variable is empty.

मुझे सिर्फ .dmg फ़ाइल से फाइल को अनपैक करने की आवश्यकता है, मैं इसे माउंट नहीं करना चाहता।

यदि आप उत्सुक हैं, तो मुझे कंप्यूटर पर कार्यशालाओं में उपयोग किए जाने वाले पोर्टेबल विकास वातावरण बनाने के लिए इसकी आवश्यकता है जो कि तैयार नहीं किए जा सकते हैं।


1
यह एक डिस्क छवि है। जब तक कोई व्यक्ति अपने प्रोग्राम में फाइल सिस्टम रीडर्स को लिखने के लिए सभी कार्य (जो मुझे लगता है कि 7z किया था) गया है, तो डेटा पढ़ने के लिए लिनक्स कर्नेल फाइल सिस्टम मॉड्यूल का उपयोग करना सबसे आसान तरीका है। जिसका अर्थ है इसे बढ़ाना।
ज़ैन लिंक्स

जवाबों:


31

बस उपयोग करें 7z x

उदाहरण के लिए, उदात्त पाठ के मामले में, 7z x "Sublime Text 2.0.2.dmg"सभी फाइलों को निकालने के लिए पर्याप्त होगा।

अन्य मामलों में, उदाहरण के लिए JDK की तरह, आपको कुछ प्रकार के मैट्रीशोका से निपटना होगा।

$ 7z x jdk-8u51-macosx-x64.dmg
$ cd JDK 8 Update 51/
$ 7z x JDK 8 Update 51.pkg
$ 7z x Payload~

लेकिन आखिरकार आपको एक फोल्डर मिल जाएगा जिसमें वे फाइलें हैं जिनकी आप तलाश कर रहे हैं।


7z के साथ dmg फाइल्स को निकालने से एग्जीक्यूटेबल बिट्स की कमी महसूस होती है, जिससे DMGs डिसफंक्शनल से एक्सट्रैक्टेड ऐप्स बन जाते हैं। संबंधित हो सकते हैं: sourceforge.net/p/p7zip/bugs/113
मोतीन


1

मैक पर, यदि dmg एक निर्देशिका की छवि है जिसमें सभी फाइलें हैं, तो एक dmg के बजाय निर्देशिका का tgz बनाएं और इसे माइग्रेट करें।

#!/bin/bash
if [ -d "$1" ]; then  # $1 is the directory name
tar -cf "$1.tar" "$1" || exit  # First, create a tar-file
gzip -n -S .gz "$1.tar"  # Then ,gzip it to compress it.
mv "$1.tar.gz" "$1.tgz"  # Then rename it ti a .tgz
echo "Created $PWD/$1.tgz"
else echo "Not a directory"
fi
exit 0
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.