Come configurare smartphone e PC. Portale informativo
  • casa
  • Ferro
  • Nozioni di base sulla gestione dei pacchetti: apt, yum, dnf, pkg. Utilizzo di Yum con un server proxy

Nozioni di base sulla gestione dei pacchetti: apt, yum, dnf, pkg. Utilizzo di Yum con un server proxy

Yum e RPM sono ottimi strumenti di gestione dei pacchetti, ma hanno alcune opzioni e funzionalità poco conosciute che ti consentono di fare cose molto interessanti. Non devi necessariamente usarli, ma un giorno potrebbero tornare utili.

1. Visualizzazione del tipo di architettura nell'RPM risultante

Questa semplice piccola cosa è abbastanza facile da fare e sarà molto utile per le persone che usano i sistemi x86_64. Una riga in ~/.rpmmacros ti farà risparmiare un sacco di problemi in seguito.

echo "%_query_all_fmt %%(name)-%%(version)-%%(release).%%(arch)" >> ~/.rpmmacros

2. Richiedi pacchetti non da CentOS

Vuoi ottenere un elenco di pacchetti installati da repository di terze parti non CentOS?

Rpm -qa --qf "%(NOME) %(FORNITORE)\n" | grep -v CentOS

3. Ripristina i permessi dei file

Hai un pasticcio completo con i permessi sui file nel pacchetto? Non preoccuparti, RPM si occuperà di questo.

RPM --setperms

4. Visualizza le modifiche

Poiché CentOS e il fornitore di codice originale rilasciano aggiornamenti di sicurezza, i numeri di versione possono essere fuorvianti quando si esaminano i CVE di correzione. Verifica delle modifiche nel pacchetto buon modo vedere se sono state apportate correzioni o meno. Ancora una volta, RPM viene in soccorso.

Giri/min -q --changelog | meno

L'uso di "less" è facoltativo, ma per alcuni pacchetti, come il kernel, le modifiche possono essere piuttosto estese. Pertanto, questa aggiunta rende l'output più leggibile.

5. Dov'è la documentazione?

Per ottenere rapidamente la documentazione associata a un pacchetto, puoi utilizzare le due opzioni seguenti:

  • Questo ti mostrerà la documentazione contenuta in quel rpm. Se hai solo il nome del file, allora:
rpm -qdf /percorso/del/file
  • e rpm ti mostrerà la documentazione nel pacchetto che possiede quel file.

6. Origine del pacco

A volte vuoi sapere dove hai preso uno o più pacchetti, quanti pacchetti hai sul tuo sistema da un particolare repository o fornitore. Ci sono diverse opzioni di ricerca che puoi usare. Anche se non sono perfetti al 100%, possono comunque aiutare. La maggior parte dei pacchetti dei repository hanno tag con un ID nella riga Release. Ad esempio, utilizza rpmforge rf come identificatore. Puoi usarlo per vedere cosa hai installato da lì:

Giri/min -q release="*rf*"

e se vuoi vedere quanti pacchetti Johnny Hughes hai installato puoi usare:

Rpm -qa packager="Johnny*"

Questo metodo funziona sulla maggior parte delle categorie come rpm -qi

Questo comando restituirà l'intero elenco pacchetti installati.

7. Estrarre un solo file

Se devi estrarre un solo file da rpm senza reinstallare l'intero pacchetto, puoi farlo con rpm2cpio. Ad esempio, per estrarre un solo file da un logrotate rpm, utilizzare quanto segue:

Rpm2cpio logrotate-1.0-1.i386.rpm |cpio -ivd etc/logrotate.conf

8. Richiedi la data di installazione del pacchetto

Utile dopo l'aggiornamento per trovare vecchi pacchetti che non sono stati aggiornati.

Rpm -qa --last >~/RPMS_by_Install_Date

È possibile utilizzare "meno" per l'output per trovare tutti gli RPM precedenti alla data di installazione. Usando anche grep - specifica i pacchetti e la data di installazione.

9. Richiedi i pacchetti disponibili dal repository

Trova tutti i pacchetti disponibili da un repository specifico, come RPMforge. I pacchetti già installati da questo repository non verranno mostrati.

Yum --disable "*" --enable elenco "rpmforge" disponibile

10. Cerca utilizzando YUM nel repository del pacchetto per una determinata stringa

Cerca i pacchetti che contengono la stringa desiderata nel nome o nella descrizione del pacchetto.

yum cerca buildrpmtree | meno

11. Utilizzo di Yum con un server proxy

Per far funzionare Yum tramite un server proxy, devi aggiungere il seguente parametro a /etc/yum.conf:

Proxy=http://tuoproxy:8080/

dove - yourproxy è il nome del server proxy e 8080 è la porta del server proxy. Se il server richiede l'autenticazione, è possibile specificare l'accesso come:

proxy=http://nome utente: [email protetta]:8080/

RPM Package Manager consente di utilizzare variabili di ambiente proxy. Questo può essere impostato in /etc/profile o specifico a utente specifico nel file ~/.bash_profile::

Esporta http_proxy=http://yourproxy:8080/ export ftp_proxy=http://yourproxy:8080/

Per usare wget tramite un proxy, aggiungi righe seguenti in /etc/wgetrc

http://tuoproxy:8080/ ftp_proxy=http://tuoproxy:8080/

In entrambi i casi è possibile impostare login e password come nell'esempio sopra.

12. Utilizzo di Yum per installare un pacchetto locale, verificando e soddisfacendo automaticamente le dipendenze

yum --nogpgcheck localinstall nomepacchetto.arch.rpm

13. Ottenere e ricostruire un pacchetto senza essere root

A volte hai solo bisogno di ricostruire un pacchetto particolare, magari aggiungere semplicemente opzioni di configurazione che semplicemente non esistono nel pacchetto principale. O perché hai trovato un pacchetto richiesto che non è nel repository, ma sul sito degli sviluppatori RPM per un'altra distribuzione. Pertanto, dovresti ottenere src.rpm e ripristinarlo a tuo piacimento. Ma non vuoi davvero farlo come superutente. Quindi, come ricostruisci i tuoi pacchetti nel tuo directory home sotto il proprio conto.

13.1 Metodo A

Per prima cosa devi impostare una directory per il lavoro. Ha una somiglianza abbastanza completa nella struttura con la directory /usr/src/redhat:

$ cd $ mkdir -p redhat/(SRPMS,RPMS,SPECS,BUILD,SOURCES) $ ls redhat/ BUILD RPMS FONTI SPECIFICHE SRPMS $

Usando la macro rpm, faremo una sostituzione in modo che rpmbuild impari su di noi e cosa deve essere costruito:

$ echo "%_topdir /home/testuser/redhat" >> .rpmmacros $ echo "%packager Test utente" >> .rpmmacros $ cat .rpmmacros %_topdir /home/testuser/redhat %packager Test utente $

Esattamente. Il prossimo passo è impostare rpmbuild --rebuild foo.src.rpm , il risultato del lavoro sarà nel file ~/redhat/RPMS/i386 (o nell'architettura con cui hai costruito il pacchetto).

13.2 Metodo B

Per CentOS-4, imposta il repository kbs-Extras (facoltativamente aggiungi kbs-Misk) dalla pagina e "yum install fedora-rpmdevtools" come root usando "sudo" o "su -". Ottieni un utente (potresti voler usare un account speciale per evitare problemi nella tua normale home directory) ed esegui "fedora-buildrpmtree" e ~/rpmbuild/... nell'albero delle directory e il file ~/.rpmmacros lo farà essere creato automaticamente. (Nota "rpmbuild" rispetto a "RedHat" nel metodo A.)

Per CentOS-5, il pacchetto rpmdevtools non è disponibile. In FC6 SRPM rpmdevtools-5.3-1.fc6.src.rpm compila e funziona.

Di seguito è riportata una macro per ottenere i nomi propri di alcuni pacchetti (sostituisci la versione di distribuzione appropriata per "el4" con la tua):

$ echo "%dist .el4" >> .rpmmacros

14. Visualizza le priorità per tutti i repository installati

Puoi ottenere un elenco di tutti i repository che hai installato - yum ripulisci tutto. Tuttavia, non mostra l'indice di priorità. Ecco la linea necessaria per questo. Se il numero non è definito, il valore predefinito è la priorità più bassa (99).

Gatto /etc/yum.repos.d/*.repo | sed -n -e "/^\# yum list "vim*" Pacchetti installati vim-minimal.i386 2:7.0.109-7.el5 installato Pacchetti disponibili vim-X11.i386 2:7.0.109-7.el5 base vim-augeas.i386 0.9.0-2.el5.rf rpmforge vim-clustershell.noarch 1.5.1-1.el5 epel vim-common.i386 2:7.0.109-7.el5 base vim-enhanced.i386 2: 7.0.109-7.el5 base vim-halibut.i386 1.0-2.20100504svn8934.el5.1 epel vim-puppet.noarch 2.7.9-1.el5.rf rpmforge

16. Mostra tutte le chiavi GPG installate

Mostra un elenco di tutte le chiavi con le informazioni sul repository corrispondenti:

Rpm -q gpg-pubkey --qf "%(nome)-%(versione)-%(versione) --> %(riepilogo)\n"

17. Firma del pacco

Vuoi firmare il tuo pacco che hai assemblato in modo che altri possano verificarne l'autenticità? Puoi farlo abbastanza semplicemente. Consulta la documentazione.

Nota: per CentOS 5 e 4, è meglio se utilizzi una chiave DSA per la firma (poiché la versione 4 RSA presentava problemi di convalida).

18. Metapacchetti YUM

Un metapacchetto è un pacchetto speciale che non contiene alcun software, ma ha un determinato insieme di software come dipendenze. Per esempio: installando X sul server.

Per visualizzare un elenco di tutti i metapacchetti, è necessario eseguire il comando: yum lista di gruppo. Ma se hai una lingua russa, l'elenco verrà visualizzato in russo. Per ottenere un elenco adatto all'installazione (in inglese), impostare la lingua di output del comando su inglese:

LANG=C yum grouplist

19. Come elencare i pacchetti installati

I pacchetti installati possono mostrare comandi

Yum list installato

Esempio, ottieni un elenco di pacchetti installati da un repository:

# yum list installato | grep ius php71u-cli.x86_64 7.1.17-1.ius.el6 @ius php71u-common.x86_64 7.1.17-1.ius.el6 @ius php71u-embedded.x86_64 7.1.17-1.ius.el6 @ius php71u-fpm.x86_64 7.1.17-1.ius.el6 @ius 7.1.17-1.ius.el6 @ius php71u-gd.x86_64 7.1.17-1.ius.el6 @ius php71u-intl.x86_64 7.1. 17-1.ius.el6 @ius php71u-json.x86_64 7.1.17-1.ius.el6 @ius php71u-mbstring.x86_64 7.1.17-1.ius.el6 @ius php71u-pdo.x86_64 7.1.17- 1.ius.el6 @ius 3.4.3-2.ius.el6 @ius php71u-pgsql.x86_64 7.1.17-1.ius.el6 @ius php71u-xml.x86_64 7.1.17-1.ius.el6 @ius php71u-xmlrpc.x86_64 7.1.17-1.ius.el6 @ius

Oggi vorrei descrivere brevemente i comandi del gestore di pacchetti gnam- la build ufficiale di FreePBX è basata su CentOS, che ha yum installato per impostazione predefinita. È utile per installare, rimuovere e aggiornare i pacchetti.

Installazione del pacchetto

Ad esempio, per installare un pacchetto mc devi inserire il comando yum install mc . Dopo aver inserito il comando, il sistema chiederà conferma. Affinché la conferma venga approvata per impostazione predefinita, è necessario aggiungere una chiave -y, ad esempio yum –y install mc:

# yum install mc Plugin caricati: quickmirror Caricamento delle velocità del mirror dal file host memorizzato nella cache * base: mirror.corbina.net * epel: mirror.datacenter.by * extra: mirror.corbina.net * aggiornamenti: mirror.corbina.net Risoluzione delle dipendenze -- > Esecuzione del controllo della transazione ---> Verrà installato il pacchetto mc.x86_64 1:4.8.7-11.el7 --> Risoluzione delle dipendenze terminate Risolte le dipendenze =================== =========================================================== ================================================= = ============ Dimensioni del repository della versione Arch del pacchetto ================================ == == ========================================================================= Installazione: mc x86_64 1:4.8 .7-11.el7 base 1.7 M Riepilogo transazione ================================= ====== ====================================== Installa 1 pacchetto Dimensione totale del download: 1,7 M Dimensione installata: 5,6 M Va bene: y Download dei pacchetti: mc-4.8.7-11.el7.x86_64.rpm | 1,7 MB 00:00 Transazione in esecuzione Verifica transazione in corso Test transazione riuscita Transazione in esecuzione Installazione: 1:mc-4.8.7-11.el7.x86_64 1/1 Verifica: 1:mc-4.8.7-11.el7.x86_64 1 /1 Installato: mc.x86_64 1:4.8.7-11.el7 Completo!

Rimozione di un pacchetto

Per rimuovere un pacchetto, rispettivamente, è necessario immettere il comando yum remove mc . Allo stesso modo, puoi usare la chiave di conferma -y:

# yum remove mc Plugin caricati: fastmirror Risoluzione delle dipendenze --> Esecuzione del controllo della transazione ---> Il pacchetto mc.x86_64 1:4.8.7-11.el7 verrà cancellato --> Risoluzione delle dipendenze terminate Risolte le dipendenze ====== =========================================================== ================================================= = ====================== Pacchetto versione Arch Dimensioni repository ===================== == ================================================ === ====== Rimozione: mc x86_64 1:4.8.7-11.el7 @base 5.6 M Riepilogo transazione ====================== === =============================================== ==== ==== Rimuovi 1 pacchetto Dimensione installata: 5,6 M Va bene: y Download dei pacchetti: Esecuzione del controllo della transazione Esecuzione del test della transazione Test della transazione riuscito Esecuzione della cancellazione della transazione: 1:mc-4.8.7-11.el7.x86_64 1/1 Verifica in corso : 1:mc-4.8.7-11.el7.x86_64 1/1 Rimosso: mc.x86_64 1:4.8.7-11.el7 Completo!

Aggiornamento del pacchetto

Supponiamo di averlo vecchia versione mysql e devi aggiornarlo - qui viene utilizzato il comando aggiornare. L'intero comando sarà simile a questo: yum update mysql .

Ricerca pacchetto

Se si desidera verificare se un pacchetto specifico è installato sul server e disponibile per l'installazione, utilizzare il comando elenco. L'intero comando sarà simile a questo: yum list mysql . Puoi anche specificare la versione esatta del pacchetto se hai bisogno di una ricerca più dettagliata.

Visualizzazione delle informazioni su un pacchetto

Se vuoi visualizzare informazioni su un pacchetto, usa il comando Informazioni. L'intero comando sarà simile a questo: yum info mc .

Visualizza le informazioni su tutti i pacchetti disponibili e installati

Per questo, viene utilizzato il comando elenco con modificatori. Per uscita pacchetti disponibili: yum lista | less e yum list installato | meno

Visita medica aggiornamenti disponibili per i pacchetti e l'aggiornamento stesso

Il comando da controllare è aggiornamento del controllo e per l'aggiornamento - aggiornare. Di seguito sono riportati tre esempi di utilizzo dei comandi:

  • yum check-update mysql - controlla gli aggiornamenti del pacchetto mysql;
  • yum list update - mostra un elenco di aggiornamenti;
  • yum update mc - Aggiornamento di Midnight Commander;
  • yum -y update - aggiorna tutti i pacchetti installati;
Raggruppa pacchetti e operazioni con loro

In Linux, alcuni pacchetti vengono raccolti nei cosiddetti pacchetti di gruppo, ad esempio Server dei nomi DNS, editori, Sviluppo Java eccetera. Con yum, puoi installare pacchetti di gruppo con il comando installazione di gruppo- esempio sotto yum groupinstall 'Clustering . Descriverò brevemente il resto dei comandi per manipolare i pacchetti di gruppo:

  • yum grouplist - mostra tutti i pacchetti di gruppo disponibili per l'installazione;
  • yum groupupdate 'Base' - aggiorna un pacchetto di gruppo specifico, in questo caso– base;
  • yum groupremove 'Editor' - rimuove il pacchetto di gruppo;
Repository in yum

La ricerca dei pacchetti avviene nei cosiddetti repository, di seguito darò alcuni comandi per lavorare con loro - il principio è lo stesso dei pacchetti (comandi di elenco, ad esempio). Elenca tutti i repository attivi con yum repolist ed elenca i repository inattivi con yum repolist all

Per installare un pacchetto da un repository specifico, attivo o inattivo, viene utilizzata una chiave --enablerepo. Come esempio - installazione di phpmyadmin: yum --enablerepo=epel installa phpmyadmin

Terminale in yum e cronologia

Se hai intenzione di fare molte operazioni con i pacchetti, puoi andare immediatamente alla shell yum usando il comando yum shell e usando i comandi che già conosci (solo senza primi tre lettere, rispettivamente), è possibile installare\rimuovere\aggiornare\qualsiasi pacchetto. Un'altra caratteristica interessante è la possibilità di visualizzare la cronologia dell'installazione in yum, utilizzando il comando yum history.

Questo articolo ti è stato utile?

Per favore, dimmi perché?

Ci dispiace che l'articolo non ti sia stato utile: (Per favore, se non è difficile, indica per quale motivo? Ti saremo molto grati per una risposta dettagliata. Grazie per averci aiutato a migliorare!

Destinazione Yum

Yum è stato creato per risolvere i seguenti problemi:

  • Trovare pacchetti nei repository
  • Installazione di pacchetti da repository
  • Installazione di pacchetti da file .rpm, risoluzione delle dipendenze utilizzando i repository
  • Aggiornamento del sistema
  • Rimozione di pacchetti indesiderati
  • In effetti, yum è un wrapper per rpm che fornisce lavoro con i repository.

Operazioni di base sui pacchetti

Cerca nei repository

Tre comandi vengono utilizzati per cercare i repository con yum: list , search e fornisce .

Il modo più semplice per cercare è utilizzare il comando list. Il comando list esamina i nomi e le versioni dei pacchetti alla ricerca di corrispondenze. Ad esempio, per visualizzare i pacchetti denominati tsclient, utilizzare:

Yum list tsclient

Il comando di ricerca cerca il nome e la descrizione del pacchetto per la stringa specificata. Ad esempio, per cercare i pacchetti correlati a PalmPilot, digitare:

Yum cerca PalmPilot

Il comando fornisce consente di cercare i pacchetti che contengono file specificato. Ad esempio, per cercare pacchetti contenenti libneon, digitare:

Yum fornisce libneon

Tutti i comandi di ricerca supportano i caratteri jolly? e * (evitandoli con \ per bash per analizzarli correttamente). Ad esempio, durante la ricerca di pacchetti che iniziano con tsc, digitare:

Yum list tsc\*

per cercare i pacchetti contenenti file nella directory /etc/httpd

Yum fornisce /etc/httpd\*

oppure per cercare determinati comandi/programmi, ad esempio per cercare mc (midnight commander)

Yum fornisce \*/mc

di conseguenza otteniamo il seguente output

1:mc-4.7.4-1.fc14.i686: Console di testo intuitiva gestore di file e visual shell Repository: base Corrispondenze: Nome file: /usr/share/mc Nome file: /usr/libexec/mc Nome file: /etc/mc Nome file: /usr/bin/mc

Installazione di pacchetti con Yum

Per installare i pacchetti con yum, usa l'opzione di installazione

Per installare tsclient digita:

Yum installa tsclient

Yum risolverà automaticamente (se possibile) le dipendenze e si offrirà di installarle:

=========================================================== ================================================= = =========================== Pacchetto versione Arch Dimensioni repository ================== = =================== = ==================================================================================================== == ======= Installazione: tsclient i386 0.132-6 base 247 k Installazione per le dipendenze: rdesktop i386 1.4.0-2 base 107 k Riepilogo transazione =============== == == ================================================ === ========= Installa 2 Pacchetto/i Aggiorna 0 Pacchetto/i Rimuovi 0 Pacchetto/i Dimensione totale del download: 355 k Va bene:

Installazione di pacchetti da file .rpm

Per installare un pacchetto .rpm con risoluzione automatica delle dipendenze, veniva utilizzato il comando localinstall. Ora puoi usare la solita installazione . Quindi il comando:

Yum installa foo.rpm

troverà automaticamente le dipendenze del pacchetto foo.rpm nei repository (se possibile) e si offrirà di installarle.
Potrebbe esserci un problema nell'assenza o nella firma GPG sconosciuta del pacchetto RPM, che comporterà una mancata installazione e, di conseguenza, il seguente errore

Chiave pubblica per foo.rpm non impostata

Per aggirare questo problema (nel caso in cui ti fidi della fonte che fornisce il pacchetto) devi disattivare il controllo delle chiavi GPG aggiungendo l'opzione --nogpgcheck alla fine del comando

Aggiornamento del sistema

L'aggiornamento del sistema avviene con un singolo comando-aggiornamento. In questo modo:

Yum aggiornamento

aggiornerà l'intero sistema. Un gruppo

Yum aggiornamento foo

Quando si utilizzano entrambi i metodi, le prestazioni vengono preservate.

Utilizzo di Yum con un server proxy

Per far funzionare Yum tramite un server proxy, devi aggiungere il seguente parametro a /etc/yum.conf:

Proxy=http://tuoproxy:8080/

dove - yourproxy è il nome del server proxy e 8080 è la porta del server proxy. Se il server richiede l'autenticazione, è possibile specificare l'accesso come:

proxy=http://nome utente: [email protetta]:8080/

RPM Package Manager consente di utilizzare variabili di ambiente proxy. Questo può essere impostato in /etc/profile o specifico dell'utente in ~/.bash_profile::

Esporta http_proxy=http://tuoproxy:8080/
export ftp_proxy=http://tuoproxy:8080/

Per usare wget tramite un proxy aggiungi le seguenti righe a /etc/wgetrc

Http_proxy = http://tuoproxy:8080/
ftp_proxy = http://tuoproxy:8080/

In entrambi i casi è possibile impostare login e password come nell'esempio sopra.

Utilizzo di Yum per installare un pacchetto locale, controllando e soddisfacendo automaticamente le dipendenze

yum --nogpgcheck localinstall nomepacchetto.arch.rpm

Visualizzazione delle priorità per tutti i repository installati

Puoi ottenere un elenco di tutti i repository che hai installato - yum ripulisci tutto. Tuttavia, non mostra l'indice di priorità. Ecco la linea necessaria per questo. Se il numero non è definito, il valore predefinito è la priorità più bassa (99).

Gatto /etc/yum.repos.d/*.repo | sed -n -e "/^\)

Articoli correlati in alto