Como parte do meu arquivo .deb personalizado (interno) que será implantado nos dispositivos Ubuntu 12.04, preciso adicionar vários repositórios PPA, executar o apt-get update e instalar pacotes desses PPAs.
Isso pode ser feito nos scripts .preinst ou .postinst no meu arquivo .deb?
Suponho que quando o meu arquivo .deb está instalado ( sudo dpkg -i testing.deb
) que alguns bloqueios ou mecanismos existem provável que me impediria de chamar certos comandos, como add-apt-repository
, apt-get update
, e apt-get install
.
Será esta uma suposição correta?
apt
dpkg
deb
add-apt-repository
Stéphane
fonte
fonte
Respostas:
Você está certo. Os scripts do mantenedor não devem fazer alterações nos estados apt ou dpkg, exceto as alterações que serão feitas ao instalar o pacote de qualquer maneira.
Instalar um arquivo
/etc/apt/sources.list.d
, no entanto, é bom. A maioria dos pacotes que cumprem uma função como "instalar este pacote para adicionar o repositório APT X ao seu sistema" simplesmente faz isso (em vez de chamaradd-apt-repository
). Também é comum soltar a chave pública GPG usada para assinar o repositório/etc/apt/trusted.gpg.d
.Se você deseja simplificar o usuário para executar as etapas adicionais de instalação do seu software, você pode apenas enviar um script que faça o trabalho e dizer ao usuário para executar o script manualmente.
Mas se você realmente quer ligar
apt-get update
ouapt-get install
etc automaticamente, e não se importa que o seu pacote seja totalmente inaceitável no Debian ou no Ubuntu, e seus usuários estão bem com o pacote agindo dessa maneira, então você pode colocar algo em/etc/cron.d
que verifique se há bloqueios existentes no apt ou no dpkg e, se não houver nenhum, realiza suas etapas adicionais de instalação e organiza as etapas para que não sejam executadas novamente. Eu não recomendo essa abordagem.fonte