23 exemples d'ordres PKG útils per gestionar paquets a FreeBSD


En aquest tutorial explicarem com gestionar aplicacions de paquets binaris precompilats a FreeBSD amb l'ajuda de l'eina de gestió de paquets anomenada PKG mitjançant el dipòsit de col·lecció de programari de Ports.

El repositori de ports ofereix les eines necessàries per compilar aplicacions a partir del codi font, juntament amb les seves dependències, però també manté una gran col·lecció de paquets precompilats, actualment més de 24.000 paquets, que es poden instal·lar en un sistema FreeBSD amb l'ordre pkg.

  1. Instal·lació de FreeBSD 11.x

Cerca i cerca aplicacions a l'arbre de ports a FreeBSD

1. Els dipòsits de ports es divideixen en categories a FreeBSD, cada categoria està representada per un directori a la ruta del sistema de fitxers /usr/ports/.

Una llista senzilla del directori /usr/ports/ mostrarà totes les categories disponibles tal com es mostra a la captura de pantalla següent.

# ls /usr/ports/

2. Per veure totes les aplicacions disponibles que pertanyen a una categoria, emet una ordre ls al directori de categories.

Suposem que voleu mostrar tots els paquets de programari disponibles que ofereix la categoria de base de dades, executeu l'ordre següent a la consola. Canalitza el resultat amb menys comanda per navegar més fàcilment per la sortida.

# ls /usr/ports/databases/ | less

3. Per veure quants paquets hi ha disponibles en una categoria, enumereu el directori de categories i canalitzeu el resultat mitjançant l'ordre wc tal com es mostra a l'exemple següent.

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

Com podeu veure a la captura de pantalla anterior, la categoria de base de dades de FreeBSD conté més de 1000 paquets de base de dades prèviament complits.

4. Per veure si una aplicació específica està disponible en una categoria, torneu a utilitzar la utilitat grep per cercar una aplicació personalitzada.

En els exemples següents, es cercaran els paquets disponibles de la base de dades mongodb i els paquets de seguretat antivirus clam.

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

Com podeu veure, poden estar disponibles diverses versions d'una aplicació a FreeBSD Ports.

5. En cas que no sabeu a quina categoria pertany un programari, podeu utilitzar un altre enfocament per trobar la categoria de programari. Utilitzeu el caràcter comodí * per cercar un patró a tot l'arbre de directoris de Ports.

Suposant que voleu veure en quina categoria podeu trobar els paquets de programari per a la utilitat mailx, podeu executar l'ordre següent.

# ls /usr/ports/*/*mailx

6. Un altre mètode per cercar un paquet de programari i la categoria a la qual pertany el paquet és utilitzar l'ordre locate contra un patró de cadena.

Abans de realitzar la cadena de cerca, hauríeu d'actualitzar la base de dades locate amb l'ordre següent.

# /usr/libexec/locate.updatedb

7. Després d'haver actualitzat la base de dades de localització, cerqueu un paquet de programari específic mitjançant un patró de paraules clau del nom del paquet. Per exemple, si voleu cercar la utilitat mailx, podeu executar l'ordre següent.

# locate mailx

Com podeu veure, hi ha dos paquets disponibles per a la utilitat mailx, tots dos situats a la categoria /usr/ports/mail/.

8. Similar a trobar un paquet amb l'ordre whereis, per veure la categoria de l'aplicació.

# whereis mailx

Cerca programari mitjançant l'ordre PKG a FreeBSD

9. El mètode més fàcil per cercar i trobar una aplicació a FreeBSD és mitjançant la línia d'ordres de gestió de paquets PKG. Per cercar els paquets binaris d'una aplicació, per exemple, el programari postfix, emet l'ordre següent.

# pkg search package_name

10. En cas que vulgueu veure a quina categoria pertany el paquet, executeu la mateixa ordre que l'anterior amb el senyalador -o, tal com s'il·lustra als exemples següents.

# pkg search -o package_name

Gestionar el programari a FreeBSD

11. Per instal·lar un paquet precompilat des dels dipòsits de Ports a FreeBSD, emet l'ordre pkg tal com es mostra a l'exemple següent.

# pkg install package_name

12. Per consultar informació sobre un paquet específic instal·lat al sistema, emet l'ordre següent.

# pkg info package_name

13. El commutador d'ordres pkg info mostrarà el missatge \No hi ha paquets que coincideixin amb nom_paquet si el paquet de programari encara no està instal·lat al vostre sistema, tal com es mostra a la captura de pantalla següent.

# pkg info tcpdump

14. Per llistar tots els paquets de programari instal·lats a FreeBSD, executeu l'ordre pkg info sense cap opció ni interruptors.

L'ordre grep filter against pkg info us pot mostrar si alguns paquets o aplicacions específics ja estan presents al sistema, tal com es mostra a l'exemple següent.

# pkg info | grep ftp

15. Per eliminar un paquet del sistema, emet les ordres següents.

# pkg remove package_name
or
# pkg delete package_name

16. En cas que vulgueu evitar l'eliminació o la modificació d'un paquet instal·lat, podeu utilitzar l'ordre lock switch for pkg, tal com es mostra a la imatge següent.

# pkg lock package_name

L'interruptor d'ordre de desbloqueig pkg us permetrà eliminar la restricció del paquet i modificar o desinstal·lar el paquet.

# pkg unlock package_name

17. Per esbrinar a quin paquet instal·lat pertany una ordre o un fitxer executable, emet l'ordre següent, tal com s'il·lustra als exemples de captures de pantalla següents.

# pkg which /path/to/executable

18. Per descarregar localment un paquet des del dipòsit de Ports, sense instal·lar-lo al sistema, executeu l'ordre pkg amb l'interruptor fetch.

El paquet binari descarregat, que és un fitxer .txz comprimit, es pot trobar a la ruta del sistema /var/cache/pkg/.

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

19. Per comprovar si els paquets instal·lats estan exposats a vulnerabilitats o errors comuns, emeteu l'ordre següent.

# pkg audit -F

Per veure una llista de vulnerabilitats antigues que afecten un paquet de programari en versions anteriors, emet l'ordre següent.

# pkg audit package_name

A continuació es mostra un extracte de totes les vulnerabilitats conegudes que es van trobar al servidor web Nginx compilat per a 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
...

Mantenir la utilitat de gestió de paquets a FreeBSD

20. Per assegurar-vos que els dipòsits de programari i tots els vostres paquets instal·lats i estiguin actualitzats amb les últimes versions o pedaços de seguretat, emeteu les ordres següents.

# pkg update
# pkg upgrade

21. Per mostrar estadístiques de dipòsits remots i paquets locals, com ara quants paquets hi ha instal·lats al vostre sistema i quant espai de disc ocupa el programari instal·lat, executeu l'ordre següent.

# pkg stats

22. Per eliminar totes les dependències deixades pels paquets instal·lats al sistema, emeteu l'ordre següent.

# pkg autoremove

23. Per esborrar automàticament el directori de memòria cau local de gestió de paquets per als paquets descarregats a distància, executeu l'ordre següent. Primer hauríeu de verificar la llista de paquets binaris descarregats localment.

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

Això és tot! Com podeu veure, FreeBSD té un sistema de recollida de paquets impressionant, similar a les eines de gestió de paquets que s'utilitzen en distribucions de Linux com APT amb un gran nombre de binaris de programari precompilats i una línia d'ordres senzilla i eficaç, pkg, que es pot utilitzar per gestionar el programari d'una manera decent.