introduzione
UN sistema di gestione dei pacchetti o gestore di pacchetti è un gruppo di strumenti software. Automatizza il processo di installazione, il processo di aggiornamento, il processo di configurazione e il processo di rimozione dei programmi informatici per un sistema operativo del computer in modo efficiente. UN gestore dei pacchetti funziona con pacchetti, dati all'interno di file di archivio e distribuzioni software.
I pacchetti includono metadati come nome del software, descrizione del suo obiettivo, checksum (preferibilmente una funzione hash crittografica), d elenco delle dipendenze, fornitore, E numero della versione essenziale per il corretto funzionamento del software.
- I metadati vengono salvati nel database di un pacchetto locale al momento dell'installazione.
- In genere, i gestori di pacchetti gestiscono il database delle informazioni sulla versione e le dipendenze del software per prevenire prerequisiti mancanti e mancate corrispondenze del software.
- Operano a stretto contatto con app store, gestori di repository binari e repository software.
- I gestori di pacchetti sono sviluppati per eliminare la necessità di aggiornamenti e installazioni manuali.
- In particolare, può essere utile per le grandi organizzazioni i cui sistemi operativi combinano in genere centinaia o molti più pacchetti software diversi.
Funzioni del Gestore pacchetti
Un pacchetto software può essere definito come file di archivio combinando un programma per computer e metadati essenziali per lo sviluppo. Il programma di sistema potrebbe trovarsi all'interno del codice sorgente che deve essere prima creato e compilato.
I metadati del pacchetto contengono la versione del pacchetto, la descrizione del pacchetto e le dipendenze (pacchetti che richiedono essere installati preventivamente). Molti gestori di pacchetti hanno l'azione di installare, disinstallare, mantenere o trovare pacchetti software sotto il comando dell'utente.
IL sistema di gestione dei pacchetti contiene alcuni tipici funzioni che sono menzionati di seguito:
- Gestione degli archiviatori di file per l'estrazione degli archivi dei pacchetti.
- Garantire l'autenticità e l'integrità del pacchetto autenticando rispettivamente i certificati digitali e i checksum.
- Aggiornamento, installazione, download o ricerca di software esistente tramite un app store o un repository di software.
- Combinazione di pacchetti tramite funzione per ridurre la confusione dell'utente.
- Mantenere le dipendenze per garantire che un pacchetto sia stato installato insieme a tutti i pacchetti di cui ha bisogno. Quindi, ignorando 'inferno della dipendenza'.
Front-end per pacchetti compilati (localmente)
Amministratori di sistema potrebbe installare e gestire il software con l'aiuto di alcuni strumenti diversi dal software di gestione dei pacchetti. Per esempio, un amministratore locale potrebbe scaricare il codice sorgente (non confezionato), compilarlo e quindi installarlo.
Ciò potrebbe causare la mancata sincronizzazione dello stato del sistema locale insieme al database dello stato del gestore pacchetti. Sarebbe necessario che l'amministratore locale adottasse alcune misure aggiuntive come l'integrazione manuale delle modifiche in un gestore di pacchetti o la gestione di alcune dipendenze.
.04 come frazione
Sono presenti alcuni strumenti per garantire che i pacchetti vengano compilati (localmente) sono sviluppati con la gestione dei pacchetti.
ControllaInstalla è disponibile per .rpm O distribuzioni basate su file .deb E Slackware Linux anche. Per ibrido sistemi come ArcoLinux E sistemi basati su ricette Piace GentooLinux, è possibile specificare inizialmente una ricetta, che poi conferma che un pacchetto rientra in un database di pacchetti locale.
Sfide con le biblioteche distribuite
Vari sistemi informatici che dipendono dal collegamento di librerie dinamiche, piuttosto che dal collegamento di librerie statiche, distribuiscono le librerie di istruzioni macchina (eseguibili) tra applicazioni e pacchetti.
In questi tipi di sistemi, le relazioni tipiche tra pacchetti distinti che necessitano di versioni della libreria risultano in una sfida chiamata 'inferno della dipendenza'.
È anche noto come 'DLL inferno' su Microsoft Windows quando si ha a che fare con le librerie collegate in modo dinamico. Una buona gestione dei pacchetti è fondamentale per questi sistemi.
Da PASSO APERTO , il sistema framework è stato un tentativo di risolvere questo problema, consentendo l'installazione simultanea di più versioni di libreria e la possibilità per molti pacchetti software di descrivere a quale versione sono collegati.
Manutenzione della configurazione
Gli aggiornamenti del file di configurazione sono particolarmente problematici con gli aggiornamenti del software. Almeno su Unix, poiché i gestori di pacchetti sono nati come estensione dell'utilità di archiviazione dei file.
Di solito, conservano o sovrascrivono solo i file di configurazione, invece di utilizzare regole per essi. Possono sorgere diversi problemi quando il formato del file di configurazione viene modificato. Ad esempio, se un vecchio file di configurazione non disabilita esplicitamente le opzioni più recenti, è necessario visualizzarle. Alcuni gestori di pacchetti come dpkg di Debian, consentono la configurazione al momento dell'installazione. In alcuni altri casi, è preferibile installare i pacchetti utilizzando la configurazione predefinita e sovrascrivere la configurazione durante l'installazione (headless) su un gran numero di sistemi. Questo tipo di installazione (preconfigurata) è supportata anche tramite dpkg.
Soppressione degli aggiornamenti
È tradizione rendere disponibile all'utente insieme all'elenco delle azioni da eseguire (di solito l'elenco dei pacchetti da aggiornare e fornire eventualmente i numeri di versione nuova e vecchia) se un utente collabora con il software di gestione dei pacchetti per effettuare l'aggiornamento.
Consente all'utente di selezionare un singolo pacchetto per gli aggiornamenti o di eseguire un aggiornamento in blocco. Vari gestori di pacchetti potrebbero essere configurati per non aggiornare mai molti pacchetti o per aggiornarli solo se vengono rilevate instabilità o vulnerabilità critiche nel vecchio standard, come specificato dal pacchetto software. A volte, questo processo è noto come blocco della versione.
Per esempio:
yum lo supporta con il file escludere=openoffice* sintassi
pacman con la sintassi Ignora=openoffice (in entrambi i casi, per sopprimere l'aggiornamento di OpenOffice)
dselect e dpkg lo supportano parzialmente tramite il flag hold all'interno delle selezioni dei pacchetti.
l'attitudine ha 'vietare' E 'Presa' bandiere.
portage lo supporta tramite un file di configurazione, ovvero pacchetto.maschera.
APT estende la bandiera, ovvero Presa dal complesso 'appuntare' metodo (gli utenti possono anche inserire nella lista nera il pacchetto).
Repository
Per fornire agli utenti un controllo extra sui tipi di software che consentono l'installazione sul proprio sistema (a volte per comodità e ragioni legali da parte del distributore), il software viene talvolta scaricato utilizzando molti repository software.
tokenizzatore di stringhe java
Rimozione del pacchetto a cascata
Alcuni degli aspetti di gestione dei pacchetti più sviluppati facilitano 'rimozione dei pacchetti a cascata', dove vengono rimossi anche ogni pacchetto che fa affidamento sul pacchetto di destinazione e ogni pacchetto su cui fa affidamento il pacchetto di destinazione.
Confronto dei comandi
Tuttavia, i comandi sono univoci per tutti i gestori di pacchetti specifici. Questi comandi sono in larga misura traducibili perché la maggior parte dei gestori di pacchetti facilitano le stesse funzioni.
Prevalenza del Package Manager
I gestori di pacchetti come dpkg sono disponibili già dal 1994. Diverse distribuzioni di Linux orientate ai pacchetti binari fanno molto affidamento sul sistema di gestione dei pacchetti a causa del loro mezzo principale per la manutenzione e la gestione del software.
Molti sistemi operativi mobili come Windows Phone, iOS (simile a Unix) e Android (basato su Linux) dipendono quasi dal rispettivo App Store del fornitore. Pertanto, utilizzano il loro sistema di gestione dei pacchetti (dedicato).
Confronto con gli Installatori
Spesso un gestore di pacchetti è noto come an 'gestore installazione'. Può causare confusione tra installatori e gestori di pacchetti. Alcune delle principali differenze sono riportate di seguito:
Criterio | Gestore dei pacchetti | Installatore |
---|---|---|
Spedito con | Di solito, il sistema operativo | Tutti i programmi per computer |
Posizione delle informazioni di installazione | Un database centrale per l'installazione | È interamente a discrezione dell'installatore. Può essere un file nella cartella dell'app o tra le cartelle e i file del sistema operativo. Potrebbero registrarsi nell'elenco di un programma di disinstallazione senza divulgare le informazioni di installazione. |
Ambito di manutenzione | Potenzialmente ogni pacchetto su un sistema | Proprio il prodotto con cui era confezionato |
Sviluppatore | Fornitore unico del gestore pacchetti | Più di un fornitore di installatori |
Formato del pacchetto | Una manciata di formati riconosciuti | Possono esserci tanti formati quanti sono i numeri dell'app |
Compatibilità del formato del pacchetto | Potrebbe essere utilizzato fintanto che un gestore di pacchetti lo utilizza. O l'utente non aggiorna un gestore di pacchetti oppure le nuove versioni del gestore di pacchetti continuano a supportarlo. | Se il programma di installazione utilizza qualsiasi formato di archivio, sarà sempre compatibile con esso. Tuttavia, gli installatori possono essere influenzati dal marciume del software come ogni computer. |
Confronto con l'utilità di automazione
Quasi tutti i sistemi di gestione della configurazione software rappresentano la distribuzione del software e la creazione di software come separate. In genere, l'utilità di automazione della compilazione prende i file del codice sorgente che sono già in formato leggibile dall'uomo su un sistema e accelera la procedura di conversione in un pacchetto eseguibile (binario) su un sistema simile.
In genere, un gestore di pacchetti eseguito successivamente su alcuni altri sistemi scarica i pacchetti eseguibili (binari precostruiti) su Internet e quindi li installa.
Tuttavia, entrambi i tipi di strumenti includono diversi fattori comuni menzionati di seguito:
- L'ordinamento topologico del grafico delle dipendenze viene applicato all'interno di un gestore di pacchetti per gestire le dipendenze tra molti componenti binari.
- Inoltre, viene applicato all'interno di un build manager per gestire la dipendenza tra molti componenti sorgente.
- Vari makefile forniscono il loro supporto, non solo la creazione di eseguibili.
- Inoltre, supportano l'installazione di, utilizzando make install.
- Tutti i gestori di pacchetti supportano la traduzione del codice sorgente (leggibile dall'uomo) in eseguibili binari e quindi lo installano per la distribuzione basata sul codice sorgente come Homebrew, Sorcery, Portage, ecc.
Alcuni strumenti come A-A-P E Fare sono sviluppati per gestire sia la distribuzione che la creazione. Possono anche essere utilizzati come gestore di pacchetti o come utility di automazione della compilazione o entrambi.
Gestori di pacchetti di base e relativi formati
Gestore di pacchetti universale
È anche chiamato gestore del repository binario. Questo gestore di pacchetti è uno strumento software creato per ottimizzare l'archiviazione e scaricare file binari, pacchetti e artefatti prodotti e utilizzati all'interno di un processo di sviluppo software.
Gestori di pacchetti universali attenzione a standardizzare la moda che gli utenti trattano ogni tipo di confezione. Forniscono agli utenti la possibilità di utilizzare metriche di conformità e sicurezza per ciascun tipo di artefatto. Sono stati assegnati come se si trovassero nel mezzo di a Catena di strumenti DevOps.
Sistemi software open source e gratuiti
I pacchetti su licenze compatibili e simili esistono per l'uso su diversi sistemi operativi secondo il comportamento del software open source e gratuito.
Questi pacchetti potrebbero essere distribuiti e combinati utilizzando sistemi di confezionamento internamente complessi e configurabili per gestire diversi conflitti, dipendenze e permutazioni software specifici della versione.
Inoltre, alcuni sistemi di confezionamento di software open source e libero sono essi stessi pubblicati come software open source e libero.
Una differenza tra la gestione dei pacchetti nei sistemi operativi come Windows e Mac OS X e quelli nel software open source e libero, come Linux è che i sistemi software open source e gratuiti consentono l'aggiornamento e l'installazione di pacchetti di terze parti da un meccanismo simile . Invece, molti gestori di pacchetti di Windows e Mac OS X aggiorneranno il software fornito rispettivamente da Microsoft e Apple.
La possibilità di aggiornare continuamente il software di terze parti viene aggiunta includendo l'URL del repository corrispondente nel file di configurazione della gestione dei pacchetti.
Formati dei pacchetti
Tutti i gestori di pacchetti dipendono dai metadati e dal formato dei pacchetti che potrebbero gestire. I gestori di pacchetti richiedono che i gruppi di file siano raggruppati per il particolare gestore di pacchetti con metadati adeguati come dipendenze.
Una raccolta principale di utilità spesso gestisce l'installazione generale tramite questi pacchetti e più di un gestore di pacchetti applica queste utilità per fornire funzionalità aggiuntive.
Esempio:
- yum dipende da RPM come backend. Yum sviluppa la funzionalità di backend aggiungendo aspetti come la semplice configurazione per mantenere la rete del sistema.
- Il gestore dei pacchetti synaptic fornisce una GUI applicando la libreria dell'Advanced Packaging Tool che dipende da dpkg.
Alieno può essere definito come un programma che traduce tra formati di pacchetti Linux distinti. Supporta la conversione tra Slackware (.tgz, .tlz, .tbz, .txz) Pacchetti, Pacchetti Solaris (.pkg), Stampede (.slp), .deb, .rpm, E Base standard Linux (LSB) conforme.
In diversi sistemi operativi mobili come Google Play utilizza il formato del pacchetto di Pacchetto di applicazioni Android (in breve APK ) mentre il Windows Store utilizza i formati di XAP E CIRCA. Entrambi Windows Store E Google Play contengono gestori di pacchetti omonimi.
Gestori di pacchetti a livello di applicazione
Esistono alcuni gestori di pacchetti (componenti aggiuntivi) per sistemi operativi per linguaggi di programmazione e con funzionalità limitate in cui gli sviluppatori richiedono le librerie attuali. I gestori di pacchetti a livello di applicazione si concentrano sulla piccola parte del sistema software a differenza dei gestori di pacchetti a livello di sistema.
In genere, risiedono in un albero di directory. Non è organizzato da un gestore di pacchetti a livello di sistema come /usr/local/fink O c:cygwin. Tuttavia, potrebbe non essere la condizione per un gestore di pacchetti che funzioni con le librerie di programmazione, causando un possibile conflitto poiché entrambi i gestori di pacchetti potrebbero interrompere gli aggiornamenti e richiedere di 'Proprio' il file.