"Apt" installa le raccomandazioni per i pacchetti figlio?

Aug 24 2020

Ad esempio, il pacchetto hollywoodha dipendenza byobue pacchetto consigliato atop, mentre atopha rec. crone byobu, risp. - less. Entrambi crone lessverranno installati insieme a hollywooddipende 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

2 StephenKitt Aug 24 2020 at 14:15

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 hollywoodesempio, run-oneverrà 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 aptoperazioni: installovviamente, 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 .

1 Stewart Aug 24 2020 at 01:20

Sul mio sistema ce l'ho già less, quindi pensiamoci run-oneinvece.

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 aptfaccia quanto segue:

  • byobu(dep) è installato, ma il suo pacchetto consigliato run-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 cronnon è una dipendenza di uno degli altri pacchetti che sarebbero stati installati.