Saya memiliki file pkg yang dibuat oleh Install Maker untuk Mac. Saya ingin mengganti satu file dalam pkg. Tetapi saya harus melakukan ini di sistem Linux, karena ini adalah bagian dari proses pengunduhan. Ketika pengguna mulai mengunduh file server harus mengganti satu file dalam pkg. Saya punya solusi bagaimana membongkar pkg dan mengganti file tetapi saya tidak tahu bagaimana mengemas lagi ke pkg. http://emresaglam.com/blog/1035 http://ilostmynotes.blogspot.com/2012/06/mac-os-x-pkg-bom-files-package.html
99
Jawaban:
Paket hanyalah arsip .xar dengan ekstensi berbeda dan hierarki file yang ditentukan. Sayangnya, bagian dari hierarki file itu adalah arsip cpio.gz dari instalasi yang sebenarnya, dan biasanya itulah yang ingin Anda edit. Dan ada juga file Bom yang menyertakan informasi tentang file di dalam arsip cpio itu, dan file PackageInfo yang menyertakan informasi ringkasan.
Jika Anda benar-benar hanya perlu mengedit salah satu file info, itu sederhana:
Tetapi jika Anda perlu mengedit file yang dapat diinstal:
Saya yakin Anda bisa mendapatkan mkbom (dan lsbom) untuk kebanyakan distro linux. (Jika Anda bisa mendapatkan ditto, itu membuat segalanya lebih mudah, tetapi saya tidak yakin apakah itu hampir tersedia di mana-mana.)
sumber
cat Payload | gunzip -dc |cpio -i
Anda cukup menggunakantar xzvf Payload
cat Payload | gunzip -dc |cpio -i
:gunzip: unknown compression format
;0 blocks
. Saya mencoba membukaBSD.pkg
dari paket instalasi OS X Yosemite.7z x <file>.pkg
dan berhasil.Berikut adalah skrip bash yang terinspirasi oleh jawaban abarnert yang akan mengekstrak paket bernama
MyPackage.pkg
ke dalam subfolder bernamaMyPackage_pkg
dan kemudian membuka folder di Finder.Pemakaian:
sumber
Selain apa yang dikatakan @abarnert, saya hari ini harus mengetahui bahwa
cpio
utilitas default di Mountain Lion menggunakan format arsip yang berbeda per default (tidak yakin yang mana), bahkan dengan halaman manual yang menyatakan akan menggunakan format cpio / odc lama. Jadi, jika ada yang menemukancpio read error: bad file format
pesan tersebut saat mencoba menginstal paket yang dimanipulasi, pastikan untuk menyertakan formatnya dalam langkah pengemasan ulang:sumber
@shrx Saya telah berhasil membongkar BSD.pkg (bagian dari penginstal Yosemite) dengan menggunakan perintah "pbzx".
pbzx <pkg> | cpio -idmu
Perintah "pbzx" dapat diunduh dari tautan berikut:
sumber
Anda mungkin ingin melihat pertigaan saya di
pbzx
sini: https://github.com/NiklasRosenstein/pbzxIni memungkinkan Anda untuk melakukan streaming file pbzx yang tidak dibungkus dalam arsip XAR. Saya telah mengalami ini dengan Gambar Disk Alat Baris Perintah XCode baru-baru ini (mis. 10.12 XCode 8).
sumber