introduzione
FreeBSD è un sistema operativo open source simile a Unix utilizzato per alimentare server, desktop e piattaforme embedded moderni. Giganti come Netflix, Yahoo!, WhatsApp, BBC e Sony usano FreeBSD in qualche modo. Il sistema FreeBSD non è così conosciuto come Linux, soprattutto perché Linux si è concentrato per molti anni sul desktop e il progetto FreeBSD ha avuto la tendenza ad essere più basato su server.
In questa guida, imparerai a gestire i pacchetti su FreeBSD 12.
Porte vs. Pacchetti
Su FreeBSD abbiamo due modi diversi per installare il software aggiuntivo: tramite Ports Collection o Ports e tramite pacchetti preconfigurati per installare e gestire il software.
Ports è un sistema per creare software aggiuntivo su FreeBSD. Con Ports inizi con il codice sorgente grezzo fornito dal fornitore del software e costruisci il software esattamente nel modo che ti serve, abilitando e disabilitando le funzionalità di cui hai bisogno.
I pacchetti sono software precompilati e sono il risultato della costruzione di porte, utilizzando le opzioni che il manutentore ritiene possano essere più utili per la più ampia varietà di persone e raggruppandole in un pacchetto per renderle facilmente installabili. I pacchetti consentono di installare, disinstallare e aggiornare rapidamente il software aggiuntivo. Il sistema di packaging di FreeBSD si chiama pacchetto , o pkg
. Le informazioni sul pacchetto vengono archiviate in un database SQLite su cui è possibile eseguire query sui dati del pacchetto.
Un'altra cosa importante sulla gestione dei pacchetti di FreeBSD è la posizione dei file binari dei pacchetti. I pacchetti installano i binari sotto /usr/local
e la maggior parte dei file di configurazione finisce /usr/local/etc
invece che /etc
. Se vieni dal mondo Linux, potresti trovarlo molto raro.
Il gestore dei pacchetti di FreeBSD, pkg
La sostituzione di prossima generazione per i tradizionali strumenti di gestione dei pacchetti di FreeBSD è pkg
. Offrendo molte funzionalità che rendono la gestione dei pacchetti binari più semplice e veloce, pkg
è il modo più semplice per installare software che non è già incluso nel sistema di base di FreeBSD. È un singolo programma con molti sottocomandi che userete per quasi tutte le operazioni su pacchetti come l'installazione, la rimozione e l'analisi dei pacchetti. Tutte le operazioni e le modifiche al pacchetto devono essere eseguite come root
o tramite sudo
.
Ecco come installeresti il curl
pacchetto su FreeBSD:
pkg install curl
È possibile alimentare il comando con -y
per evitare la Proceed with this action? [y/N]:
domanda durante l'installazione del software o è possibile configurare pkg
per assumere sempre -y
in un file di configurazione.
Per rimuovere il pacchetto, è necessario utilizzare delete
:
pkg delete curl
Come puoi vedere, è molto semplice e intuitivo.
Utilizzare pkg help
per un riferimento rapido sui sottocomandi disponibili o pkg help <subcommand>
per visualizzare la pagina di manuale per un particolare sottocomando:
pkg help
pkg help install
pkg help delete
Installazione pkg
La versione stock di FreeBSD non viene fornita con il pkg
gestore pacchetti installato. La prima volta che si tenta di installare alcuni pacchetti, viene pkg
richiesto di installare lo strumento di gestione dei pacchetti. Ad esempio, supponiamo che il primo pacchetto che desideri installare sul tuo nuovo FreeBSD sia wget
, e vedrai il seguente prompt nel tuo terminale:
The package management tool is not yet installed on your system.
Do you want to fetch and install it now? [y/N]: y
Colpirai Ye ENTERinizierà l'installazione dello strumento di gestione dei pacchetti. Una volta installato, wget
verrà installato il pacchetto software iniziale che si desidera installare ( ).
È inoltre possibile installare il sistema di packaging da solo, senza aggiungere altri pacchetti, eseguendo pkg bootstrap
. Inoltre, pkg
sa come installare e aggiornare se stesso e altri pacchetti.
NOTA: le istanze Vultr sono pkg
installate per impostazione predefinita, quindi non è necessario installarlo.
Configurazione pkg
Il pkg
programma è progettato per essere altamente flessibile, con ogni sottocomando con molte opzioni. È possibile stabilire un comportamento personalizzato, ma coerente per la maggior parte dei programmi con il file di configurazione dell'intero sistema per pkg
, situato in /usr/local/etc/pkg.conf
.
Il file contiene impostazioni predefinite commentate per pkg
. Semplicemente leggendo quel file, puoi imparare molto su come pkg
si comporta. La configurazione è scritta in Universal Configuration Language (UCL) e ci sono molte opzioni di configurazione commentate e parecchi alias. Le variabili possono essere impostate su un numero intero, una stringa o un valore booleano:
#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;
. . .
È possibile definire gli alias per i pkg
sottocomandi in pkg.conf
. Nella parte inferiore di pkg.conf
, troverai una sezione etichettata ALIAS
. Quando ti ritrovi a eseguire ripetutamente comandi complessi, devi aggiungere alias.
Per ulteriori informazioni sul formato e le opzioni del file, è possibile fare riferimento alla pkg.conf(5)
pagina man:
man pkg.conf
Trovare pacchetti
Ora che hai installato un gestore di pacchetti, puoi installare i pacchetti. Se sei un amministratore di sistema, hai familiarità con il fatto che diversi sistemi operativi assegnano nomi diversi alle versioni impacchettate dello stesso software. Un pacchetto per il web server Apache su FreeBSD, per esempio, avrà un nome completamente diverso da quello del pacchetto Apache su diverse distribuzioni Linux. Quindi, prima di poter installare qualsiasi cosa, dovrai capire qual è il nome del pacchetto che vuoi installare.
Il progetto FreeBSD offre diversi set di pacchetti in un repository pubblico e vengono aggiornati ogni pochi giorni. Attualmente ci sono oltre 25.000 pacchetti.
Ad esempio, proviamo a cercare il web server Apache:
pkg search apache
# apache24-2.4.38 Version 2.4.x of Apache web server
Troverà tutti i pacchetti con apache
nei loro nomi. Questo restituirà un lungo elenco, ma quello che stai cercando è il apache24
pacchetto. C'è una breve descrizione di ogni pacchetto. Questo dovrebbe aiutarti nel decidere quale pacchetto installare, ma non è sempre semplice.
Alcune ricerche possono generare centinaia di risultati. Sarà necessario utilizzare diverse opzioni della riga di comando per tagliare o regolare i risultati della ricerca. Consulta la pkg-search
pagina man o la pagina di aiuto pkg help search
per saperne di più sulle opzioni di ricerca comuni.
Se non sei sicuro che un pacchetto sia quello che desideri davvero, puoi usare il comando seguente per cercare i dettagli del pacchetto:
pkg search -R apache24
# name: "apache24"
# origin: "www/apache24"
# version: "2.4.38"
# comment: "Version 2.4.x of Apache web server"
# maintainer: "[email protected]"
# www: "https://httpd.apache.org/"
# abi: "FreeBSD:12:amd64"
# arch: "freebsd:12:x86:64"
# prefix: "/usr/local"
# . . .
# . . .
Questo comando ti darà molte informazioni utili sul pacchetto.
Installare i pacchetti
Per installare il software, utilizzare il install
sottocomando e il nome di un pacchetto per installare:
pkg install apache24
Quando si installano i pacchetti con pkg install
, pkg
consulta il catalogo dei pacchetti locale, quindi scarica il pacchetto richiesto dal repository all'indirizzo pkg.FreeBSD.org
. Una volta installato, il pacchetto è registrato in un database SQLite conservato /var/db/pkg/local.sqlite
. Fare attenzione a non eliminare questo file, altrimenti il sistema perderà la traccia dei pacchetti installati. Se il software ha dipendenze, pkg
le capirà e le installerà insieme al pacchetto base. I pacchetti installati come dipendenze sono chiamati pacchetti automatici .
Il gestore pacchetti ha la possibilità di scaricare i pacchetti solo su Internet e salvarli in una posizione sul disco. Ciò ti consente di installarli in un altro momento. È possibile utilizzare il pkg fetch
comando per scaricare il pacchetto senza installarlo:
pkg fetch nginx
Questo comando recupererà solo Nginx senza le sue dipendenze. È possibile utilizzare il -d
flag per afferrare tutte le dipendenze e il pacchetto denominato:
pkg fetch -d nginx
I pacchetti vengono scaricati nella directory della cache dei pacchetti /var/cache/pkg
. Dopo aver recuperato i pacchetti, pkg
li aggiungeranno a questa directory. Puoi elencare i file per vedere cosa contiene:
ls /var/cache/pkg
Ora, per installare un pacchetto scaricato dopo un recupero, eseguirlo pkg install
normalmente. Il processo di installazione utilizza i file memorizzati nella cache anziché quelli scaricati.
Nel tempo, la directory della cache del pacchetto può diventare grande. Il pkg clean
comando rimuove tutti i pacchetti memorizzati nella cache che sono stati sostituiti da versioni più recenti, nonché tutti i file dei pacchetti che non si trovano più nel repository:
pkg clean
Se si desidera rimuovere tutti i pacchetti memorizzati nella cache, utilizzare il -a
flag:
pkg clean -a
Se si desidera pulire automaticamente la cache del pacchetto dopo ogni installazione o aggiornamento di ciascun pacchetto, impostare l' pkg.conf
opzione AUTOCLEAN
su true
.
Se si dimentica quali pacchetti sono stati installati su un sistema, è possibile utilizzare pkg info
per ottenere un elenco completo del software installato:
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
# . . .
# . . .
Se si desidera ulteriori informazioni su un pacchetto installato, utilizzare pkg info
e il nome del pacchetto. Questo mostra i dettagli di installazione del pacchetto in un rapporto a misura d'uomo:
pkg info nginx
# nginx-1.14.2_3,2
# Name : nginx
# Version : 1.14.2_3,2
# . . .
# . . .
Puoi vedere molte informazioni utili come la versione del software, l'ora dell'installazione del software, la licenza del software, i flag di compilazione e altro ancora. Controlla la pkg-info
pagina man per i dettagli completi.
Rimozione di pacchetti
Per disinstallare i pacchetti binari utilizzare il pkg delete
sottocomando. È disponibile anche come pkg remove
:
pkg delete nginx
# or
pkg remove nginx
Verrà visualizzato un elenco di pacchetti da rimuovere e la quantità di spazio che verrà liberata.
Se si rimuove un pacchetto da cui dipendono altri pacchetti, vengono pkg
rimossi anche i pacchetti dipendenti.
Bloccare i pacchetti
Potrebbe esserci un momento in cui si desidera che un pacchetto sul proprio server non si aggiorni mai. Quando si blocca un pacchetto, pkg
non verrà aggiornato, downgrade, disinstallato o reinstallato. Applica le stesse regole alle dipendenze del pacchetto e ai programmi da cui dipende.
Utilizzare pkg lock
per bloccare un pacchetto:
pkg lock openssl
Questo openssl
pacchetto è ora bloccato.
Per elencare tutti i pacchetti attualmente bloccati sul sistema, usare il -l
flag:
pkg lock -l
Per rimuovere il blocco utilizzare il pkg unlock
comando:
pkg unlock openssl
Per bloccare o sbloccare tutti i pacchetti sul sistema contemporaneamente, utilizzare il -a
flag:
pkg lock -a
pkg unlock -a
Repository di pacchetti
I repository di pacchetti sono supportati da pkg
, che sono denominati raccolte di pacchetti. È possibile aggiungere, rimuovere, abilitare e disabilitare i repository. È necessario configurare ciascun repository nel proprio file utilizzando il formato UCL. I repository ufficiali di FreeBSD appartengono alla /etc/pkg
directory. FreeBSD viene fornito con il repository "FreeBSD" abilitato. Troverai il suo file di configurazione 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
}
È possibile aggiungere e rimuovere repository secondo necessità. Come /etc/pkg
riservato ai repository ufficiali di FreeBSD, avrai bisogno di un'altra directory. La posizione tradizionale è /usr/local/etc/pkg/repos
. Se si desidera utilizzare una directory diversa, è necessario impostare un percorso pkg.conf
con l' REPO_DIRS
opzione. La directory del repository locale non esiste per impostazione predefinita, quindi dovrai crearla con mkdir -p /usr/local/etc/pkg/repos
. Inserisci le tue configurazioni di repository in quella directory.
pkg
Sottocomandi di esempio
Questa sezione elencherà alcuni dei sottocomandi più frequentemente usati che molto probabilmente userete quando amministrerete un server 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
File e directory importanti
- Il
pkg
file di configurazione -/usr/local/etc/pkg.conf
- Directory riservata ai repository ufficiali di FreeBSD -
/etc/pkg
- File del repository di FreeBSD -
/etc/pkg/FreeBSD.conf
- Posizione tradizionale per repository personalizzati -
/usr/local/etc/pkg/repos
- Directory cache pacchetto -
/var/cache/pkg
- Database SQLite -
/var/db/pkg/local.sqlite
Sommario
FreeBSD offre due tecnologie complementari per l'installazione di software di terze parti: la Collezione di porte FreeBSD, per l'installazione da sorgenti e pacchetti, per l'installazione da file binari predefiniti. Mentre FreeBSD sta spostando il sistema in modo più deciso verso la gestione universale dei pacchetti, prova a gestire software di terze parti pkg
nella misura del possibile. Evitare di utilizzare le porte a meno che il software desiderato non abbia una versione in pacchetto o non sia necessario personalizzare le opzioni di compilazione.