Tips voor het werken met Yum en RPM. Basisprincipes van pakketbeheer: apt, yum, dnf, pkg

|

De meeste moderne Unix-achtige besturingssystemen bieden gecentraliseerde mechanismen voor het vinden en installeren van pakketten. Software wordt doorgaans gedistribueerd in de vorm van pakketten die zijn opgeslagen in repositories. Pakketten bevatten de belangrijkste componenten besturingssysteem, En gedeelde bibliotheken, applicaties, diensten en documentatie.

Pakketbeheersysteem dat verder gaat dan installatie software, biedt nog veel meer functies en hulpmiddelen om uw bestaande te upgraden geïnstalleerde pakketten. Pakketrepository's zorgen ervoor dat de code is doorgegeven noodzakelijke verificatie voor gebruik in het systeem, en wat geïnstalleerde versies software is goedgekeurd door de ontwikkelaars.

Bij het opzetten van een server of ontwikkelomgeving is het beter om naar pakketten te zoeken in de officiële repositories. Pakketten binnen stabiele versie distributie kan verouderd zijn, vooral als de software snel wordt bijgewerkt.

Pakketbeheer is een essentiële vaardigheid voor systeembeheerders en ontwikkelaars.

Deze handleiding behandelt de basisprincipes van pakketbeheer: het vinden, installeren en bijwerken van pakketten voor verschillende distributies.

Pakketbeheersystemen: een kort overzicht

De meeste pakketbeheersystemen zijn gebouwd op sets pakketbestanden. Een pakketbestand is doorgaans een archief dat de gecompileerde binaire bestanden, installatiescripts en andere bronnen bevat waaruit het programma bestaat. Pakketten bevatten ook waardevolle metagegevens, inclusief hun afhankelijkheden (een lijst met pakketten die nodig zijn om het programma uit te voeren).

besturingssysteem Formaat
Debian .deb
Ubuntu .deb
CentOS .rpm
Fedora .rpm
FreeBSD poorten, .txz

CentOS, Fedora en andere systemen rode Hoed gebruik RPM-bestanden. CentOS gebruikt de yum-manager om te communiceren met pakketten en repository's. IN nieuwste versies Fedora yum is vervangen door de gemoderniseerde dnf-manager. Debian-systeem en daarop gebaseerde systemen (Ubuntu, Linux Munt, Raspbian) gebruikt het .deb-formaat. De APT-pakketbeheerder (Advanced Packaging Tool) biedt opdrachten die worden gebruikt voor de meest voorkomende bewerkingen: het zoeken naar opslagplaatsen, het beheren van updates, het installeren van een reeks pakketten en hun afhankelijkheden. APT-opdrachten werken als frontend-hulpprogramma's lager niveau dpkg, dat de installatie van individuele .deb-pakketten afhandelt lokaal systeem; indien nodig kan dit hulpprogramma expliciet worden aangeroepen.

Binair systeem FreeBSD-bestanden beheerd door de opdracht pkg. Bovendien biedt FreeBSD een verzameling ports, een lokale directorystructuur en tools waarmee u pakketten kunt extraheren, compileren en installeren van broncode gebruik maken van makefiles. Het is meestal gemakkelijker om de pkg-manager te gebruiken, maar soms zijn vooraf gecompileerde pakketten niet beschikbaar.

De pakketlijst bijwerken

De meeste systemen bevatten lokale databank pakketgegevens beschikbaar in externe opslagplaatsen. Het wordt aanbevolen dat u deze database bijwerkt voordat u het pakket installeert of bijwerkt. Gedeeltelijke uitzonderingen op dit patroon zijn yum en DNF, die controleren op pakketupdates voordat bepaalde bewerkingen worden uitgevoerd.

besturingssysteem Team
Debian/Ubuntu sudo apt-get-update
CentOS yum check-update
Fedora dnf-controle-update
FreeBSD-pakketten sudo pkg-update
FreeBSD-poorten sudo portsnap ophaalupdate

Geïnstalleerde pakketten bijwerken

Geïnstalleerde software up-to-date houden zonder de hulp van een pakketbeheersysteem is een nogal arbeidsintensieve taak. Voor honderden verschillende pakketten moet u zelf pakketupdates en beveiligingsmeldingen bijhouden. Zeker, pakket manager Het lost niet elk probleem op dat u tegenkomt bij het updaten van uw software, maar het helpt wel om de meeste systeemcomponenten met slechts een paar opdrachten up-to-date te houden.

IN FreeBSD-systeem Het kan nodig zijn om de geïnstalleerde poorten te updaten handmatige instellingen. Voordat u portmaster bijwerkt, wordt aanbevolen dat u vertrouwd raakt met /usr/ports/UPDATING.

Systeem Team
Debian/Ubuntu sudo apt-get-upgrade
sudo apt-get dist-upgrade
CentOS sudo yum-update
Fedora sudo dnf-upgrade
FreeBSD-pakketten sudo pkg-upgrade
FreeBSD-poorten less /usr/ports/UPDATING
cd /usr/ports/ports-mgmt/portmaster && sudo make install && sudo portmaster -a

Zoek pakketten

De meeste distributies bieden een grafische of menugestuurde interface voor verzamelingen pakketten. Hiermee kunt u door categorieën bladeren en naar nieuwe software zoeken. Meestal echter de snelste en meest effectieve manier Het vinden van pakketten is een zoekopdracht met behulp van opdrachtregelprogramma's.

Systeem Team
Debian/Ubuntu apt-cache zoeken zoek_string
CentOS yum zoek zoek_string
yum zoek alles zoek_string
Fedora dnf zoeken zoek_string
dnf doorzoek alle zoektekenreeks
FreeBSD (pakketten) pkg zoeken zoektekenreeks
pkg zoeken -f zoektekenreeks
pkg zoeken -D zoektekenreeks
FreeBSD (poorten) cd /usr/ports && make zoeknaam=pakket
cd /usr/ports && maak zoeksleutel=zoekreeks

Pakketinformatie

Wanneer u besluit hoe u een pakket moet installeren, kunt u hulp zoeken bij gedetailleerde beschrijving pakketjes. Deze voor mensen leesbare tekst bevat vaak nuttige metadata: versienummers, lijst met afhankelijkheden, etc.

Systeem Team
Debian/Ubuntu apt-cache showpakket
dpkg -s pakket
CentOS jammie infopakket
yum deplist-pakket
Fedora dnf-infopakket
dnf repoquery --pakket vereist
FreeBSD (pakketten) pkg-infopakket
FreeBSD (poorten) cd /usr/ports/category/port && cat pkg-descr

Pakketten installeren vanuit repositories

Als u de naam van het vereiste pakket kent, kunt u het zeer snel installeren met één enkele opdracht. U kunt ook in één opdracht alle pakketten weergeven die moeten worden geïnstalleerd.

Systeem Team
Debian/Ubuntu sudo apt-get installatiepakket
sudo apt-get install pakket1 pakket2 ...
sudo apt-get install -y pakket
CentOS sudo yum installatiepakket
sudo yum installeer pakket1 pakket2 ...
sudo yum install -y pakket
Fedora sudo dnf installatiepakket
sudo dnf installeer pakket1 pakket2 ...
sudo dnf install -y pakket
FreeBSD (pakketten) sudo pkg installatiepakket
sudo pkg installeer pakket1 pakket2 ...
FreeBSD (poorten) cd /usr/ports/category/port && sudo make install

Een pakket installeren vanaf het lokale bestandssysteem

Soms bieden ontwikkelaars of leveranciers aan batchbestanden om te downloaden, zelfs als de applicatie niet officieel is verpakt voor een bepaald besturingssysteem.

Normaal gesproken kunnen dergelijke pakketten worden gedownload met behulp van een webbrowser of het curl-hulpprogramma in opdrachtregel. Zodra het pakket is gedownload, kan het met één enkele opdracht worden geïnstalleerd.

Op Debian-achtige systemen worden individuele pakketbestanden beheerd door dpkg. Als een pakket afhankelijkheden heeft die niet op het systeem zijn geïnstalleerd, kan gdebi deze downloaden van de officiële repository.

IN CentOS-systemen en Fedora voor installatie aparte bestanden en het verwerken van de noodzakelijke afhankelijkheden, worden yum en dnf gebruikt.

Systeem Team
Debian/Ubuntu sudo dpkg -i pakket.deb
sudo apt-get install -y gdebi&& sudo gdebi pakket.deb
CentOS sudo yum installeer pakket.rpm
Fedora sudo dnf installeer pakket.rpm
FreeBSD (pakketten) sudo pkg voeg pakket.txz toe
sudo pkg add -f pakket.txz

Pakketten verwijderen

De pakketbeheerder weet precies welke bestanden elk specifiek pakket bevat, zodat hij eenvoudig alle onnodige programma's kan verwijderen.

Yum en RPM zijn dat wel geweldige gereedschappen pakketbeheer, maar ze hebben een aantal weinig bekende opties en mogelijkheden waarmee je behoorlijk coole dingen kunt doen. U hoeft ze niet noodzakelijkerwijs te gebruiken, maar misschien vindt u ze op een gegeven moment nuttig.

1. Geef het architectuurtype weer in de resulterende RPM

Dit simpele dingetje is vrij eenvoudig te doen en zal erg handig zijn voor mensen die x86_64-systemen gebruiken. Eén regel in het bestand ~/.rpmmacros bespaart u later problemen.

Echo "%_query_all_fmt %%(naam)-%%(versie)-%%(release).%%(arch)" >> ~/.rpmmacros

2. Pakketten aanvragen die niet bij CentOS zijn

Wilt u een lijst met pakketten ontvangen die zijn geïnstalleerd vanuit repository's van derden, niet vanuit CentOS?

Rpm -qa --qf "%(NAAM) %(VERKOPER)\n" | grep -v CentOS

3. Bestandsrechten opnieuw instellen

Bent u volledig in de war over de rechten van bestanden in een pakket? Geen probleem, RPM regelt het.

Rpm --ingestelde rechten

4. Wijzigingen bekijken

Omdat CentOS en de oorspronkelijke codeprovider beveiligingsupdates uitbrengen, kunnen versienummers misleidend zijn als je naar CVE-patches kijkt. Controleren op wijzigingen in een pakket is een goede manier om te zien of de wijzigingen zijn aangebracht of niet. Opnieuw komt RPM te hulp.

Rpm -q --changelog | minder

Het gebruik van "less" is optioneel, maar voor sommige pakketten, zoals de kernel, kunnen de wijzigingen behoorlijk uitgebreid zijn. Daarom maakt deze toevoeging de uitvoer leesbaarder.

5. Waar is de documentatie?

Om snel de documentatie te verkrijgen die bij een pakket hoort, kunt u de volgende twee opties gebruiken:

  • Dit toont u de documentatie in deze rpm. Als u alleen de bestandsnaam heeft:
rpm -qdf /pad/naar/bestand
  • en rpm zal u de documentatie tonen in het pakket dat eigenaar is van dat bestand.

6. Herkomst van het pakket

Soms wilt u weten waar u een pakket of pakketten vandaan heeft, of hoeveel pakketten er in uw systeem staan ​​van een bepaalde repository of leverancier. Er zijn verschillende zoekopties die u kunt gebruiken. Hoewel ze niet 100% perfect zijn, kunnen ze toch helpen. De meeste pakketten uit repositories hebben tags met een ID in de Release-regel. Rpmforge gebruikt bijvoorbeeld rf als identificatiemiddel. Je kunt dit gebruiken om te zien wat je vanaf daar hebt geïnstalleerd:

Rpm -qa release = "*rf *"

en als je wilt zien hoeveel pakketten je van Johnny Hughes hebt geïnstalleerd, kun je het volgende gebruiken:

Rpm -qa verpakker = "Johnny *"

Deze methode werkt op de meeste categorieën, zoals rpm -qi

Met deze opdracht wordt de volledige lijst met geïnstalleerde pakketten weergegeven.

7. Pak slechts één bestand uit

Als u slechts één bestand uit een rpm hoeft te extraheren zonder het hele pakket opnieuw te installeren, kunt u dit doen met rpm2cpio. Als u bijvoorbeeld slechts één bestand uit logrotate rpm wilt extraheren, gebruikt u het volgende:

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

8. Verzoek om de installatiedatum van het pakket

Het is handig om na het updaten oude pakketten te vinden die niet zijn bijgewerkt.

Rpm -qa --last >~/RPMS_by_Install_Date

U kunt "minder" uitvoer gebruiken om alle RPMS te vinden die ouder zijn dan de installatiedatum. Gebruik ook grep - specificeer de pakketten en de installatiedatum.

9. Vraag beschikbare pakketten aan in de repository

Vind alle pakketten die beschikbaar zijn in een specifieke repository, zoals RPMforge. Pakketten die al vanuit deze repository zijn geïnstalleerd, worden niet weergegeven.

Yum --disable "*" --enable "rpmforge" lijst beschikbaar

10. Zoek met YUM in de pakketrepository naar een bepaalde string

Zoek naar pakketten met de gewenste lijn in de pakkettitel of -beschrijving.

Yum zoeken buildrpmtree | minder

11. Yum gebruiken met een proxyserver

Om Yum via een proxyserver te laten werken, moet je toevoegen volgende parameter in /etc/yum.conf:

Proxy=http://uwproxy:8080/

waarbij - uwproxy de naam is van de proxyserver en 8080 de poort van de proxyserver. Als de server authenticatie vereist, kunt u de login opgeven als:

Proxy=http://gebruikersnaam:wachtwoord@uwproxy:8080/

Met RPM Package Manager kunt u proxy-omgevingsvariabelen gebruiken. Dit kan worden ingesteld in /etc/profile of worden opgegeven voor specifieke gebruiker in het bestand ~/.bash_profile::

Exporteer http_proxy=http://uwproxy:8080/ exporteer ftp_proxy=http://uwproxy:8080/

Om wget via een proxy te gebruiken, voegt u toe volgende regels in /etc/wgetrc

Http_proxy = http://uwproxy:8080/ ftp_proxy = http://uwproxy:8080/

In beide gevallen kunnen de login en het wachtwoord worden ingesteld zoals in het bovenstaande voorbeeld.

12. Gebruik Yum om een ​​lokaal pakket te installeren, waarbij automatisch de afhankelijkheden worden gecontroleerd en voldaan

yum --nogpgcheck localinstall pakketnaam.arch.rpm

13. Een pakket verkrijgen en opnieuw opbouwen zonder root te zijn

Soms hoeft u eenvoudigweg een bepaald pakket opnieuw op te bouwen - misschien hoeft u alleen maar configuratieopties toe te voegen die eenvoudigweg niet bestaan ​​in het hoofdpakket. Of omdat je het gevonden hebt benodigde pakket, die niet in de repository staat, maar op de RPM's van de website van de ontwikkelaar voor een andere distributie. U moet dus src.rpm ophalen en het naar uw behoeften herstellen. Maar als superuser wil je dit eigenlijk niet doen. Dus, hoe u uw pakketten opnieuw kunt opbouwen in uw thuismap onder uw eigen rekening.

13.1 Methode A

Eerst moet u de map voor werk configureren. Het is qua structuur vrij gelijkaardig aan de map /usr/src/redhat:

$ cd $ mkdir -p redhat/(SRPMS,RPMS,SPECS,BUILD,BRONNEN) $ ls redhat/ BUILD RPMS BRONNEN SPECS SRPMS $

Met behulp van de rpm-macro zullen we een vervanging uitvoeren zodat rpmbuild over ons weet en wat er gebouwd moet worden:

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

Precies. Volgende actie- taak rpmbuild --rebuild foo.src.rpm, het resultaat van het werk zal in het bestand ~/redhat/RPMS/i386 staan ​​(of de architectuur waarmee u het pakket hebt gebouwd).

13.2 Methode B

Voor CentOS-4, stel de kbs-Extras repository in (optioneel voeg kbs-Misk toe) vanaf de pagina en "yum install fedora-rpmdevtools" als root met behulp van "sudo" of "su -". Maak een gebruiker aan (je wilt misschien een speciale account gebruiken om problemen in je normale homedirectory te voorkomen) en voer "fedora-buildrpmtree" en ~/rpmbuild/... uit in de directorystructuur en het ~/.rpmmacros-bestand zal automatisch gemaakt. (Let op "rpmbuild" versus "RedHat" in methode A.)

Voor CentOS-5 is het rpmdevtools-pakket niet beschikbaar. In FC6 SRPM is rpmdevtools-5.3-1.fc6.src.rpm gebouwd en werkt.

Hieronder staat een macro om de juiste namen van sommige pakketten te achterhalen (vervang de overeenkomstige distributieversie voor "el4" door die van u):

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

14. Geef prioriteiten weer voor alle geïnstalleerde repository's

U kunt een lijst krijgen met alle repository's die op u zijn geïnstalleerd - yum herpoliseren allemaal. De prioriteitsindex wordt echter niet weergegeven. Hier is de regel die hiervoor nodig is. Als het nummer niet is opgegeven, is de standaardwaarde de laagste prioriteit (99).

Cat /etc/yum.repos.d/*.repo | sed -n -e "/^\# yum list "vim*" Geïnstalleerde pakketten vim-minimal.i386 2:7.0.109-7.el5 geïnstalleerd Beschikbare pakketten 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 basis vim-enhanced.i386 2: 7.0.109-7.el5 basis vim-halibut.i386 1.0-2.20100504svn8934.el5.1 epel vim-puppet.noarch 2.7.9-1.el5.rf rpmforge

16. Toon alle geïnstalleerde GPG-sleutels

Toon een lijst met alle sleutels met bijbehorende repository-informatie:

Rpm -q gpg-pubkey --qf "%(naam)-%(versie)-%(release) --> %(samenvatting)\n"

17. Pakketten ondertekenen

Wilt u uw samengestelde pakket signeren zodat anderen de authenticiteit ervan kunnen verifiëren? Je kunt dit heel eenvoudig doen. Gebruik de documentatie.

Opmerking: voor CentOS 5 en 4 is het beter als u een DSA-sleutel gebruikt voor ondertekening (aangezien er verificatieproblemen zijn vastgesteld voor versie 4 van RSA).

18. YUM-metapakketten

Een metapakket is een speciaal pakket dat geen software bevat, maar wel een bepaalde set software als afhankelijkheden heeft. Bijvoorbeeld: X op de server installeren.

Om een ​​lijst met alle metapakketten te zien, moet u de opdracht uitvoeren: jammie groepslijst. Maar als u een Russische landinstelling heeft, wordt de lijst in het Russisch weergegeven. Om een ​​lijst te krijgen die geschikt is voor installatie (in het Engels), stelt u de uitvoertaal van de opdracht in op Engels:

LANG=C yum groepslijst

19. Hoe u geïnstalleerde pakketten kunt weergeven

Geïnstalleerde pakketten kunnen opdrachten weergeven

Yum-lijst geïnstalleerd

Haal bijvoorbeeld een lijst met geïnstalleerde pakketten op uit de repository:

# yum-lijst geïnstalleerd | 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

Vandaag wil ik de opdrachten van de pakketbeheerder kort beschrijven jammie- de officiële FreePBX-build is gebaseerd op CentOS, waarop yum standaard is geïnstalleerd. Het is handig voor het installeren, verwijderen en bijwerken van pakketten.

Het pakket installeren

Bijvoorbeeld om een ​​pakket te installeren mc je moet het commando yum install mc invoeren. Na het invoeren van de opdracht zal het systeem om bevestiging vragen. Om de bevestiging standaard te laten goedkeuren, moet u een sleutel toevoegen -j, bijvoorbeeld yum –y install mc:

# yum install mc Geladen plug-ins: snelstemirror Mirror-snelheden laden vanuit cached hostbestand * base: mirror.corbina.net * epel: mirror.datacenter.by * extra's: mirror.corbina.net * updates: mirror.corbina.net Afhankelijkheden oplossen -- > Transactiecontrole uitvoeren ---> Pakket mc.x86_64 1:4.8.7-11.el7 wordt geïnstalleerd --> Voltooide afhankelijkheidsresolutie Afhankelijkheden opgelost ================== ================================================= === ============ Pakket Arch-versie Repositorygrootte ============================== ==== ============================================= =============== Installeren: mc x86_64 1:4.8.7-11.el7 basis 1.7 M Transactieoverzicht ================= =================== ============================== ============================= Installeer 1 pakket Totale downloadgrootte: 1,7 M Geïnstalleerde grootte: 5,6 M Is dit ok: y Pakketten downloaden : mc-4.8.7-11.el7.x86_64.rpm | 1,7 MB 00:00 Transactiecontrole uitvoeren Transactietest uitvoeren Transactietest geslaagd Transactie uitvoeren Installeren: 1:mc-4.8.7-11.el7.x86_64 1/1 Verifiëren: 1:mc-4.8.7-11.el7.x86_64 1 /1 Geïnstalleerd: mc.x86_64 1:4.8.7-11.el7 Compleet!

Een pakket verwijderen

Om een ​​pakket te verwijderen, moet u de opdracht yum remove mc invoeren. U kunt de bevestigingsschakelaar -y op dezelfde manier gebruiken:

# yum remove mc Geladen plug-ins: snelstemirror Afhankelijkheden oplossen --> Transactiecontrole uitvoeren ---> Pakket mc.x86_64 1:4.8.7-11.el7 wordt gewist --> Voltooide afhankelijkheidsresolutie Afhankelijkheden opgelost ====== ================================================= === ======================= Pakket Arch-versie Repositorygrootte =================== == =============================================== ===== ========= Verwijderen: mc x86_64 1:4.8.7-11.el7 @base 5.6 M Transactieoverzicht ================= ===== ============================================ ======== ======== 1 pakket verwijderen Geïnstalleerde grootte: 5,6 M Is dit ok: y Pakketten downloaden: Transactiecontrole uitvoeren Transactietest uitvoeren Transactietest geslaagd Transactie uitvoeren Wissen: 1:mc-4.8 .7-11.el7.x86_64 1/1 Verifiëren: 1:mc-4.8.7-11.el7.x86_64 1/1 Verwijderd: mc.x86_64 1:4.8.7-11.el7 Compleet!

Pakketupdate

Stel, je hebt een oude mysql-versie en je moet het bijwerken - hier wordt de opdracht gebruikt update. Het volledige commando zal er als volgt uitzien: yum update mysql .

Zoek een pakket

Als u wilt controleren of een specifiek pakket op de server is geïnstalleerd en beschikbaar is voor installatie, gebruikt u de opdracht lijst. Het volledige commando ziet er als volgt uit: yum list mysql . Je kunt het ook opgeven exacte versie pakket als u een grondiger onderzoek nodig heeft.

Pakketinformatie weergeven

Als u informatie over een pakket wilt weergeven, gebruikt u de opdracht informatie. Het volledige commando ziet er als volgt uit: yum info mc .

Informatie weergeven over alle beschikbare en geïnstalleerde pakketten

Gebruik hiervoor de opdracht lijst met modificaties. Om beschikbare pakketten weer te geven: yum list | less, en om alle geïnstalleerde bestanden weer te geven - yum list geïnstalleerd | minder

Inspectie beschikbare updates voor pakketten en de update zelf

Gebruik de opdracht om dit te controleren controleer-update, en voor het bijwerken - update. Hieronder staan ​​drie voorbeelden van het gebruik van opdrachten:

  • yum check-update mysql - controleert mysql-pakketupdates;
  • yum lijstupdates - toont een lijst met updates;
  • yum update mc - Midnight Commander-update;
  • yum –y update - update alle geïnstalleerde pakketten;
Groepeer pakketten en bewerkingen ermee

In Linux worden sommige pakketten verzameld in zogenaamde groepspakketten, bijvoorbeeld DNS-naamserver, Editors, Java-ontwikkeling enzovoort. Met yum kun je groepspakketten installeren met behulp van de opdracht groepsinstallatie- voorbeeld hieronder yum groupinstall ‘Clustering. Ik zal kort de resterende opdrachten beschrijven voor het manipuleren van groepspakketten:

  • yum grouplist - toont alle groepspakketten die beschikbaar zijn voor installatie;
  • yum groupupdate ‘Base’ - update een specifiek groepspakket, in in dit geval– Basis;
  • yum groupremove ‘Editors’ - een groepspakket verwijderen;
Opslagplaatsen in jammie

Het zoeken naar pakketten vindt plaats in zogenaamde repositories; hieronder zal ik verschillende commando's geven om ermee te werken - het principe is hetzelfde als bij pakketten (bijvoorbeeld lijstcommando's). Alle actieve opslagplaatsen worden weergegeven met behulp van het yum repolist commando; inactieve opslagplaatsen worden ook weergegeven met behulp van het yum repolist all commando

Om een ​​pakket te installeren vanuit een specifieke repository, actief of inactief, gebruikt u de sleutel --repo inschakelen. Als voorbeeld - phpmyadmin-installatie: yum –enablerepo=epel installeer phpmyadmin

Yum-terminal en geschiedenis

Als je veel bewerkingen met pakketten gaat uitvoeren, dan kun je onmiddellijk naar de yum-shell gaan met behulp van het yum shell-commando en met behulp van commando's die je al kent (alleen zonder eerste drie letters, respectievelijk), kunt u de pakketten installeren\verwijderen\update\welke pakketten dan ook. Een andere interessante functie is de mogelijkheid om de geschiedenis van installaties in yum te bekijken met behulp van het yum history-commando.

Was dit artikel nuttig voor u?

Vertel me alsjeblieft waarom?

Het spijt ons dat het artikel niet nuttig voor u was: (Als het niet moeilijk is, geef dan aan waarom? We zullen u zeer dankbaar zijn voor een gedetailleerd antwoord. Bedankt dat u ons helpt beter te worden!

Doel van Yum

Yum is ontworpen om de volgende problemen op te lossen:

  • Zoeken naar pakketten in repository's
  • Pakketten installeren vanuit repositories
  • Pakketten installeren vanuit .rpm-bestanden, afhankelijkheden oplossen met behulp van repositories
  • Systeem update
  • Het verwijderen van onnodige pakketten
  • In feite is yum een ​​wrapper voor rpm die werk biedt met repositories.

Basisbewerkingen op pakketten

Zoek opslagplaatsen

Er worden drie commando's gebruikt om repository's te doorzoeken met behulp van yum: list , search en provides .

De eenvoudigste manier om te zoeken is door het list-commando te gebruiken. De opdracht list zoekt door pakketnamen en versies naar overeenkomsten. Om bijvoorbeeld pakketten met de naam tsclient te bekijken:

Yum lijst tsclient

De zoekopdracht zoekt in de pakketnaam en beschrijving naar de opgegeven tekenreeks. Als u bijvoorbeeld naar pakketten wilt zoeken die verband houden met PalmPilot, typt u:

Lekker zoeken PalmPilot

Met het commando provides kunt u zoeken naar pakketten die opgegeven bestand. Als u bijvoorbeeld naar pakketten wilt zoeken die libneon bevatten, voert u het volgende in:

Yum biedt libneon

Ondersteunen alle zoekopdrachten jokertekens? en * (ontsnap ze met een \-teken voor bash om ze correct te verwerken). Als u bijvoorbeeld wilt zoeken naar pakketten die beginnen met tsc, voert u het volgende in:

Yum lijst tsc\*

om te zoeken naar pakketten die bestanden bevatten in de map /etc/httpd

Yum biedt /etc/httpd\*

of om naar specifieke commando's/programma's te zoeken, bijvoorbeeld om te zoeken naar mc(midnight commandant)

Yum biedt \*/mc

als resultaat krijgen we de volgende uitvoer

1:mc-4.7.4-1.fc14.i686: Gebruiksvriendelijke tekstconsole bestandsbeheer en visuele shell Repository: base Komt overeen met: Bestandsnaam: /usr/share/mc Bestandsnaam: /usr/libexec/mc Bestandsnaam: /etc/mc Bestandsnaam: /usr/bin/mc

Pakketten installeren met Yum

Om pakketten te installeren met yum gebruikt u de install parameter

Om tsclient te installeren, typt u:

Yum installeer tsclient

Yum zal de afhankelijkheden automatisch oplossen (indien mogelijk) en aanbieden om ze te installeren:

================================================= === ======================================= Pakket Arch-versie Repositorygrootte = ================= ================================ ==================== ========= Installeren: tsclient i386 0.132-6 base 247 k Installeren voor afhankelijkheden: rdesktop i386 1.4.0-2 basis 107 k Transactieoverzicht =============== ============================= ======================= ============ Installeer 2 pakket(en) Update 0 pakket(ten) Verwijder 0 pakket(s) (s) Totale downloadgrootte: 355 k Is dit oké:

Pakketten installeren vanuit .rpm-bestanden

De opdracht localinstall werd vroeger gebruikt om een ​​.rpm-pakket te installeren met automatische resolutie van afhankelijkheid. Nu kunt u een normale installatie gebruiken. Dus het commando:

Yum installeer foo.rpm

zal automatisch de afhankelijkheden van het foo.rpm-pakket in de repository's vinden (als dit mogelijk is) en aanbieden om deze te installeren.
Er kan een probleem optreden bij het ontbreken of een onbekende GPG-handtekening van het RPM-pakket, wat zal resulteren in een weigering om te installeren en, als gevolg daarvan, de volgende fout

De openbare sleutel voor foo.rpm is niet geïnstalleerd

Om dit te omzeilen (als je de bron vertrouwt die het pakket levert), moet je de GPG-sleutelcontrole uitschakelen door de parameter --nogpgcheck toe te voegen aan het einde van de opdracht

Systeem update

Het systeem wordt bijgewerkt met één opdracht: update. Dus:

Yum-update

zal uw hele systeem bijwerken. En het team

Yum update foo

Wanneer u beide methoden gebruikt, blijven de prestaties behouden.

Yum gebruiken met een proxyserver

Om Yum te dwingen via een proxyserver te werken, moet je de volgende parameter toevoegen aan /etc/yum.conf:

Proxy=http://uwproxy:8080/

waarbij - uwproxy de naam is van de proxyserver en 8080 de poort van de proxyserver. Als de server authenticatie vereist, kunt u de login opgeven als:

Proxy=http://gebruikersnaam:wachtwoord@uwproxy:8080/

Met RPM Package Manager kunt u proxy-omgevingsvariabelen gebruiken. Dit kan worden ingesteld in /etc/profile of gebruikersspecifiek in ~/.bash_profile::

Exporteer http_proxy=http://uwproxy:8080/
export ftp_proxy=http://uwproxy:8080/

Om wget via een proxy te gebruiken, voegt u de volgende regels toe aan /etc/wgetrc

Http_proxy = http://uwproxy:8080/
ftp_proxy = http://uwproxy:8080/

In beide gevallen kunnen de login en het wachtwoord worden ingesteld zoals in het bovenstaande voorbeeld.

Yum gebruiken om een ​​lokaal pakket te installeren, waarbij afhankelijkheden automatisch worden gecontroleerd en voldaan

yum --nogpgcheck localinstall pakketnaam.arch.rpm

Toon prioriteiten voor alle geïnstalleerde repository's

U kunt een lijst krijgen met alle repository's die op u zijn geïnstalleerd - yum herpoliseren allemaal. De prioriteitsindex wordt echter niet weergegeven. Hier is de regel die hiervoor nodig is. Als het nummer niet is opgegeven, is de standaardwaarde de laagste prioriteit (99).

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