GNU/Linux >> Linux Esercitazione >  >> Linux

Introduzione ai comandi di Pacman nelle distribuzioni Linux basate su Arch

Breve:questa guida per principianti ti mostra cosa puoi fare con pacmancommands in Linux, come usarli per trovare nuovi pacchetti, installare e aggiornare nuovi pacchetti e pulire il tuo sistema.

Il gestore di pacchetti pacman è una delle principali differenze tra Arch Linux e altre importanti distribuzioni come Red Hat e Ubuntu/Debian. Combina un semplice formato di pacchetto binario con un sistema di compilazione facile da usare. Lo scopo di pacman è gestire facilmente i pacchetti, sia dai repository ufficiali che dalle build dell'utente.

Se hai mai usato distribuzioni basate su Ubuntu o Debian, potresti aver usato i comandi apt-get o apt. Pacman è l'equivalente in Arch Linux. Se hai appena installato Arch Linux, una delle prime cose da fare dopo aver installato Arch Linux è imparare a usare i comandi pacman.

In questa guida per principianti, spiegherò alcuni degli utilizzi essenziali del comando pacmand che dovresti conoscere per gestire il tuo sistema basato su Arch.

Comandi essenziali di pacman che gli utenti di Arch Linux dovrebbero conoscere

Come altri gestori di pacchetti, pacman può sincronizzare gli elenchi dei pacchetti con i repository software per consentire all'utente di scaricare e installare i pacchetti con un semplice comando risolvendo tutte le dipendenze richieste.

Installa i pacchetti con pacman

Puoi installare un singolo pacchetto o più pacchetti usando il comando pacman in questo modo:

pacman -S _package_name1_ _package_name2_ ...

La -S sta per sincronizzazione. Significa che pacman si sincronizza prima

Il database pacman classifica i pacchetti installati in due gruppi in base al motivo per cui sono stati installati:

  • installato esplicitamente :i pacchetti che sono stati installati da un comando pacman -S o -U generico
  • dipendenze :i pacchetti che sono stati installati in modo implicito perché richiesti da un altro pacchetto che è stato installato in modo esplicito.

Rimuovi un pacchetto installato

Per rimuovere un singolo pacchetto, lasciando tutte le sue dipendenze installate:

pacman -R package_name_

Per rimuovere un pacchetto e le sue dipendenze che non sono richieste da nessun altro pacchetto installato:

pacman -Rs _package_name_

Per rimuovere le dipendenze che non sono più necessarie. Ad esempio, il pacchetto che necessitava delle dipendenze è stato rimosso.

pacman -Qdtq | pacman -Rs -

Aggiornamento dei pacchetti

Pacman fornisce un modo semplice per aggiornare Arch Linux. Puoi aggiornare tutti i pacchetti installati con un solo comando. L'operazione potrebbe richiedere del tempo a seconda dell'aggiornamento del sistema.

Il comando seguente sincronizza i database del repository e aggiorna i pacchetti del sistema, esclusi i pacchetti "locali" che non sono nei repository configurati:

pacman -Syu
  • S sta per sincronizzazione
  • y è per l'aggiornamento (cache locale)
  • u è per l'aggiornamento del sistema

Fondamentalmente sta dicendo che sincronizzare con il repository centrale (database del pacchetto principale), aggiornare la copia locale del database del pacchetto principale e quindi eseguire l'aggiornamento del sistema (aggiornando tutti i pacchetti che hanno una versione più recente disponibile).

Attenzione!

Se sei un utente Arch Linux prima di eseguire l'aggiornamento, si consiglia di visitare la home page di Arch Linux per controllare le ultime notizie per aggiornamenti fuori dall'ordinario. Se è necessario un intervento manuale, verrà pubblicato un apposito post di notizie. In alternativa puoi iscriverti al feed RSS o alla mailing list Arch-Announce.

Ricorda inoltre di controllare il forum appropriato prima di aggiornare il software fondamentale (come kernel, xorg, systemd o glibc), per eventuali problemi segnalati.

Gli upgrade parziali non sono supportati in una distribuzione a rilascio progressivo come Arch e Manjaro. Ciò significa che quando le nuove versioni delle librerie vengono inviate ai repository, tutti i pacchetti nei repository devono essere ricostruiti rispetto alle librerie. Ad esempio, se due pacchetti dipendono dalla stessa libreria, l'aggiornamento di un solo pacchetto potrebbe interrompere l'altro pacchetto che dipende da una versione precedente della libreria.

Usa pacman per cercare i pacchetti

Pacman interroga il database del pacchetto locale con il flag -Q, il database di sincronizzazione con il flag -S e il database dei file con il flag -F.

Pacman può cercare i pacchetti nel database, sia nei nomi che nelle descrizioni dei pacchetti:

pacman -Ss _string1_ _string2_ ...

Per cercare i pacchetti già installati:

pacman -Qs _string1_ _string2_ ...

Per cercare i nomi dei file dei pacchetti nei pacchetti remoti:

pacman -F _string1_ _string2_ ...

Per visualizzare l'albero delle dipendenze di un pacchetto:

pactree _package_naenter code hereme_

Pulizia della cache del pacchetto

Pacman memorizza i suoi pacchetti scaricati in /var/cache/pacman/pkg/ e non rimuove automaticamente le versioni precedenti o disinstallate. Questo ha alcuni vantaggi:

  1. Permette di effettuare il downgrade di un pacchetto senza la necessità di recuperare la versione precedente tramite altre fonti.
  2. Un pacchetto che è stato disinstallato può essere facilmente reinstallato direttamente dalla cartella della cache.

Tuttavia, è necessario ripulire periodicamente la cache per evitare che la cartella aumenti di dimensioni.

Lo script paccache(8), fornito all'interno del pacchetto pacman-contrib, elimina tutte le versioni memorizzate nella cache dei pacchetti installati e disinstallati, ad eccezione dei 3 più recenti, per impostazione predefinita:

paccache -r

Per rimuovere tutti i pacchetti memorizzati nella cache che non sono attualmente installati e il database di sincronizzazione inutilizzato, eseguire:

pacman -Sc

Per rimuovere tutti i file dalla cache, usa due volte l'opzione Clean, questo è l'approccio più aggressivo e non lascerà nulla nella cartella della cache:

pacman -Scc

Installazione di pacchetti locali o di terze parti

Installa un pacchetto "locale" che non proviene da un repository remoto:

pacman -U _/path/to/package/package_name-version.pkg.tar.xz_

Installa un pacchetto "remoto", non contenuto in un repository ufficiale:

pacman -U http://www.example.com/repo/example.pkg.tar.xz

Bonus:risoluzione degli errori comuni con pacman

Ecco alcuni errori comuni che potresti incontrare durante la gestione dei pacchetti con pacman.

Impossibile eseguire il commit della transazione (file in conflitto)

Se viene visualizzato il seguente errore:

error: could not prepare transaction
error: failed to commit transaction (conflicting files)
package: /path/to/file exists in filesystem
Errors occurred, no packages were upgraded.

Ciò accade perché pacman ha rilevato un conflitto di file e non sovrascriverà i file per te.

Un modo sicuro per risolvere questo problema è controllare prima se un altro pacchetto possiede il file (pacman -Qo /percorso/del/file ). Se il file è di proprietà di un altro pacchetto, invia una segnalazione di bug. Se il file non è di proprietà di un altro pacchetto, rinomina il file che "esiste nel filesystem" ed emette nuovamente il comando di aggiornamento. Se tutto va bene, il file potrebbe essere rimosso.

Invece di rinominare manualmente e successivamente rimuovere tutti i file che appartengono al pacchetto in questione, puoi eseguire esplicitamente pacman -S –overwrite glob package per forzare pacman a sovrascrivere i file che corrispondono a glob .

Impossibile eseguire il commit della transazione (pacchetto non valido o danneggiato)

Cerca i file .part (pacchetti parzialmente scaricati) in /var/cache/pacman/pkg/ e rimuovili. È spesso causato dall'utilizzo di un XferCommand personalizzato in pacman.conf.

Impossibile avviare la transazione (impossibile bloccare il database)

Quando pacman sta per modificare il database del pacchetto, ad esempio installando un pacchetto, crea un file di blocco in /var/lib/pacman/db.lck. Questo impedisce a un'altra istanza di pacman di provare ad alterare il database del pacchetto allo stesso tempo.

Se pacman viene interrotto durante la modifica del database, questo file di blocco non aggiornato può rimanere. Se sei certo che nessuna istanza di pacman sia in esecuzione, elimina il file di blocco.

Verifica se un processo contiene il file di blocco:

lsof /var/lib/pacman/db.lck

Se il comando precedente non restituisce nulla, puoi rimuovere il file di blocco:

rm /var/lib/pacman/db.lck

Se trovi il PID del processo che contiene il file di blocco con l'output del comando lsof, prima eliminalo e poi rimuovi il file di blocco.

Spero che ti piaccia il mio umile sforzo nello spiegare i comandi di base di pacman. Per favore lascia i tuoi commenti qui sotto e non dimenticare di iscriverti ai nostri social media. Stai al sicuro!



Linux
  1. Introduzione ai firewall Linux

  2. Iniziare con il comando tac di Linux

  3. Iniziare con PiFlash:avviare il tuo Raspberry Pi su Linux

  4. Iniziare con PostgreSQL su Linux

  5. Introduzione a SSH in Linux

Guida introduttiva ai comandi ad hoc di Ansible

Tutorial Vagrant – Introduzione a Vagrant in Linux

Introduzione a Docker Compose in Linux

Introduzione a VirtualBox in Linux – Parte 1

Introduzione a Flutter su desktop Linux

Guida introduttiva agli esempi di comandi di Alpine Linux Apk