User Tools

Site Tools


doc:appunti:linux:sa:gestione_pacchetti

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
doc:appunti:linux:sa:gestione_pacchetti [2020/10/21 17:06] – [Yum] niccolodoc:appunti:linux:sa:gestione_pacchetti [2025/06/25 11:32] (current) niccolo
Line 38: Line 38:
  
 ===== Informazioni su un pacchetto da installare, comprese le dipendenze ===== ===== Informazioni su un pacchetto da installare, comprese le dipendenze =====
 +
 <code> <code>
 rpm -qpi archive.rpm rpm -qpi archive.rpm
Line 44: Line 45:
 </code> </code>
  
 +===== Quali dipendenze ha un pacchetto =====
 +
 +Elenca i pacchetti richiesti, cioè le dipendenze, di un pacchetto già installato:
 +
 +<code>
 +rpm -qR package
 +</code>
 ===== Lista concisa di tutti i pacchetti installati ===== ===== Lista concisa di tutti i pacchetti installati =====
 <code> <code>
Line 90: Line 98:
  
 ====== Uso di apt e dpkg in Debian GNU/Linux ====== ====== Uso di apt e dpkg in Debian GNU/Linux ======
 +
 +Nelle moderne distribuzioni Debian (a partire da **Debian 8**) esistono i comandi **apt-get** e **apt** per interagire con il gestore di pacchetti **APT** (Advanced Package Tool). Il secondo è più moderno, include le funzionalità di **apt-get** e **apt-cache**, più alcune funzionalità esclusive. Quindi conviene aggiornarsi a questa nuova sintassi.
 +
  
 Aggiorna la lista del software disponibile alla sorgente. Le fonti sono indicate in ''**/etc/apt/sources.list**''. Aggiorna la lista del software disponibile alla sorgente. Le fonti sono indicate in ''**/etc/apt/sources.list**''.
 +
 <code> <code>
-apt-get update+atp update
 </code> </code>
  
 Tenta di aggiornare automaticamente e gentilmente il sistema. Non installa ne' rimuove pacchetti. Tenta di aggiornare automaticamente e gentilmente il sistema. Non installa ne' rimuove pacchetti.
 <code> <code>
-apt-get upgrade+apt upgrade 
 +</code> 
 + 
 +Aggiorna i pacchetti anche per l'eventuale passaggio ad una nuova release Debain. Eventualmente rimuove pacchetti non più necessari o che impediscono l'aggiornamento: 
 + 
 +<code> 
 +apt full-upgrade
 </code> </code>
  
-Tenta di aggiornare da una release all'altra. Per fare questo aggiorna, installa o rimuove pacchetti. 
 <code> <code>
 apt-get dist-upgrade apt-get dist-upgrade
Line 115: Line 132:
 dpkg --get-selections > lista dpkg --get-selections > lista
 dpkg --set-selections < lista dpkg --set-selections < lista
 +</code>
 +
 +Elenco dei pacchetti aggiornabili:
 +
 +<code>
 +apt list --upgradable
 </code> </code>
  
Line 123: Line 146:
 <code> <code>
 apt-cache policy <pkgname> apt-cache policy <pkgname>
 +</code>
 +
 +====== Pulire lo stato dei pacchetti ======
 +
 +Quando una installazione ha subito diversi aggiornamenti, alcuni pacchetti potrebbro trovarsi in condizioni non ottimali, segnalati durante le varie operazioni di **apt** oppure **dpkg**. 
 +
 +  * **The following packages have been kept back** - Questa situazione si può creare durante l'upgrade da una versione all'altra (anche point-release?).
 +  * **The following packages were automatically installed and are no longer required** - Questa situazione deriva dall'aver rimosso un pacchetto, ma sono rimasti installati dei pacchetti che erano richiesti come dipendenza.
 +  * **deinstall** - I pacchetti in questo stato sono evidenziati con il comando **%%dpkg --get-selections%%**.
 +
 +Con questo script si dovrebbero risolvere automaticamente tutte le situazioni indicate sopra:
 +
 +<code bash>
 +# Sistema "The following packages have been kept back"
 +apt-get --assume-yes dist-upgrade
 +# Sistema "The following packages were automatically installed and are no longer required"
 +apt -y autoremove
 +# Rimuovere i pacchetti in stato diverso da "install":
 +dpkg --get-selections | egrep -v '\binstall\b' | awk '{print $1}' | xargs dpkg --purge
 </code> </code>
  
Line 190: Line 232:
 </code> </code>
  
-Per sapere **da quale repository** è arrivato un pacchetto:+Per vedere quali **repository attivi** ci sono in **yum**: 
 + 
 +<code> 
 +yum repolist enabled 
 +</code> 
 + 
 +Per sapere **da quale repository** è arrivato un pacchetto si usa il comando **repoquery** fornito dal pacchetto **yum-utils**:
  
 <code> <code>
 repoquery -i php55w-common repoquery -i php55w-common
 +</code>
 +
 +Per **scaricare un pacchetto senza installarlo** si usa il comando **yumdownloader** fornito dal pacchetto **yum-utils**:
 +
 +<code>
 +yumdownloader php55w-common
 </code> </code>
 ====== Signature dei pacchetti rpm ====== ====== Signature dei pacchetti rpm ======
doc/appunti/linux/sa/gestione_pacchetti.1603292783.txt.gz · Last modified: by niccolo