Descubra o que 'apt-get install' fez

6

Como posso descobrir quais comandos um pacote executou para instalar o software com apt-get install <package> ?

Por exemplo, se eu instalar um pacote que crie um usuário, como posso descobrir como ele criou esse usuário?

    
por Grasshopper 30.07.2014 / 15:36

2 respostas

5

Você vê o script de pós-instalação, que é executado pelo dpkg. Você pode encontrá-los em /var/lib/dpkg/info . Esses scripts contêm o nome do pacote binário em questão e têm o sufixo .postinst .

Observe que também há scripts de pré-instalação, que têm o sufixo .preinst , mas acho que é muito mais provável que um pacote crie um novo usuário em um script postinst .

Você teve um exemplo específico em mente?

Um exemplo é o postgresql-common, que cria o usuário postgres . Aqui está um extrato do arquivo /var/lib/dpkg/info/postgresql-common.postinst .

   # Make sure the administrative user exists
    if ! getent passwd postgres > /dev/null; then
        adduser --system --quiet --home /var/lib/postgresql --no-create-home \
            --shell /bin/bash --group --gecos "PostgreSQL administrator" postgres
    fi
    
por 30.07.2014 / 15:43
2

O que o apt-get install faz está executando dpkg -i nos pacotes.

Para descobrir o que um pacote faz durante a instalação, você precisa descompactá-lo. Procure em /var/cache/apt/archives/ se o seu pacote ainda estiver lá.

Dentro do pacote há um arquivo de dados ( data.tar.gz ) e um arquivo de controle ( control.tar.gz ). Dentro do arquivo de controle existe um script para executar após a instalação ( postint ) e outro para executar após a exclusão do pacote ( postrm ). Abra esses scripts em um editor e veja o que o processo de instalação faz.

Para descompactar o pacote:

ar x package.deb

Para descompactar o arquivo de controle (após descompactar o pacote):

tar xfz control.tar.gz
    
por 30.07.2014 / 15:46