मेरे पास मैक के लिए इंस्टॉल मेकर द्वारा बनाई गई एक पीकेजी फ़ाइल है। मैं एक फ़ाइल को पीकेजी में बदलना चाहता हूं। लेकिन मुझे इसे लिनक्स सिस्टम के तहत करना होगा, क्योंकि यह डाउनलोड प्रक्रिया का हिस्सा है। जब उपयोगकर्ता फ़ाइल सर्वर डाउनलोड करना शुरू करता है तो उसे एक फ़ाइल को पीकेजी में बदलना चाहिए। मेरे पास एक समाधान है कि कैसे ppg unpack और फ़ाइल को प्रतिस्थापित करें, लेकिन मुझे नहीं पता कि pkg को फिर से पैक कैसे करें। http://emresaglam.com/blog/1035 http://ilostmynotes.blogspot.com/2012/06/mac-os-x-pkg-bom-files-package.htmlपीकेजी फ़ाइल को अनपैक और पैक कैसे करें?
उत्तर
संकुल सिर्फ एक अलग एक्सटेंशन और एक निर्दिष्ट फ़ाइल पदानुक्रम के साथ अभिलेखागार .xar कर रहे हैं। दुर्भाग्यवश, उस फ़ाइल पदानुक्रम का हिस्सा वास्तविक इंस्टॉलबेल का cpio.gz संग्रह है, और आमतौर पर यही वह है जिसे आप संपादित करना चाहते हैं। और वहां एक बोम फ़ाइल भी है जिसमें उस सीपीओ संग्रह के अंदर की फ़ाइलों और जानकारी पैकेज जानकारी फ़ाइल शामिल है जिसमें सारांश जानकारी शामिल है।
आप वास्तव में सिर्फ जानकारी फ़ाइलों में से एक संपादित करने की जरूरत है, तो इतना आसान है:
mkdir Foo
cd Foo
xar -xf ../Foo.pkg
# edit stuff
xar -cf ../Foo-new.pkg *
लेकिन अगर आप स्थापना योग्य फ़ाइलों को संपादित करने की जरूरत है: मेरा मानना है कि आप प्राप्त कर सकते हैं
mkdir Foo
cd Foo
xar -xf ../Foo.pkg
cd foo.pkg
cat Payload | gunzip -dc |cpio -i
# edit Foo.app/*
rm Payload
find ./Foo.app | cpio -o | gzip -c > Payload
mkbom Foo.app Bom # or edit Bom
# edit PackageInfo
rm -rf Foo.app
cd ..
xar -cf ../Foo-new.pkg
अधिकांश लिनक्स distros के लिए mkbom (और lsbom)। (यदि आप चीज प्राप्त कर सकते हैं, जो चीजों को और भी आसान बनाता है, लेकिन मुझे यकीन नहीं है कि यह लगभग सर्वव्यापी उपलब्ध है।)
हां। मैंने पहले इस विधि को आजमाया है (किसी भी फाइल को बदलने के बिना केवल अनपैक/पैक करें), लेकिन स्थापित करने के बाद यह पीकेजी कुछ भी खुश नहीं है। कंसोल में मुझे यह संदेश मिला: posix_spawn ("/ लाइब्रेरी/एप्लिकेशन सपोर्ट/प्रोजेक्ट 1/प्रोजेक्ट 1.एप/सामग्री/मैकोज़/प्रोजेक्ट 1", ...): ऐसी कोई फ़ाइल या निर्देशिका नहीं है। मैंने जांच की है कि पुरानी पेलोड फ़ाइल/./ Project1.app/... है और नए पेलोड में /Project1.app/... है। – dream2work
अच्छा, वह अंतिम भाग आसान है। मुझे नहीं पता कि इससे कोई फर्क पड़ता है, लेकिन ऐसा हो सकता है (शायद क्योंकि बोम और पेलोड मेल नहीं खाते?)। बस | cpio | gzip कमांड में Foo.app के बजाय ./Foo.app का उपयोग करें। मैं जवाब संपादित कर दूंगा। – abarnert
@ बार्नर्ट: 'बिल्ली पेलोड के बजाय | gunzip -dc | cpio -i' आप बस 'tar xzvf पेलोड' – ccpizza
@ बार्नर्ट ने जो कहा, उसके अलावा मुझे आज यह पता लगाना पड़ा कि डिफ़ॉल्ट cpio
उपयोगिता माउंटेन शेर पर प्रति डिफ़ॉल्ट एक अलग संग्रह प्रारूप का उपयोग करता है (सुनिश्चित नहीं है), यहां तक कि मैन पेज के साथ यह पुराने cpio/odc प्रारूप का उपयोग करेगा। तो, अगर किसी को भी cpio read error: bad file format
संदेश पर ठोकर उसकी/उसके चालाकी से पैकेज इंस्टॉल करने का प्रयास करते हुए, फिर से पैक चरण में प्रारूप शामिल करना न भूलें:
find ./Foo.app | cpio -o --format odc | gzip -c > Payload
abarnert से जवाब से प्रेरित होकर, मैं एक पार्टी बना स्क्रिप्ट जो MyPackage.pkg
नामक एक पैकेज को MyPackage_pkg
नामक सबफ़ोल्डर में अनपैक करेगा और फिर फ़ाइंडर में फ़ोल्डर खोलें। यदि आप खोजक चरण नहीं चाहते हैं तो अंतिम पंक्ति को निकालें।
#!/usr/bin/env bash
filename="$*"
dirname="${filename/\./_}"
pkgutil --expand "$filename" "$dirname"
cd "$dirname"
tar xvf Payload
open .
उपयोग:
pkg-upack.sh MyPackage.pkg
चेतावनी: यह सभी मामलों में काम नहीं करेगा, और कुछ फ़ाइलों, उदा असफल हो जायेगी ओएसएक्स सिस्टम इंस्टॉलर के अंदर पीकेजी। यदि आप सिर्फ पीकेजी फ़ाइल के अंदर देखना चाहते हैं और अंदर क्या देखते हैं, तो आप SuspiciousPackage (फ्री ऐप) आज़मा सकते हैं, और यदि आप विशिष्ट फाइलों को निकालने सहित कुछ गंभीर अनपॅकिंग करना चाहते हैं, तो Pacifist (nagware) पर एक नज़र डालें।
@shrx मैं का उपयोग कर "pbzx" कमांड द्वारा BSD.pkg (Yosemite संस्थापक का हिस्सा) को अनपैक करने के सफल रहा है।
आप यहाँ pbzx
की मेरी कांटा में देखना चाहते हो सकता है: https://github.com/NiklasRosenstein/pbzx
"pbzx" कमांड नीचे दिए गए लिंक से डाउनलोड किया जा सकता
यह आपको pbzx फ़ाइलों को स्ट्रीम करने की अनुमति देता है जो wra नहीं हैं एक एक्सएआर संग्रह में pped। मैंने हाल ही में एक्सकोड कमांड लाइन टूल्स डिस्क छवियों (जैसे 10.12 एक्सकोड 8) के साथ इसका अनुभव किया है।
pbzx -n Payload | cpio -i
- 1. रूबी का पैक और अनपैक
- 2. पैक/अनपैक फ़ंक्शन node.js
- 3. पैक और अनपैक 64 बिट पूर्णांक
- 4. xlsx को अनपैक कैसे करें?
- 5. जावास्क्रिप्ट फ़ाइल की सामग्री को अनपैक कैसे करें?
- 6. पैरामीटर पैक को कैसे विभाजित करें?
- 7. ctypes का उपयोग करके पैक और अनपैक कैसे करें (संरचना <-> str)
- 8. आर पैकेज: पीकेजी/आर और पीकेजी/src फ़ोल्डर्स
- 9. एनएसडीटा में संरचना कैसे पैक करें?
- 10. लाइब्रेरी (पीकेजी)
- 11. google क्रोम से संसाधन.pak को अनपैक कैसे करें?
- 12. एक निष्पादन योग्य फ़ाइल में पाइथन फ़ाइलों और इसकी निर्भरताओं को कैसे पैक करें?
- 13. रूबी स्ट्रिंग # अनपैक
- 14. कलाकृतियों को अनपैक करने और संसाधनों को फ़िल्टर करने के लिए कैसे?
- 15. एक हैकेल अस्तित्व प्रकार को अनपैक कैसे करें?
- 16. एडोब एयर का उपयोग करके .ZIP फ़ोल्डर को डाउनलोड और अनपैक कैसे करें?
- 17. कैसे htmlagility पैक
- 18. पायथन: चर के अज्ञात संख्या को अनपैक करें?
- 19. पायथन में एक सूची अनपैक करें?
- 20. पैरामीटर पैक की लंबाई कैसे प्राप्त करें?
- 21. मैक ऐप पीकेजी इंस्टॉलर्स में "इंस्टॉलेशन चेक विफलता" त्रुटि को डीबग कैसे करें?
- 22. जेट्टी: अनपैक .war विशिष्ट फ़ोल्डर
- 23. मेरी सभी जेएआर फाइलों को साइन और पैक करने के लिए चींटी कार्य कैसे करें?
- 24. एचटीएमएल चपलता पैक और Linq
- 25. डीएलएल के अंदर एक्सएमएल फाइलों को पैक करें, सी #
- 26. PHP अनपैक सरणी
- 27. पीकेजी-कॉन्फ़िगरेशन और ओएसएक्स 10.8, उचित PKG_CONFIG_PATH? गुम पीपीसी फाइलें?
- 28. अनपैक WIX बर्न बंडल
- 29. अनपैक हेक्स एन्कोड तैरता
- 30. सीएमके पीकेजी-कॉन्फ़िगर लाइब्रेरी लिंक पथ
(भविष्य आगंतुकों के लिए) http://gabrielrinaldi.me/how-to-install-jdk-7-on-yosemite-10-10/ आपको जानकारी दे सकता है –
MacOS xar कमांड के साथ आने के लिए प्रकट होता है । – MikeP