Quando si passa da una distribuzione Linux all'altra, può essere difficile passare senza problemi tra le diverse interfacce e gli strumenti di gestione dei pacchetti. In questo articolo, esamineremo alcune operazioni comuni e come eseguirle utilizzando entrambi dnf
e apt
.
Operazioni di base
Per fortuna, la maggior parte delle operazioni di base quotidiane possono essere eseguite allo stesso modo utilizzando entrambi gli strumenti. L'installazione di un pacchetto in base al nome è dnf install
e apt install
e la rimozione è dnf remove
e apt remove
. Rimuovere le dipendenze che non sono più necessarie è dnf autoremove
e apt autoremove.
A volte, non saprai il nome esatto del pacchetto di cui hai bisogno per ottenere un determinato strumento. In questi casi, puoi utilizzare dnf search
e apt search
per cercare i nomi e le descrizioni dei pacchetti. Questi strumenti supportano le espressioni regolari, che possono aiutare a ridurre i risultati.
root@ubuntu:~# apt search ripgrep
Sorting... Done
Full Text Search... Done
elpa-dumb-jump/groovy 0.5.3-1 all
jump to definition for multiple languages without configuration
ripgrep/groovy 12.1.1-1 amd64
Recursively searches directories for a regex pattern
ugrep/groovy 2.4.1+dfsg-1 amd64
faster grep with an interactive query UI
[root@fedora ~]# dnf search ripgrep
Last metadata expiration check: 0:04:09 ago on Sun 25 Oct 2020 09:43:35 PM UTC.
====================== Name Exactly Matched: ripgrep ======================
ripgrep.x86_64 : Line oriented search tool using Rust's regex library
[root@fedora ~]#
Un "gotcha" da tenere a mente è che i comandi per l'aggiornamento funzionano in modo leggermente diverso. dnf update
e dnf upgrade
entrambi funzionano allo stesso modo e combinano i passaggi eseguiti da apt update
e apt upgrade
. Ciò significa che un dnf
il sistema proverà a recuperare tutti gli aggiornamenti in sospeso dai suoi repository configurati e richiedere all'utente di aggiornare i pacchetti, il tutto in un unico comando. Hai ancora la possibilità di eseguire effettivamente l'aggiornamento o meno, ovviamente, ma può essere leggermente sorprendente per le persone abituate a Ubuntu vedere un dnf update
chiedendo improvvisamente all'utente di aggiornare i pacchetti. dnf distro-sync
funziona in modo simile, combinando le funzioni di apt update
e apt dist-upgrade
.
[ Ai lettori è piaciuto anche: Crea un repository YUM/DNF basato su Apache su Red Hat Enterprise Linux 8 ]
Richiesta di informazioni sul pacchetto
Quando si richiedono informazioni sul pacchetto, dnf
offre alcune piccole comodità combinando alcuni apt
funzionalità in un unico comando. apt show
ti fornirà informazioni su un pacchetto e apt-cache policy
fornirà informazioni sul repository da cui proviene un pacchetto e sul suo stato di aggiornamento. dnf
trasferisce tutto questo in dnf info
E include anche informazioni sul pacchetto remoto che apt
fornisce tramite apt-cache show
.
root@ubuntu:~# apt show curl
Package: curl
Version: 7.68.0-1ubuntu4
Priority: optional
Section: web
Origin: Ubuntu
Maintainer: Ubuntu Developers <[email protected]>
Original-Maintainer: Alessandro Ghedini <[email protected]>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 411 kB
Depends: libc6 (>= 2.17), libcurl4 (= 7.68.0-1ubuntu4), zlib1g (>= 1:1.1.4)
Homepage: http://curl.haxx.se
Task: server, cloud-image, server-raspi, ubuntu-budgie-desktop
Download-Size: 161 kB
APT-Manual-Installed: no
APT-Sources: http://mirrors.digitalocean.com/ubuntu groovy/main amd64 Packages
Description: command line tool for transferring data with URL syntax
curl is a command line tool for transferring data with URL syntax, supporting
DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3,
POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET and TFTP.
.
curl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form
based upload, proxies, cookies, user+password authentication (Basic, Digest,
NTLM, Negotiate, kerberos...), file transfer resume, proxy tunneling and a
busload of other useful tricks.
root@ubuntu:~# apt-cache policy curl
curl:
Installed: 7.68.0-1ubuntu4
Candidate: 7.68.0-1ubuntu4
Version table:
*** 7.68.0-1ubuntu4 500
500 http://mirrors.digitalocean.com/ubuntu groovy/main amd64 Packages
100 /var/lib/dpkg/status
[root@fedora ~]# dnf info curl
Last metadata expiration check: 0:10:03 ago on Sun 25 Oct 2020 09:43:35 PM UTC.
Installed Packages
Name : curl
Version : 7.69.1
Release : 1.fc32
Architecture : x86_64
Size : 654 k
Source : curl-7.69.1-1.fc32.src.rpm
Repository : @System
From repo : anaconda
Summary : A utility for getting files from remote servers (FTP, HTTP, and others)
URL : https://curl.haxx.se/
License : MIT
Description : curl is a command line tool for transferring data with URL syntax, supporting
: FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, FILE, IMAP,
: SMTP, POP3 and RTSP. curl supports SSL certificates, HTTP POST, HTTP PUT, FTP
: uploading, HTTP form based upload, proxies, cookies, user+password
: authentication (Basic, Digest, NTLM, Negotiate, kerberos...), file transfer
: resume, proxy tunneling and a busload of other useful tricks.
Available Packages
Name : curl
Version : 7.69.1
Release : 6.fc32
Architecture : x86_64
Size : 289 k
Source : curl-7.69.1-6.fc32.src.rpm
Repository : updates
Summary : A utility for getting files from remote servers (FTP, HTTP, and others)
URL : https://curl.haxx.se/
License : MIT
Description : curl is a command line tool for transferring data with URL syntax, supporting
: FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, FILE, IMAP,
: SMTP, POP3 and RTSP. curl supports SSL certificates, HTTP POST, HTTP PUT, FTP
: uploading, HTTP form based upload, proxies, cookies, user+password
: authentication (Basic, Digest, NTLM, Negotiate, kerberos...), file transfer
: resume, proxy tunneling and a busload of other useful tricks.
Per elencare i file forniti da un pacchetto locale, puoi utilizzare rpm -ql
su dnf
sistemi e dpkg -L
su apt
sistemi. Elencare i file forniti da un pacchetto remoto, tuttavia, diventa un po' più complicato. Su dnf
sistemi, questo può essere fatto tramite dnf repoquery -l
. Per farlo su Ubuntu, puoi utilizzare un'utilità chiamata apt-file
ed esegui apt-file list
. Potrebbe essere necessario installarlo tu stesso, poiché è gestito dal team apt ma non fa parte di apt
stesso.
Download di sorgenti
A volte, devi solo scavare nel codice sorgente per vedere cosa sta succedendo. Per fortuna, c'è un modo semplice per ottenere il codice sorgente direttamente tramite il tuo gestore di pacchetti. Per visualizzare il pacchetto di origine con il nome del pacchetto specificato, utilizza dnf repoquery -s
e apt-cache showsrc
. Per prenderlo, dnf download --source
lo tirerà giù rapidamente, così come apt-get source
.
In questo articolo, abbiamo esaminato alcuni dnf
comuni e apt
operazioni che incontreranno gli ingegneri di sistema. Per uno sguardo più approfondito alle opzioni disponibili su diverse distribuzioni, ti incoraggio a dare un'occhiata a Pacman Rosetta disponibile sul wiki di Arch Linux. Sebbene sia progettato per gli utenti che arrivano ad Arch da altre distribuzioni, è un'ottima risorsa per chiunque cerchi di tradurre da un gestore di pacchetti di una distribuzione a un altro per una vasta gamma di operazioni comuni.
[ Corso online gratuito:panoramica tecnica di Red Hat Enterprise Linux. ]