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:
- 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.rpm13. 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:
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.rpmVisualizzazione 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 "/^\)