Introducció
Ports vs. paquets
El gestor de paquets FreeBSD, pkg
S'està instal·lant el paquet
Configuració del paquet
Trobar paquets
Instal·lació de paquets
Obtenció d'informació sobre els paquets instal·lats
Eliminació de paquets
Bloqueig de paquets
Repositoris de paquets
Exemple de subordres pkg
Fitxers i directoris importants
Resum
Introducció
FreeBSD és un sistema operatiu de codi obert semblant a Unix que s'utilitza per alimentar servidors moderns, ordinadors de sobretaula i plataformes incrustades. Gegants com Netflix, Yahoo!, WhatsApp, BBC i Sony utilitzen FreeBSD d'alguna manera. El sistema FreeBSD no és tan conegut com Linux, en gran part perquè Linux s'ha centrat durant molts anys en l'escriptori i el projecte FreeBSD ha tendit a estar més basat en servidors.
En aquesta guia, aprendràs sobre la gestió de paquets a FreeBSD 12.
Ports vs. paquets
A FreeBSD tenim dues maneres diferents d'instal·lar programari addicional: mitjançant la Col·lecció de Ports , o Ports , i mitjançant paquets preconfigurats per instal·lar i gestionar programari.
Ports és un sistema per crear programari addicional a FreeBSD. Amb Ports, comenceu amb el codi font en brut proporcionat pel venedor de programari i creeu el programari exactament de la manera que necessiteu, activant i desactivant les funcions que necessiteu.
Els paquets són programari compilat prèviament i són el resultat de la creació de ports, utilitzant les opcions que el responsable del port creu que seran més útils per a la més àmplia varietat de persones i agrupar-los en un paquet per fer-los fàcilment instal·lables. Els paquets us permeten instal·lar, desinstal·lar i actualitzar ràpidament el programari addicional. El sistema d'embalatge de FreeBSD s'anomena package , o pkg. La informació del paquet s'emmagatzema en una base de dades SQLite que podeu consultar sobre les dades del paquet.
Una altra cosa important sobre la gestió de paquets de FreeBSD és la ubicació dels binaris de paquets. Instal·lar paquets binaris sota /usr/local, i la majoria dels arxius de configuració acaben en /usr/local/etclloc de /etc. Si veniu del món Linux, podeu trobar això molt poc comú.
El gestor de paquets FreeBSD, pkg
El reemplaçament de la propera generació de les eines tradicionals de gestió de paquets FreeBSD és pkg. Oferir moltes característiques que fan que el tracte amb paquets binaris sigui més ràpid i fàcil, pkgés la manera més fàcil d'instal·lar programari que encara no està inclòs al sistema base de FreeBSD. És un sol programa amb moltes subordres que utilitzareu per a gairebé totes les operacions de paquets, com ara instal·lar, eliminar i investigar paquets. Totes les operacions i els canvis del paquet s'han d'executar com rooto mitjançant sudo.
Aquí és com instal·leu el curlpaquet a FreeBSD:
pkg install curl
Podeu alimentar l'ordre amb -yper evitar la Proceed with this action? [y/N]:pregunta quan instal·leu programari o podeu configurar-lo pkgper assumir sempre -yen un fitxer de configuració.
Per eliminar el paquet, hauríeu d'utilitzar delete:
pkg delete curl
Com podeu veure, és molt senzill i intuïtiu.
Utilitzeu-lo pkg helpper a una referència ràpida sobre les subordres disponibles o pkg help <subcommand>per mostrar la pàgina de manual d'una subordre concreta:
pkg help
pkg help install
pkg help delete
Instal·lació pkg
La versió d'estoc de FreeBSD no s'envia amb el pkggestor de paquets instal·lat. La primera vegada que intenteu instal·lar algun paquet, pkgus demana que instal·leu l'eina de gestió de paquets. Per exemple, suposem que el primer paquet que voleu instal·lar al vostre FreeBSD nou és wget, i veureu el següent missatge al vostre terminal:
The package management tool is not yet installed on your system.
Do you want to fetch and install it now? [y/N]: y
Premeu Yi ENTERs'iniciarà la instal·lació de l'eina de gestió de paquets. Quan estigui al seu lloc, s'instal·larà el paquet de programari inicial que volíeu instal·lar ( wget).
També podeu instal·lar el sistema d'embalatge per si sol, sense afegir altres paquets, executant pkg bootstrap. A més, pkgsap com instal·lar-se i actualitzar-se a si mateix i altres paquets.
NOTA: les instàncies de Vultr s'han pkginstal·lat per defecte, de manera que no cal que l'instal·leu.
Configuració pkg
El pkgprograma està dissenyat per ser altament flexible, amb cada subordre amb moltes opcions. Podeu establir un comportament personalitzat, però coherent per a la majoria de programes amb el fitxer de configuració de tot el sistema per a pkg, situat a /usr/local/etc/pkg.conf.
El fitxer conté valors per defecte comentats per a pkg. Només llegint aquest fitxer, podeu aprendre molt sobre com pkges comporta. La configuració està escrita en llenguatge de configuració universal (UCL) i hi ha moltes opcions de configuració comentades i molts àlies. Les variables es poden establir en un nombre enter, una cadena o un valor booleà:
#PKG_DBDIR = "/var/db/pkg";
#PKG_CACHEDIR = "/var/cache/pkg";
#PORTSDIR = "/usr/ports";
#INDEXDIR = "";
#INDEXFILE = "INDEX-10"; # Autogenerated
#HANDLE_RC_SCRIPTS = false;
#DEFAULT_ALWAYS_YES = false;
#ASSUME_ALWAYS_YES = false;
. . .
Podeu definir àlies per a pkgsubordres a pkg.conf. A la part inferior de pkg.conf, trobareu una secció amb l'etiqueta ALIAS. Quan us trobeu executant repetidament ordres complexes, hauríeu d'afegir àlies.
Per obtenir més informació sobre el format i les opcions del fitxer, podeu consultar la pkg.conf(5)pàgina de manual:
man pkg.conf
Trobar paquets
Ara que teniu un gestor de paquets instal·lat, podeu instal·lar paquets. Si sou administrador del sistema, esteu familiaritzat amb el fet que diferents sistemes operatius assignen noms diferents a les versions empaquetades del mateix programari. Un paquet per al servidor web Apache a FreeBSD, per exemple, tindrà un nom completament diferent al de l'Apache empaquetat en diferents distribucions de Linux. Per tant, abans de poder instal·lar res, haureu d'esbrinar quin és el nom del paquet que voleu instal·lar.
El projecte FreeBSD ofereix diversos conjunts de paquets en un repositori públic i s'actualitzen cada pocs dies. Actualment hi ha més de 25.000 paquets.
Per exemple, intentem cercar el servidor web Apache:
pkg search apache
# apache24-2.4.38 Version 2.4.x of Apache web server
Trobarà tots els paquets amb els apacheseus noms. Això tornarà una llista llarga, però el que busqueu és el apache24paquet. Hi ha una breu descripció de cada paquet. Això us hauria d'ajudar a l'hora de decidir quin paquet instal·lar, però no sempre és senzill.
Algunes cerques poden generar centenars de resultats. Haureu d'utilitzar diferents opcions de línia d'ordres per retallar o ajustar els resultats de la cerca. Consulteu la pkg-searchpàgina de manual o la pàgina d'ajuda pkg help searchper obtenir més informació sobre les opcions de cerca habituals.
Si no esteu segur de si un paquet és el que realment voleu, podeu utilitzar l'ordre següent per cercar els detalls del paquet:
pkg search -R apache24
# name: "apache24"
# origin: "www/apache24"
# version: "2.4.38"
# comment: "Version 2.4.x of Apache web server"
# maintainer: "apache@FreeBSD.org"
# www: "https://httpd.apache.org/"
# abi: "FreeBSD:12:amd64"
# arch: "freebsd:12:x86:64"
# prefix: "/usr/local"
# . . .
# . . .
Aquesta ordre us donarà molta informació útil sobre el paquet.
Instal·lació de paquets
Per instal·lar programari, utilitzeu la installsubordre i el nom d'un paquet per instal·lar:
pkg install apache24
Quan instal·leu paquets amb pkg install, pkgconsulta el catàleg de paquets local i, a continuació, baixa el paquet sol·licitat del repositori a pkg.FreeBSD.org. Un cop instal·lat el paquet, es registra en una base de dades SQLite conservada a /var/db/pkg/local.sqlite. Tingueu cura de no suprimir aquest fitxer, en cas contrari, el vostre sistema perdrà la pista de quins paquets s'han instal·lat. Si el programari té dependències, pkgles esbrinarà i les instal·larà juntament amb el paquet base. Els paquets instal·lats com a dependències s'anomenen paquets automàtics .
El gestor de paquets només té la possibilitat de descarregar paquets a Internet i desar-los en una ubicació del disc. Això us permet instal·lar-los en un altre moment. Podeu utilitzar l' pkg fetchordre per descarregar el paquet sense instal·lar-lo:
pkg fetch nginx
Aquesta ordre obtindrà només Nginx sense les seves dependències. Podeu utilitzar la -dbandera per agafar totes les dependències, així com el paquet anomenat:
pkg fetch -d nginx
Els paquets es descarreguen al directori de la memòria cau de paquets /var/cache/pkg. Després d'haver recuperat els paquets, pkgels afegireu a aquest directori. Podeu llistar fitxers per veure què conté:
ls /var/cache/pkg
Ara, per instal·lar un paquet descarregat després d'una recuperació, executeu-vos pkg installnormalment. El procés d'instal·lació utilitza els fitxers de la memòria cau en lloc dels descarregats.
Over time, the package cache directory can grow big. The pkg clean command removes any cached packages that have been replaced by newer versions, as well as any package files that are no longer in the repository:
pkg clean
If you want to remove all cached packages, use the -a flag:
pkg clean -a
If you want to clean the package cache automatically after each package install or upgrade, set the pkg.conf option AUTOCLEAN to true.
If you forget which packages you’ve installed on a system you can use pkg info to get a complete list of installed software:
pkg info
# atk-2.28.1 GNOME accessibility toolkit (ATK)
# avahi-app-0.7_2 Service discovery on a local network
# ca_root_nss-3.42.1 Root certificate bundle from the Mozilla Project
# . . .
# . . .
If you want more information about an installed package, use pkg info and the package name. This shows the package installation details in a human-friendly report:
pkg info nginx
# nginx-1.14.2_3,2
# Name : nginx
# Version : 1.14.2_3,2
# . . .
# . . .
You can see a lot of useful information like the version of the software, the time of software installation, software license, compile-time flags and more. Check the pkg-info man page for the complete details.
Removing packages
To uninstall binary packages use the pkg delete subcommand. It’s also available as pkg remove:
pkg delete nginx
# or
pkg remove nginx
You will get a list of packages to be removed and how much space this will free up.
If you remove a package that other packages depend on, pkg removes the depending packages as well.
Locking packages
There may be a time when you want a package on your server to never upgrade. When you lock a package, pkg won’t upgrade, downgrade, uninstall or reinstall it. It applies the same rules to the package’s dependencies and the programs it depends on.
Use pkg lock to lock a package:
pkg lock openssl
This openssl package is now locked.
To list all currently locked packages on the system, use the -l flag:
pkg lock -l
To remove the lock use the pkg unlock command:
pkg unlock openssl
To lock or unlock all packages on the system at once, use the -a flag:
pkg lock -a
pkg unlock -a
Package repositories
Package repositories are supported by pkg, which are named collections of packages. You can add, remove, enable, and disable repositories. You should configure each repository in its own file using UCL format. Official FreeBSD repositories belong in the /etc/pkg directory. FreeBSD ships with the repo "FreeBSD" enabled. You’ll find its configuration file in /etc/pkg/FreeBSD.conf:
FreeBSD: {
url: "pkg+http://pkg.FreeBSD.org/${ABI}/quarterly",
mirror_type: "srv",
signature_type: "fingerprints",
fingerprints: "/usr/share/keys/pkg",
enabled: yes
}
Podeu afegir i eliminar repositoris segons sigui necessari. Com /etc/pkgestà reservat per als dipòsits oficials de FreeBSD, necessitareu un altre directori. La ubicació tradicional és /usr/local/etc/pkg/repos. Si voleu utilitzar un directori diferent, haureu d'establir una ubicació pkg.confamb l' REPO_DIRSopció. El directori del repositori local no existeix de manera predeterminada, així que l'haureu de crear amb mkdir -p /usr/local/etc/pkg/repos. Poseu les vostres pròpies configuracions de repositori en aquest directori.
Exemples de pkgsubordres
Aquesta secció enumerarà algunes de les subordres utilitzades amb més freqüència que probablement utilitzareu quan administreu un servidor FreeBSD:
# Installs a package without asking any questions
pkg install -y package
# Makes a backup of the local package database
pkg backup
# Lists all installed packages
pkg info
# Shows extended information for a package
pkg info package
# Searches package repository
pkg search -i package
# Shows packages with known security vulnerabilities
pkg audit -F
# Shows which package owns the named file
pkg which file
# Removes unused packages
pkg autoremove
# Uninstalls a package
pkg delete package
# Removes cached packages from /var/cache/pkg
pkg clean -ay
# Updates local copy of the package catalog
pkg update
# Upgrades installed packages to their latest version
pkg upgrade
# Checks the integrity of all your packages
pkg check -saq
# Verifies that a package's files are unaltered
pkg check -s nginx
# Shows what files came with the package
pkg info -l nginx
# Lists non-automatic packages
pkg prime-list
Fitxers i directoris importants
- El
pkgfitxer de configuració -/usr/local/etc/pkg.conf
- Directori reservat per als repositoris oficials de FreeBSD -
/etc/pkg
- Fitxer del repositori FreeBSD -
/etc/pkg/FreeBSD.conf
- Ubicació tradicional per a repositoris personalitzats -
/usr/local/etc/pkg/repos
- Directori de la memòria cau de paquets -
/var/cache/pkg
- base de dades SQLite -
/var/db/pkg/local.sqlite
Resum
FreeBSD ofereix dues tecnologies complementàries per instal·lar programari de tercers: FreeBSD Ports Collection, per instal·lar des de la font i paquets, per instal·lar des de binaris preconstruïts. A mesura que FreeBSD està canviant el sistema de manera més decidida cap a la gestió de paquets universal, intenteu gestionar el programari de tercers pkgen la mesura del possible. Eviteu utilitzar ports tret que el programari que voleu no tingui una versió empaquetada o hàgiu de personalitzar les opcions de compilació.