Eu tenho um arquivo pkg criado pelo Install Maker para Mac. Quero substituir um arquivo no pacote. Mas devo fazer isso no sistema Linux, porque isso faz parte do processo de download. Quando o usuário começa a baixar o arquivo, o servidor deve substituir um arquivo no pacote. Eu tenho uma solução como descompactar pkg e substituir um arquivo, mas não sei como empacotar novamente para pkg. http://emresaglam.com/blog/1035 http://ilostmynotes.blogspot.com/2012/06/mac-os-x-pkg-bom-files-package.html
99
Respostas:
Os pacotes são apenas arquivos .xar com uma extensão diferente e uma hierarquia de arquivo especificada. Infelizmente, parte dessa hierarquia de arquivos é um arquivo cpio.gz dos instaláveis reais e geralmente é isso que você deseja editar. E também há um arquivo Bom que inclui informações sobre os arquivos dentro desse arquivo cpio e um arquivo PackageInfo que inclui informações resumidas.
Se você realmente precisa apenas editar um dos arquivos de informação, é simples:
Mas se você precisar editar os arquivos instaláveis:
Eu acredito que você pode obter mkbom (e lsbom) para a maioria das distros Linux. (Se você conseguir o mesmo, isso torna as coisas ainda mais fáceis, mas não tenho certeza se isso está quase onipresente.)
fonte
cat Payload | gunzip -dc |cpio -i
você simplesmente pode usartar xzvf Payload
cat Payload | gunzip -dc |cpio -i
:gunzip: unknown compression format
;0 blocks
. Estou tentando abrir aBSD.pkg
partir do pacote de instalação do OS X Yosemite.7z x <file>.pkg
e funcionou.Aqui está um script bash inspirado na resposta de abarnert que descompactará um pacote nomeado
MyPackage.pkg
em uma subpasta chamadaMyPackage_pkg
e então abrirá a pasta no Finder.Uso:
fonte
Além do que @abarnert disse, hoje tive que descobrir que o
cpio
utilitário padrão no Mountain Lion usa um formato de arquivo diferente por padrão (não tenho certeza de qual), mesmo com a página de manual informando que ele usaria o antigo formato cpio / odc. Portanto, se alguém se deparar com acpio read error: bad file format
mensagem ao tentar instalar seus pacotes manipulados, certifique-se de incluir o formato na etapa de reembalagem:fonte
@shrx Consegui descompactar o BSD.pkg (parte do instalador Yosemite) usando o comando "pbzx".
pbzx <pkg> | cpio -idmu
O comando "pbzx" pode ser baixado do seguinte link:
fonte
Você pode querer dar uma olhada em meu garfo
pbzx
aqui: https://github.com/NiklasRosenstein/pbzxEle permite que você transmita arquivos pbzx que não estão agrupados em um arquivo XAR. Eu experimentei isso com imagens de disco de ferramentas de linha de comando XCode recentes (por exemplo, XCode 8 de 10.12).
fonte