Mam plik pkg utworzony przez Install Maker for Mac. Chcę zamienić jeden plik w pkg. Ale muszę to zrobić w systemie Linux, ponieważ jest to część procesu pobierania. Kiedy użytkownik zaczyna pobierać pliki, serwer musi zamienić jeden plik w pkg. Mam rozwiązanie, jak rozpakować pakiet i zamienić plik, ale nie wiem, jak ponownie spakować do pkg. http://emresaglam.com/blog/1035 http://ilostmynotes.blogspot.com/2012/06/mac-os-x-pkg-bom-files-package.html
99
Odpowiedzi:
Pakiety to po prostu archiwa .xar z innym rozszerzeniem i określoną hierarchią plików. Niestety, częścią tej hierarchii plików jest archiwum cpio.gz zawierające aktualne instalacje i zwykle to właśnie chcesz edytować. Jest też plik Bom zawierający informacje o plikach w tym archiwum cpio oraz plik PackageInfo, który zawiera informacje podsumowujące.
Jeśli naprawdę potrzebujesz tylko edytować jeden z plików informacyjnych, to proste:
Ale jeśli chcesz edytować pliki do zainstalowania:
Wierzę, że można uzyskać mkbom (i lsbom) dla większości dystrybucji Linuksa. (Jeśli możesz dostać ditto, to jeszcze bardziej ułatwi sprawę, ale nie jestem pewien, czy jest to prawie tak wszechobecne).
źródło
cat Payload | gunzip -dc |cpio -i
ciebie możesz po prostu użyćtar xzvf Payload
cat Payload | gunzip -dc |cpio -i
:gunzip: unknown compression format
;0 blocks
. Próbuję otworzyćBSD.pkg
z pakietu instalacyjnego OS X Yosemite.7z x <file>.pkg
i zadziałało.Oto skrypt bash zainspirowany odpowiedzią abarnerta, który rozpakuje pakiet o nazwie
MyPackage.pkg
do podfolderu o nazwie,MyPackage_pkg
a następnie otworzy folder w Finderze.#!/usr/bin/env bash filename="$*" dirname="${filename/\./_}" pkgutil --expand "$filename" "$dirname" cd "$dirname" tar xvf Payload open .
Stosowanie:
źródło
Oprócz tego, co powiedział @abarnert, musiałem dzisiaj dowiedzieć się, że domyślne
cpio
narzędzie w Mountain Lion domyślnie używa innego formatu archiwum (nie jestem pewien, który), nawet jeśli strona podręcznika mówi, że użyje starego formatu cpio / odc. Tak więc, jeśli ktoś natknie się nacpio read error: bad file format
wiadomość podczas próby zainstalowania swoich zmanipulowanych pakietów, pamiętaj, aby uwzględnić format w kroku ponownego pakowania:źródło
@shrx Udało mi się rozpakować BSD.pkg (część instalatora Yosemite) za pomocą polecenia „pbzx”.
pbzx <pkg> | cpio -idmu
Polecenie „pbzx” można pobrać z następującego łącza:
źródło
Możesz zajrzeć do mojego rozwidlenia
pbzx
tutaj: https://github.com/NiklasRosenstein/pbzxPozwala na przesyłanie strumieniowe plików pbzx, które nie są opakowane w archiwum XAR. Doświadczyłem tego z ostatnimi obrazami dysków z narzędziami wiersza poleceń XCode (np. 10.12 XCode 8).
źródło