Ricerca nel sito web

23 Esempi utili di comandi PKG per gestire i pacchetti in FreeBSD


In questo tutorial spiegheremo come gestire applicazioni di pacchetti binari precompilati in FreeBSD con l'aiuto dello strumento di gestione dei pacchetti denominato PKG tramite Porte archivio di raccolte di software.

Il repository Ports offre gli strumenti necessari per compilare applicazioni dal codice sorgente, insieme alle loro dipendenze, ma mantiene anche un'enorme raccolta di pacchetti precompilati, attualmente più di 24.000 pacchetti, che può essere installato su un sistema FreeBSD con il comando pkg.

Requisiti:

  1. Installazione di FreeBSD 11.x

Cerca e trova applicazioni nell'albero dei port in FreeBSD

1. I repository dei port sono divisi in categorie in FreeBSD, ciascuna categoria è rappresentata da una directory nel percorso del file system /usr/ports/.

Un semplice elenco della directory /usr/ports/ mostrerà tutte le categorie disponibili come mostrato nello screenshot seguente.

ls /usr/ports/

2. Per visualizzare tutte le applicazioni disponibili appartenenti a una categoria, esegui il comando ls nella directory della categoria.

Supponiamo che tu voglia visualizzare tutti i pacchetti software disponibili che la categoria del database ha da offrire, esegui il comando seguente nella console. Invia il risultato tramite il comando less per navigare più facilmente nell'output.

ls /usr/ports/databases/ | less

3. Per visualizzare quanti pacchetti sono disponibili in una categoria, elenca la directory delle categorie e invia il risultato tramite il comando wc come mostrato nell'esempio seguente.

ls /usr/ports/databases/ | wc -l

Come puoi vedere nello screenshot qui sopra, la categoria del database di FreeBSD contiene più di 1000 pacchetti di database precompilati.

4. Per vedere se un'applicazione specifica è disponibile in una categoria, utilizzare nuovamente il comando ls e filtrare il risultato tramite l'utilità grep per cercare un'applicazione personalizzata.

Negli esempi seguenti verranno cercati i pacchetti disponibili nel database mongodb e i pacchetti di sicurezza clam antivirus.

ls /usr/ports/databases/ | grep mongodb
ls /usr/ports/security/ | grep clam

Come puoi vedere, più versioni di un'applicazione possono essere disponibili nei Port di FreeBSD.

5. Nel caso in cui non sai a quale categoria appartiene un software, puoi utilizzare un altro approccio per trovare la categoria del software. Utilizzare il carattere jolly * del globbing della shell per cercare un modello nell'intero albero delle directory dei Port.

Supponendo che tu voglia vedere in quale categoria puoi trovare i pacchetti software per l'utilità mailx, puoi eseguire il seguente comando.

ls /usr/ports/*/*mailx

6. Un altro metodo per cercare un pacchetto software e la categoria a cui appartiene il pacchetto è utilizzare il comando localizza rispetto a un modello di stringa.

Prima di eseguire la stringa di ricerca, è necessario aggiornare il database di localizzazione con il seguente comando.

/usr/libexec/locate.updatedb

7. Dopo aver aggiornato il database di localizzazione, cerca un pacchetto software specifico utilizzando uno schema di parole chiave dal nome del pacchetto. Ad esempio, se desideri cercare l'utilità mailx, puoi eseguire il comando seguente.

locate mailx

Come puoi vedere, sono disponibili due pacchetti per l'utilità mailx, entrambi situati nella categoria /usr/ports/mail/.

8. Analogamente alla ricerca di un pacchetto con il comando localizza, puoi anche utilizzare il comando whereis per visualizzare la categoria dell'applicazione.

whereis mailx

Cerca software tramite comando PKG in FreeBSD

9. Il metodo più semplice per cercare e trovare un'applicazione in FreeBSD è tramite la riga di comando di gestione dei pacchetti PKG. Per cercare un'applicazione nei pacchetti binari, ad esempio il software postfix, esegui il comando seguente.

pkg search package_name

10. Nel caso in cui desideri vedere a quale categoria appartiene il pacchetto, esegui lo stesso comando di cui sopra con il flag -o, come illustrato negli esempi seguenti.

pkg search -o package_name

Gestisci il software in FreeBSD

11. Per installare un pacchetto precompilato dai repository Ports in FreeBSD, esegui il comando pkg come illustrato nell'esempio seguente.

pkg install package_name

12. Per richiedere informazioni su uno specifico pacchetto installato nel sistema, eseguire il comando seguente.

pkg info package_name

13. L'interruttore di comando pkg info visualizzerà il messaggio "Nessun pacchetto(i) corrispondente a nome_pacchetto" se il pacchetto software non è già installato in il tuo sistema, come mostrato nello screenshot qui sotto.

pkg info tcpdump

14. Per elencare tutti i pacchetti software installati in FreeBSD, esegui il comando pkg info senza alcuna opzione o interruttore.

Il filtro grep contro il comando pkg info può mostrarti se alcuni pacchetti o applicazioni specifici sono già presenti nel sistema, come illustrato nell'esempio seguente.

pkg info | grep ftp

15. Per rimuovere un pacchetto dal sistema, esegui i comandi seguenti.

pkg remove package_name
or
pkg delete package_name

16. Nel caso in cui desideri impedire la rimozione o la modifica di un pacchetto installato, puoi utilizzare l'interruttore blocca per il comando pkg, come mostrato nell'immagine seguente.

pkg lock package_name

L'interruttore del comando Sblocca pkg ti consentirà di rimuovere la restrizione del pacchetto e modificare o disinstallare il pacchetto.

pkg unlock package_name

17. Per scoprire a quale pacchetto installato appartiene un comando o un file eseguibile, emettere il seguente comando, come illustrato negli esempi di screenshot seguenti.

pkg which /path/to/executable

18. Per scaricare localmente un pacchetto dal repository Ports, senza installare il pacchetto sul sistema, esegui il comando pkg con il prendi l'interruttore.

Il pacchetto binario scaricato, che è un file .txz compresso, si trova nel percorso di sistema /var/cache/pkg/.

pkg fetch package_name
ls /var/cache/pkg/ | grep package_name

19. Per verificare se i pacchetti installati sono esposti a vulnerabilità o bug comuni, eseguire il comando seguente.

pkg audit -F

Per visualizzare un elenco di vecchie vulnerabilità che interessavano un pacchetto software nelle versioni precedenti, eseguire il comando seguente.

pkg audit package_name

Di seguito è riportato un estratto di tutte le vulnerabilità conosciute trovate nel server web Nginx compilato per FreeBSD.

pkg audit nginx
nginx is vulnerable:
Affected versions:
<= 0.8.41 : > 1.4.4,1
nginx -- Request line parsing vulnerability
CVE: CVE-2013-4547
WWW: https://vuxml.FreeBSD.org/freebsd/94b6264a-5140-11e3-8b22-f0def16c5c1b.html

nginx is vulnerable:
Affected versions:
< 1.0.15
nginx -- Buffer overflow in the ngx_http_mp4_module
CVE: CVE-2012-2089
WWW: https://vuxml.FreeBSD.org/freebsd/0c14dfa7-879e-11e1-a2a0-00500802d8f7.html

nginx is vulnerable:
Affected versions:
< 1.4.7
nginx -- SPDY heap buffer overflow
CVE: CVE-2014-0133
WWW: https://vuxml.FreeBSD.org/freebsd/fc28df92-b233-11e3-99ca-f0def16c5c1b.html
...

Mantieni l'utilità di gestione dei pacchetti in FreeBSD

20. Per garantire che i repository software e tutti i pacchetti installati siano aggiornati con le versioni o le patch di sicurezza più recenti, immetti i seguenti comandi.

pkg update
pkg upgrade

21. Per mostrare i repository remoti e le statistiche dei pacchetti locali, ad esempio quanti pacchetti sono installati nel tuo sistema e quanto spazio su disco è occupato dal software installato, esegui il seguente comando.

pkg stats

22. Per eliminare tutte le dipendenze lasciate dai pacchetti installati nel sistema, eseguire il comando seguente.

pkg autoremove

23. Per cancellare automaticamente la directory della cache locale di gestione dei pacchetti per i pacchetti scaricati in remoto, esegui il comando seguente. Dovresti prima verificare l'elenco dei pacchetti binari scaricati localmente.

pkg clean -a -n  
pkg clean -a -y

È tutto! Come puoi vedere, FreeBSD ha un impressionante sistema di raccolta dei pacchetti, simile agli strumenti di gestione dei pacchetti utilizzati nelle distribuzioni Linux come Yum, RPM e APT con un numero enorme di binari software precompilati e un sistema semplice e un'efficace riga di comando, pkg, che può essere utilizzata per gestire il software in modo decente.