Comando apk: installare e aggiornare pacchetti su Alpine Linux
apk, Alpine Package Keeper, gestisce i pacchetti di Alpine Linux: cerca software, lo installa, lo rimuove e aggiorna le versioni installate. apk update aggiorna gli indici dei repository; apk upgrade applica gli aggiornamenti dei pacchetti. La conservazione delle modifiche dipende dal tipo di installazione, soprattutto nei sistemi diskless e nei container.
apk add aggiunge una richiesta alla selezione desiderata del sistema; apk del la elimina. Queste richieste, o vincoli, sono registrate in /etc/apk/world: il file non è l'inventario completo delle dipendenze installate automaticamente. Il gestore risolve le dipendenze necessarie per soddisfare tale selezione.
Sintassi e preparazione
apk [global options] command [package...]
Le parentesi quadre indicano elementi facoltativi: sostituisci i segnaposto con il sottocomando e i nomi reali, senza copiarli letteralmente. Controlla la versione con apk --version e le opzioni disponibili con apk --help e, per esempio, apk info --help. Se installato, anche man apk fornisce il manuale locale; le opzioni e alcuni dettagli dell'output possono cambiare fra apk-tools 2 e 3.
Gli esempi che modificano il sistema usano sudo, ma un'installazione minima di Alpine può non includerlo. In una shell amministrativa già autorizzata esegui gli stessi comandi senza sudo, oppure usa doas se è già configurato. La ricerca e la lettura del database locale normalmente non richiedono privilegi amministrativi.
Prima di installare o aggiornare, verifica i repository in /etc/apk/repositories: devono essere adatti alla versione e all'architettura del sistema. Non mescolare indiscriminatamente una release stabile con edge per trovare un pacchetto. Assicurati di avere spazio libero, connettività e un backup recuperabile delle configurazioni e dei dati importanti.
Cercare, installare e aggiornare pacchetti
Ricerca di un pacchetto
apk search nginx
Il comando cerca nomi corrispondenti negli indici disponibili e può mostrare più pacchetti, compresi componenti aggiuntivi. I risultati dipendono dai repository abilitati e dagli indici presenti: non indicano che il software sia già installato. Se non trovi il pacchetto, controlla prima repository e aggiornamento degli indici, senza scaricare pacchetti casuali da fonti sconosciute.
Installazione del pacchetto scelto
sudo apk add nginx
add seleziona nginx e risolve le dipendenze necessarie. Leggi il piano e l'esito della transazione, compresi eventuali errori di download o conflitti. La presenza del pacchetto non dimostra che il servizio sia configurato, avviato o raggiungibile: configurazione del server e gestione del servizio sono verifiche separate. Ripetere un'installazione non equivale a ottenere automaticamente una configurazione funzionante.
Aggiornamento degli indici e dei pacchetti
sudo apk update
sudo apk upgrade
Esegui la prima riga e controllane l'esito prima della seconda. update scarica le informazioni dei repository; da solo non sostituisce le versioni dei programmi installati. upgrade risolve gli aggiornamenti consentiti dai repository e dai vincoli correnti: non promette la versione più recente pubblicata da ciascun autore. Se gli indici non vengono aggiornati correttamente, correggi l'errore prima di proseguire.
Non usare questa sequenza come procedura universale per passare a una nuova release di Alpine. Il cambio di release richiede le istruzioni specifiche della distribuzione, inclusa la verifica dei repository. Dopo un aggiornamento controlla le configurazioni e i servizi interessati; i processi già in esecuzione possono richiedere un riavvio e un aggiornamento del kernel può richiedere il riavvio del sistema.
Verificare un pacchetto installato
apk info -e verifica se il nome specificato corrisponde a un pacchetto installato. Per esempio, in un ambiente Alpine con busybox presente:
apk info -e busybox
Un esempio di output è:
busybox
L'output riportato è illustrativo: controlla il comportamento della versione locale con apk info --help. Per uno script verifica anche lo stato di uscita, leggendo echo $? subito dopo il comando: non confondere una verifica negativa con un errore di accesso al database o con un'opzione non disponibile. Non basarti esclusivamente sull'aspetto del testo stampato.
La verifica riguarda il database dei pacchetti, non il funzionamento di tutte le applicazioni né l'integrità o la sicurezza dell'intero sistema. Analogamente, un apk update riuscito conferma un'operazione sugli indici e non dimostra che i pacchetti installati siano stati aggiornati.
Sottocomandi e opzioni principali
| Comando o opzione | Funzione e limite |
|---|---|
search / info |
Cercano candidati o mostrano informazioni; le opzioni di info determinano quali dati vengono interrogati. |
add / del |
Aggiungono o rimuovono vincoli della selezione desiderata; la risoluzione delle dipendenze determina i cambiamenti effettivi. |
update |
Aggiorna gli indici dei repository, senza aggiornare i programmi installati. |
upgrade |
Aggiorna i pacchetti secondo repository e vincoli configurati; non cambia da solo il ramo della distribuzione. |
--no-cache |
Disabilita l'uso della cache locale per l'operazione. È utile nelle immagini container per evitare di conservarvi gli indici scaricati; non significa operare senza rete. |
La documentazione ufficiale dell'immagine Alpine per Docker mostra l'uso di apk add --no-cache nginx. Evitare la cache non elimina i pacchetti installati e non rende persistenti le modifiche di un container. Non applicare una strategia di eliminazione della cache a un sistema diskless senza valutarne il ruolo nell'avvio.
Rimozione, configurazioni e persistenza
apk del toglie il vincolo richiesto e può eliminare anche dipendenze non più necessarie. Se un pacchetto è ancora richiesto da altri, il risultato dipende dalla risoluzione delle dipendenze: non presumere che ogni nome indicato venga rimosso isolatamente. Non aggiungere opzioni ricorsive o di forzatura per aggirare un errore senza comprenderne il piano di rimozione. Conserva i backup dei dati delle applicazioni: reinstallare il pacchetto non è una procedura generale di ripristino dei dati.
Quando una configurazione locale deve essere preservata, apk può scrivere la nuova versione con suffisso .apk-new. Confronta i file e integra le modifiche necessarie prima di riavviare il servizio; non sostituire automaticamente la configurazione funzionante. Mantieni accessibile un metodo di recupero, soprattutto se stai modificando da remoto rete o accesso amministrativo.
In modalità diskless il sistema lavora in RAM. La selezione dei pacchetti e le configurazioni da conservare devono rientrare nella strategia di persistenza, con Alpine Local Backup (lbu) e una cache dei pacchetti opportunamente configurata quando necessaria all'avvio. lbu status aiuta a controllare le modifiche considerate; lbu commit salva quanto previsto dalla configurazione di lbu sul supporto persistente. Non è un backup automatico di tutti i file o dei dati di tutte le applicazioni: verifica inclusioni, esclusioni, destinazione e recuperabilità. La guida ufficiale di Alpine Local Backup descrive questi limiti.
In un container, il riavvio dello stesso container e la sua ricreazione da un'immagine sono eventi diversi. Un'installazione manuale nello strato scrivibile può restare nel primo caso e scomparire nel secondo. Per un ambiente riproducibile registra l'installazione nel Dockerfile o nella configurazione di costruzione dell'immagine, ricostruisci e distribuisci l'immagine aggiornata; conserva separatamente i dati che devono sopravvivere alla ricreazione.
Domande frequenti
Qual è la differenza tra apk add e apk update?
add seleziona e installa pacchetti con le dipendenze necessarie; update aggiorna soltanto gli indici. Per aggiornare le versioni installate si usa upgrade, rispettando i repository e i vincoli del sistema.
Basta installare un pacchetto per conservarlo dopo un riavvio?
Dipende dall'installazione. Su un sistema diskless occorre verificare salvataggio della configurazione e disponibilità dei pacchetti all'avvio. In un container ricreato da un'immagine precedente l'installazione manuale può andare persa: deve essere inclusa nell'immagine o nella procedura di distribuzione.
Documentazione ufficiale
Il manuale Alpine sull'uso di apk spiega selezione dei pacchetti, dipendenze e configurazioni. La guida Alpine Package Keeper approfondisce sottocomandi e differenze fra generazioni del gestore; per le opzioni effettivamente disponibili usa anche l'aiuto della versione installata.




