"Apt" installa le raccomandazioni per i pacchetti figlio?
Ad esempio, il pacchetto hollywood
ha dipendenza byobu
e pacchetto consigliato atop
, mentre atop
ha rec. cron
e byobu
, risp. - less
. Entrambi cron
e less
verranno installati insieme a hollywood
dipende e consiglia?
hollywood
|- [dep] byobu
| |- [rec] less
|
|- [rec] atop
| |- [rec] cron
$ sudo apt install -o APT::Install-Recommends="true" hollywood
$ cat /etc/apt/apt.conf
(...)
APT::Install-Recommends "false";
Risposte
La regola generale è che, se Install-Recommends
è abilitato, i consigli dei pacchetti appena installati vengono presi in considerazione per l'installazione e ciò si applica in modo transitorio: un pacchetto appena installato selezionato a causa di una raccomandazione avrà i propri consigli presi in considerazione per l'installazione.
Altre considerazioni potrebbero tuttavia impedire l'installazione di una raccomandazione e, poiché è solo una raccomandazione, questo non sarà considerato un errore fatale. Nel hollywood
esempio, run-one
verrà presa in considerazione per l'installazione, ma su Debian non verrà installato perché il pacchetto non è disponibile (si tratta di un pacchetto di Ubuntu). Allo stesso modo, se un pacchetto consigliato è in conflitto con un pacchetto già installato, non verrà installato. Eventuali ulteriori dipendenze o raccomandazioni di un tale pacchetto non verranno prese in considerazione.
Tutto questo vale durante tutte le apt
operazioni: install
ovviamente, ma anche upgrade
. Se l'aggiornamento di un pacchetto introduce una nuova dipendenza che non è già installata, quel pacchetto verrà installato e verrà applicata la gestione dei pacchetti appena installati descritta sopra. D'altra parte, gli aggiornamenti dei pacchetti che introducono nuovi consigli non daranno luogo a installazioni aggiuntive, poiché i consigli non sono definiti sui pacchetti appena installati .
Sul mio sistema ce l'ho già less
, quindi pensiamoci run-one
invece.
hollywood
|- [dep] byobu
| |- [rec] run-one
|
|- [rec] atop
| |- [rec] cron
Quindi, quando provo a installare (rimossi pacchetti non interessanti dal testo):
$ sudo apt install -o APT::Install-Recommends="true" hollywood
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
atop byobu cron
Recommended packages:
run-one
The following NEW packages will be installed:
atop byobu cron hollywood
Sembra che apt
faccia quanto segue:
byobu
(dep) è installato, ma il suo pacchetto consigliatorun-one
è ancora solo consigliato.atop
(rec) è installato e il suo pacchetto consigliato:cron | cron-daemon
è installato.
Per generalizzare, ciò che abbiamo appena osservato utilizzando questa opzione è:
- Le raccomandazioni del pacchetto vengono installate
- I consigli sulle dipendenze del pacchetto non vengono installati.
- Vengono installate le raccomandazioni delle raccomandazioni del pacchetto.
Mi ha sorpreso il fatto che sarebbe stata installata una raccomandazione di una raccomandazione. Ho confermato che cron
non è una dipendenza di uno degli altri pacchetti che sarebbero stati installati.