O que o script de instalação faz no apt-get install?

14

Parece apt-get install irá baixar um pacote Debian e tentar executar o script de instalação para:

  • Criar diretório adequado
  • Crie uma conta adequada
  • Copiar arquivos binários
  • Copiar arquivos de dados
  • Copiar arquivos Conf
  • Copie o script init.d
  • Começar serviço
  • etc.

Estou realmente interessado nisso e quero descobrir o que está acontecendo passo a passo. Existe alguma maneira de ver isso? Como comandos de shell de impressão no modo "execução a seco"?

ShenLei
fonte

Respostas:

25

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.

Versão mais longa:

Preliminares:

Na página de manual :

Todos os pacotes exigidos pelos pacotes especificados para instalação também serão recuperados e instalados.

Esses pacotes são armazenados em um repositório na rede (internet). Portanto, apt-getbaixa todos os pacotes 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 chamado sources.list; uma lista de repositórios para o gerenciador de pacotes apt. A partir de então, eles são instalados um a um processualmente.

Os primeiros a serem instalados são os que não têm mais dependências; portanto, nenhum outro pacote precisa ser instalado para que funcionem corretamente. 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.

Procedimento de instalação do pacote:

Nas distribuições Linux baseadas no Debian, como Ubuntu ou Mint, 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 sistema
  • postinst: após a instalação
  • prerm: antes da desinstalação
  • postrm: após a desinstalação

Esses scripts são o local em que usuários específicos são criados ou alguns serviços que precisam ser reiniciados ou outras preliminares necessárias para o pacote funcionar.

Além desses scripts, o sistema de pacotes possui gatilhos destinados a eventos específicos. Por exemplo, a regeneração de initrds ao instalar uma nova versão do kernel ou ldconfig ou o man-db. Eles são ativados por um ou mais pacotes e executados no final de todo o processo de instalação.

Há uma imagem interessante, mostrando o procedimento de instalação de um novo pacote:

instalação

Há também mais arquivos de controle, os mais importantes são os seguintes:

Se você estiver interessado, pode descompactar um pacote deb (após o download) manualmente e ver o que está dentro:

# to only download the package (no installation)
apt-get download package
# to unpack the deb file
ar x package.deb

Agora você vê um arquivo chamado data.tar.gzcontendo os arquivos e um arquivo chamado control.tar.gzcontendo os quatro scripts de mantenedor e os arquivos de controle mencionados acima.

caos
fonte
Hoje em dia eu acredito que será melhor usar ao dpkg-deb -x package.debinvés de ar x package.deb, já que dpkgé o gerenciador oficial de pacotes deb (sobre o qual o apt-get é usado).
Fanatique 28/05/19