O que o apt-get install ...
comando faz?
Quando eu insiro o apt-get install ...
comando, alguns textos aparecem na tela, mas isso não tem informações suficientes para mim. Quero saber se algum arquivo é criado / editado, qualquer serviço é iniciado e outras atividades ...
Existe algum .sh
arquivo executado quando a apt-get install ...
execução? Se sim, como posso ver o conteúdo desse sh
arquivo?
O motivo desta pergunta é que recentemente tentei instalar o tomcat7 apt-get install tomcat7
. Tudo funciona bem até eu instalar tomcat7-admin
(aplicativo Web do gerente), o servidor não responde a nenhuma solicitação. Eu tentei isso muitas vezes, e isso sempre acontece.
apt
software-installation
TrungDQ
fonte
fonte
apt-get
está sendo substituído porapt
. A substituição ainda não está completa, mas trabalha parainstall
,upgrade
edist-upgrade
entre outros.Respostas:
Principalmente,
apt-get
faz o seguinte:dpkg
para instalá-lo.dpkg
vai:preinst
,postinst
(eprerm
,postrm
antes que estes, se um pacote está sendo atualizado)Você pode estar interessado nos scripts do mantenedor, que geralmente estão localizados em
/var/lib/dpkg/info/<package-name>.{pre,post}{rm,inst}
. Estes são geralmente scripts shell, mas não há regra rígida. Por exemplo:fonte
Em resumo :
apt-get install
faz tudo o que é necessário para que seu sistema possa executar com êxito o novo aplicativo de software instalado.Mais longo:
Preliminares:
Na página de manual :
Esses pacotes são armazenados em um repositório na rede. Portanto,
apt-get
baixa todos os necessários em um diretório temporário (/var/cache/apt/archives/
). Eles serão baixados de um servidor Web ou FTP. Eles são especificados no chamadosources.list
; uma lista de repositórios. A partir de então, eles são instalados um a um processualmente.Os primeiros são os que não têm mais dependências; portanto, nenhum outro pacote precisa ser instalado para eles. Com isso, outros pacotes (que tinham dependências anteriormente) agora não têm mais dependências. O sistema continua repetindo esse processo até que os pacotes especificados sejam instalados.
Cada pacote passa por um procedimento de instalação.
Instalação do pacote:
Nas distribuições Linux baseadas no Debian, como o Ubuntu, esses pacotes estão em um formato padronizado especificado chamado: deb - O formato de pacote binário do Debian .
Esse pacote contém os arquivos a serem instalados no sistema. Também eles contêm um arquivo de controle . Esse arquivo contém scripts que o sistema de empacotamento deve executar em uma situação específica; os chamados scripts de manutenção . Esses scripts são divididos em:
preinst
: antes da instalação dos arquivos na hierarquia de arquivos do sistemapostinst
: após a instalaçãoprerm
: antes da desinstalaçãopostrm
: após a desinstalaçãoHá uma imagem interessante, mostrando o procedimento de instalação de um novo pacote:
Também há mais arquivos de controle, os mais importantes são os seguintes:
control
: Uma lista das dependências e outras informações úteis para identificar o pacoteconffiles
: Uma lista de arquivos de configuração (geralmente aqueles em/etc
)debian-binary
: contém a versão do pacote deb, atualmente 2.0md5sums
: Uma lista de md5sums de cada arquivo no pacote para verificaçãotemplates
: Um arquivo com descrições de erro e diálogos durante a instalaçãofonte
Para o real sob o capô material, você precisa pegar a fonte Apt. Bastante simples se você tiver repositórios de origem ativados:
O
apt-get
comando em si vivecmdline/apt-get.cc
. É uma dor de ler, mas a maioria dasapt-get
ações é explicada extensivamente por lá. A instalação, no entanto, é mapeada através de umaDoInstall
função que resideapt-private/private-install.{cc,h}
.Você deve se lembrar que o apt-get é apenas um lado da moeda.
dpkg
está lidando com a instalação real, masDoInstall
não sabedpkg
diretamente.apt-get
é realmente surpreendentemente independente de gerenciador de pacotes. Toda a funcionalidade é abstraída através deapt-pkg/package-manager.cc
Estou apenas olhando brevemente, mas mesmo lá não consigo ver onde isso realmente se liga aos
dpkg
sistemas. Parte disso parece ter sido configurada automaticamente,apt-pkg/aptconfiguration.cc
mas esse é um poço profundo. Você pode passar dias descobrindo isso.A documentação de origem é boa. Você pode fazer coisas piores do que analisar cada arquivo e ler o cabeçalho para descobrir o que realmente está acontecendo.
fonte
Existem algumas respostas fantásticas aqui que são melhores que essa curta, mas algo que você pode considerar para ajudá-lo a entender melhor as alterações feitas por um gerenciador de pacotes é o Docker . Você pode diferenciar as alterações feitas em um contêiner usando
docker diff <container>
e ele mostrará todas as alterações. Isso é especialmente útil para dar uma olhada por baixo do capô para ver o queapt-get install
faz com um sistema. Uma pesquisa rápida fornece vários recursos para ajudar a implementar isso.fonte