Cosa fa lo script di installazione in apt-get install?


14

Sembra apt-get installscaricare un pacchetto Debian e provare a eseguire lo script di installazione per:

  • Crea la directory corretta
  • Crea un account corretto
  • Copia i file binari
  • Copia i file di dati
  • Copia i file Conf
  • Copia lo script init.d
  • Avvia il servizio
  • eccetera.

Sono davvero interessato e voglio capire cosa sta succedendo passo dopo passo. C'è un modo per vederlo? Come i comandi di shell di stampa in modalità "dry run"?

Risposte:


25

In breve : apt-get installfa tutto ciò che è necessario affinché il sistema possa eseguire correttamente la nuova applicazione software installata.

Versione più lunga:

Preliminari:

Dalla manpage :

Tutti i pacchetti richiesti dai pacchetti specificati per l'installazione verranno anche recuperati e installati.

Tali pacchetti sono archiviati in un repository nella rete (internet). Quindi, apt-getscarica tutti i pacchetti necessari in una directory temporanea ( /var/cache/apt/archives/). Verranno scaricati da un server Web o ftp. Sono specificati nel cosiddetto sources.list; un elenco di repository per il gestore pacchetti apt. Da quel momento in poi, vengono installati uno per uno in modo procedurale.

I primi da installare sono quelli che non hanno ulteriori dipendenze; quindi nessun altro pacchetto deve essere installato per funzionare correttamente. In questo modo, altri pacchetti (che in precedenza avevano dipendenze) non hanno più dipendenze. Il sistema continua a ripetere questo processo fino a quando non vengono installati i pacchetti specificati.

Ogni pacchetto viene sottoposto a una procedura di installazione.

Procedura di installazione del pacchetto:

Nelle distribuzioni Linux basate su Debian, come Ubuntu o Mint, quei pacchetti sono in un formato standardizzato specificato chiamato: deb -> Il formato del pacchetto binario Debian .

Tale pacchetto contiene i file da installare sul sistema. Inoltre contengono un file di controllo . Tale file contiene script che il sistema di packaging dovrebbe eseguire in una situazione specifica; i cosiddetti script del manutentore . Tali script sono suddivisi in:

  • preinst: prima dell'installazione dei file nella gerarchia dei file di sistema
  • postinst: dopo l'installazione
  • prerm: prima della disinstallazione
  • postrm: dopo la disinstallazione

Tali script sono il luogo in cui vengono creati utenti specifici o alcuni servizi che devono essere riavviati o altri preliminari necessari per il funzionamento del pacchetto.

Oltre a questi script, il sistema di pacchetti ha trigger che sono destinati a eventi specifici. Ad esempio, la rigenerazione di initrd durante l'installazione di una nuova versione del kernel o ldconfig o man-db. Sono attivati ​​da uno o più pacchetti ed eseguiti al termine dell'intero processo di installazione.

C'è un'immagine interessante, che mostra la procedura di installazione di un nuovo pacchetto:

installazione

Esistono anche più file di controllo, i più importanti sono i seguenti:

Se sei interessato, puoi decomprimere un pacchetto deb (dopo il download) manualmente e guardare cosa c'è dentro:

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

Ora vedi un file chiamato data.tar.gzcontenente i file e un file chiamato control.tar.gzcontenente i quattro script del manutentore e i file di controllo sopra menzionati.


Oggi credo che sarà meglio usare dpkg-deb -x package.debinvece di ar x package.deb, poiché dpkgè il gestore di pacchetti deb ufficiale (su cui viene usato apt-get).
Fanatique,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.