Instalação autônoma do arquivo pkg


14

Existe alguma possibilidade de criar uma instalação autônoma de um pacote pkg?

Por exemplo, criando um mpkg e executando um script que instalou o pacote via console e instalador.

Antecedentes: tive que implantar um pacote em muitos usuários finais osx. Não temos área de trabalho da Apple nem acesso root a essas máquinas. este é um pacote pkg pré-configurado, mas se o usuário o iniciar normalmente, a pré-configuração será substituída. No Windows, percebo isso com um arquivo auto-executável que lança um msi com instalação silenciosa. No linux, construo pacotes rpm / deb, mas no osx não encontrei nenhuma maneira adequada :(

Respostas:


17

Resposta curta: sim.

Resposta longa: Sim, mas… uma resposta completa a esta pergunta inclui uma resposta técnica e uma preocupação prática.

Primeiro, a resposta técnica

Você pode instalar um .pkg ou .mpkg usando esta sintaxe:

sudo installer -verboseR -pkg "/path/to/pkg/foo.mpkg"

Se o instalador não estiver 'assinado' corretamente, você precisará adicionar -allowUntrusted

sudo installer -allowUntrusted -verboseR -pkg "/path/to/pkg/foo.mpkg"

Você também pode precisar especificar onde deseja instalá-lo usando -target /(não tenho 100% de certeza de que isso é necessário , mas é uma boa ideia):

sudo installer -allowUntrusted -verboseR -pkg "/path/to/pkg/foo.mpkg" -target /

Agora, o problema é que sudovocê solicitará sua senha de administrador ao tentar executar installer. Se você deseja automatizar isso, informe o seu Mac para não exigir sua sudosenha ao executar o instalador. Para fazer isso, você pode adicionar esta linha ao seu /etc/sudoersarquivo:

%admin ALL=NOPASSWD: /usr/sbin/installer

Veja man visudopara instruções sobre como editar esse arquivo.

Segundo, a preocupação prática

Se você é a única pessoa que usa seu Mac, adicionar a linha acima a /etc/sudoersnão é grande coisa.

No entanto, se este for um Mac compartilhado, outras pessoas que estão no grupo 'admin' poderão executar /usr/sbin/installersem precisar solicitar sua senha.

Além disso, obviamente, se alguém entrar na sua conta de 'administrador', ele também poderia, teoricamente, causar danos /usr/sbin/installer. Embora eu não consiga pensar exatamente no que eles fariam, é uma troca de segurança versus conveniência.

Terceiro, um script do github

Eu escrevi o pkginstall.sh para fazer algumas coisas legais, como registrar o processo, além de informar se você deve reiniciar ou não após a instalação do pacote.

Por último, mas não menos importante: automatize "como?"

Na medida em que você deseja automatizar a instalação, isso depende de mais detalhes do que você está tentando fazer. Você pode, por exemplo, criar uma pasta como ~ / Action / AutoInstallPKG / e launchdsolicitar a instalação de arquivos .pkg ou .mpkg adicionados a essa pasta e depois movê-la para o lado.

Eu pretendo fazer algo assim há muito tempo e, finalmente, juntei tudo. Você pode encontrá-lo em https://github.com/tjluoma/autopkginstall . As instruções de instalação estão incluídas no Github, portanto não as repetirei aqui.


Thx, este é um grande passo em frente para mim, mas ainda não é a solução final. Eu tenho que implantar um pacote em muitos macs diferentes (portanto, sudoes não é uma opção), onde o usuário não tem permissão para alterar a configuração. Então, a melhor maneira (que funciona no Windows e Linux) é onde um arquivo no qual o usuário pode clicar e o resto será feito automaticamente. Mas vou verificar sua solução, possível em combinação com iceberg ou pacotes. Posso encontrar uma solução correspondente. Então, espero que este é ok se eu deixar essa questão em aberto mais alguns dias para que outros possam contribuir lá respostas para ...
megachip

3
Além disso, para referência futura, detalhes como esses seriam úteis para incluir em sua pergunta inicial. A resposta para um usuário final que procura automatizar instalações em seu sistema é completamente diferente para alguém que tenta distribuir para muitos Macs e muitos SOs. É improvável que você encontre uma maneira que funcione da mesma maneira no Windows e Linux e Mac OS X. Até empresas grandes como o Dropbox têm instaladores diferentes para cada sistema operacional.
TJ Luoma

Você está certo, desculpe por isso. Possível eu deveria adicionar isso à pergunta.
Megachip

Mais uma vez obrigado por todo o seu trabalho, resolvi minha pergunta [aqui] ( apple.stackexchange.com/questions/120026/… ). Sua instalação automática é uma coisa agradável, mas requer que eu tenha "instalado" em todos os clientes, o que não é possível. Parece que minha pergunta aqui não foi suficientemente concreta. Desculpe por isso
Megachip

2

Eu acho que você pode estar dançando muito perto da sua própria resposta. Você menciona que não possui o Remote Desktop da Apple. Eu recomendaria considerar o que você está tentando fazer. Uso-o como você está descrevendo o tempo todo - tenho um arquivo .pkg que precisa ser instalado em vários computadores na minha LAN, destaco os computadores nos quais quero instalar e digo à Área de Trabalho Remota para instalá-lo. Faz muito mais que isso, mas fará essas instalações remotas para você. É US $ 80 para uma licença com clientes ilimitados.

Se os US $ 80 são um ponto de discórdia - você pode olhar para munki , que é

"um conjunto de ferramentas que, usadas em conjunto com um repositório de pacotes e metadados de servidores da Web, podem ser usados ​​pelos administradores do OS X para gerenciar instalações de software (e em muitos casos remoções) em máquinas clientes do OS X".

Eu não o usei, mas tenho muito respeito pelas pessoas que o codificam e usam na vida real. É um pouco mais configurado e funciona do que a Área de Trabalho Remota - mas também possui muito mais opções.

Espero que você possa usar um desses dois programas para fazer o que procura.


Sim, mas até onde eu sei, você precisa de acesso root para usar a área de trabalho remota?
megachip

Você precisará de acesso de administrador para configurar a área de trabalho remota nas máquinas clientes. O ARD não permitirá que você apenas instale arquivos em qualquer Mac que você vê em uma rede. :)
evilblender

Esta possibilidade não é dada, desculpe.
Megachip

2

Finalmente, graças à solução dr.nixon da minha pergunta concreta , eu tenho que lidar com a criação de uma instalação autônoma, conforme descrito na pergunta via Platypus .

O usuário precisa iniciar o aplicativo, o resto será feito automaticamente.


O usuário pode colocá-lo nos itens de inicialização para que ele sempre inicie na inicialização.
AnneTheAgile 15/09
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.