rpm(8) – Linux man page

Namn

rpm – RPM Package Manager

Synopsis

Sökning och verifiering av paket:

rpm {-q|–query}

rpm {-V|–verifiera}

rpm –import PUBKEY …

rpm {-K|–checksig} PACKAGE_FILE …

Installation, uppgradering och borttagning av paket:

rpm {-i|–install} PACKAGE_FILE …

rpm {-U|–upgrade} PACKAGE_FILE …

rpm {-F|–freshen} PACKAGE_FILE …

rpm {-e|–erase} PACKAGE_NAME …

Det mesta:

rpm {–initdb|–rebuilddb}

rpm {–addsign|–resign} PACKAGE_FILE …

rpm {–querytags|–showrc}

rpm {–setperms|–setugids} PACKAGE_NAME …

select-options

{-p,–package PACKAGE_FILE]

query-options

verify-options

install-options

Beskrivning

rpm är en kraftfull pakethanterare, som kan användas för att bygga, installera, fråga, verifiera, uppdatera och radera enskilda programvarupaket. Ett paket består av ett arkiv av filer och metadata som används för att installera och radera arkivfilerna. Metadata innehåller hjälpskript, filattribut och beskrivande information om paketet. Paket finns i två varianter: binära paket, som används för att kapsla in programvara som ska installeras, och källkodspaket, som innehåller källkoden och det recept som krävs för att producera binära paket.

Ett av följande grundlägen måste väljas: Query, Verify, Signature Check, Install/Upgrade/Freshen, Uninstall, Initialize Database, Rebuild Database, Resign, Add Signature, Set Owners/Groups, Show Querytags och ShowConfiguration.

General Options

De här alternativen kan användas i alla de olika lägena.

-?, –help Skriver ut ett längre användningsmeddelande än normalt. –version Skriv ut en enda rad som innehåller versionsnumret för rpm som används. –quiet Skriv ut så lite som möjligt – normalt visas bara felmeddelanden. -v Skriv ut verbose-information – normalt visas rutinmässiga framstegsmeddelanden. -vv Skriv ut massor av ful felsökningsinformation. –rcfile FILELIST Var och en av filerna i den kolonseparerade FILELIST läses sekventiellt av rpm för att hitta konfigurationsinformation. Endast den första filen i listan måste finnas, och tildes expanderas till värdet på $HOME. Standard FILELIST är/usr/lib/rpm/rpmrc:/usr/lib/rpm/redhat/rpmrc:/etc/rpmrc:~/.rpmrc. –pipe CMD Leder utdata från rpm till kommandot CMD. –dbpath DIRECTORY Använd databasen i DIRECTORY i stället för standardvägen /var/lib/rpm –root DIRECTORY Använd filsystemträdet som har sin rot i DIRECTORY för alla operationer. Observera att detta innebär att databasen i DIRECTORY kommer att användas för beroendekontroller och att alla skript (t.ex. %post om du installerar, eller %prep om du bygger ett paket) kommer att köras efter en chroot(2) tillDIRECTORY. -D, –define=’MACRO EXPR’ Definierar MACRO med värdet EXPR. -E, –eval=’EXPR’ Skriver ut makroexpansion av EXPR.

Install- och uppgraderingsalternativ

I dessa alternativ kan PACKAGE_FILE vara antingen en binär rpm-fil eller ett ASCII-paketmanifest (se PACKAGE SELECTION OPTIONS), och kan anges som en ftp- eller http-URL, i vilket fall paketet hämtas innan det installeras. Se FTP/HTTP OPTIONS för information om rpm:s interna ftp- och http-klientstöd.

Den allmänna formen för ett rpm-installationskommando är

rpm {-i|–install} PACKAGE_FILE …

Detta installerar ett nytt paket.

Den allmänna formen för ett rpm-uppgraderingskommando är

rpm {-U|–upgrade} PACKAGE_FILE …

Detta uppgraderar eller installerar paketet som för närvarande är installerat till en nyare version. Detta är samma sak som install, förutom att alla andra versioner av paketet tas bort efter att det nya paketet har installerats.

rpm {-F|–freshen} PACKAGE_FILE …

Detta kommer att uppgradera paket, men bara de som en tidigare version är installerad för.

–aid Lägg till föreslagna paket till transaktionsuppsättningen när det behövs. –allfiles Installerar eller uppgraderar alla missingok-filer i paketet, oavsett om de finns. –badreloc Används tillsammans med –relocate, tillåter omlokaliseringar på alla filvägar, inte bara de OLDPATH:er som ingår i det binära paketets omlokaliseringstips. –excludepath OLDPATH Installera inte filer vars namn börjar med OLDPATH. –excludedocs Installera inte filer som är markerade som dokumentation (vilket inkluderar man pages och texinfo-dokument). –force Samma som med –replacepkgs, –replacefiles och –oldpackage. -h, –hash Skriv ut 50 hashmarkeringar när paketarkivet packas upp. Använd med -v|–verbose för en snyggare visning. –ignoresize Kontrollera inte om det finns tillräckligt med diskutrymme i monterade filsystem innan du installerar det här paketet. –ignorearch Tillåt installation eller uppgradering även om arkitekturen för det binära paketet och värden inte stämmer överens. –ignoreos Tillåt installation eller uppgradering även om operativsystemen för det binära paketet och värden inte stämmer överens. –includedocs Installera dokumentationsfiler. Detta är standardbeteendet. –justdb Uppdaterar endast databasen, inte filsystemet. –nodigest Kontrollera inte paket- eller header-digests vid läsning. –nomanifest Behandla inte filer som inte är paket som manifest. –nosignature Kontrollera inte paket- eller header-signaturer vid läsning. –nodeps Gör ingen kontroll av beroenden innan du installerar eller uppgraderar ett paket. –nosuggest Föreslå inte paket som tillhandahåller ett saknat beroende. –noorder Ordna inte om paketen för en installation. Listan över paket skulle normalt omordnas för att uppfylla beroenden. –noscripts –nopre –nopost –nopreun–nopostun Exekverar inte scriptlet med samma namn. Alternativet –noscripts motsvarar

–nopre –nopost –nopreun

nopostun

och stänger av exekveringen av motsvarande %pre-, %post-, %preun- och %postun-scriptlet(s).

–notriggers –notriggerin –notriggerun–notriggerun–notriggerpostun Exekverar inte någon trigger-scriptlet av den angivna typen. Alternativet –notriggers

är likvärdigt med

–notriggerin –notriggerun –notriggerpostun

och stänger av exekveringen av motsvarande %triggerin-, %triggerun- och %triggerpostun-scriptlet(s).

–oldpackage Tillåt att en uppgradering ersätter ett nyare paket med ett äldre. –percent Skriv ut procentsatser när filerna packas upp från paketarkivet. Detta är avsett att göra rpm lätt att köra från andra verktyg. –prefix NEWPATH För relokaliserbara binära paket översätts alla filvägar som börjar med installationsprefixet i paketets flyttningstips till NEWPATH. –relocate OLDPATH=NEWPATH För flyttbara binära paket översätts alla filvägar som börjar med OLDPATH i paketets flyttningstips till NEWPATH. Detta alternativ kan användas flera gånger om flera OLDPATHs i paketet skall flyttas. –replacefiles Installera paketen även om de ersätter filer från andra, redan installerade paket. –replacepkgs Installera paketen även om några av dem redan är installerade på det här systemet. –test Installerar inte paketet, utan kontrollerar och rapporterar bara eventuella konflikter.

Släckningsalternativ

Den allmänna formen för ett rpm-släckningskommando är

rpm {-e|–erase} PACKAGE_NAME…

Följande alternativ kan också användas:

–allmatches Ta bort alla versioner av paketet som matchar PACKAGE_NAME. Normalt utfärdas ett fel om PACKAGE_NAME matchar flera paket. –nodeps Kontrollera inte beroenden innan paketen avinstalleras. –noscripts –nopreun–nopostun Exekverar inte scriptlet med samma namn. Alternativet –noscripts under radering av paket är likvärdigt

till

–nopreun –nopostun

och stänger av exekveringen av motsvarande %preun- och %postun-scriptlet(s).

–notriggers –notriggerun–notriggerpostun Exekverar inte någon trigger-scriptlet av den namngivna typen. Alternativet –notriggers

är likvärdigt med

–notriggerun –notriggerpostun

och stänger av exekveringen av motsvarande %triggerun- och %triggerpostun-scriptlet(s).

–test Avinstallerar inte riktigt något, utan går bara igenom det hela. Användbart tillsammans med alternativet -vv för felsökning.

Förfrågningsalternativ

Den allmänna formen för ett rpm-förfrågningskommando är

rpm {-q|–query}

Du kan ange det format som paketinformationen ska skrivas ut i. För att göra detta använder du

–qf|–queryformat QUERYFMT

alternativet, följt av formatsträngen QUERYFMT. Frågeformat är modifierade versioner av standardformateringen printf(3). Formatet består av statiska strängar (som kan innehålla standard C tecken escapes för nya rader, tabulatorer och andra specialtecken) och printf(3) typformatörer. Eftersom rpm redan vet vilken typ som skall skrivas ut måste typspecificeringen dock utelämnas och ersättas med namnet på den rubriktagg som skall skrivas ut, innesluten av {}-tecken. Tag-namnen är okänsliga för stor- och små bokstäver, och den inledande RPMTAG_-delen av tag-namnet kan också utelämnas.

Alternativa utdataformat kan begäras genom att följa taggen med :typetag. För närvarande stöds följande typer:

:armor Slå in en offentlig nyckel i ASCII-armor. :arraysize Visa antalet element i array-taggar. :base64 Kodning av binära data med hjälp av base64. :date Använd strftime(3) ”%c”-formatet. :day Använd strftime(3) ”%a %b %d %d %Y”-formatet. :depflags Formatera jämförelseoperatorn för beroende. :deptype Formatera beroendetypen. :fflags Format file flags. :fstate Format file state. :hex Format in hexadecimal. :octal Format in octal. :perms Format file permissions. :pgpsig Display signature fingerprint and time. :shescape Escape single quotes for use in a script. :triggertype Display trigger suffix. :vflags File verification flags. :xml Wrap data in simple xml markup.

För att till exempel skriva ut endast namnen på de paket som efterfrågas kan du använda %{NAME} som formatsträng. För att skriva ut paketens namn och distributionsinformation i två kolumner kan du använda %-30{NAME}%{DISTRIBUTION}. rpm skriver ut en lista över alla taggar som den känner till när den anropas med argumentet –querytags.

Det finns två undergrupper av alternativ för att ställa frågor: paketval och informationsval.

Optioner för val av paket:

PACKAGE_NAME Fråga efter installerat paket som heter PACKAGE_NAME. -a, –all Fråga efter alla installerade paket. -f, –file FILE Fråga efter paket som äger FILE. –fileid ID Fråga efter paket som innehåller en viss filidentifierare. ID:t är en sammanfattning av filinnehållet. För olika paket kan olika hash-algoritmer ha använts (MD5, SHA1, SHA256, SHA384, SHA512, …) -g, –group GROUP Fråga efter paket med gruppen GROUP. –hdrid SHA1 Fråga efter paket som innehåller en given header-identifierare, dvs. SHA1-digestet av den oföränderliga header-regionen. -p, –package PACKAGE_FILE Fråga efter ett (avinstallerat) paket PACKAGE_FILE. PACKAGE_FILE kan anges som en ftp- eller http-liknande URL, i vilket fall pakethuvudet hämtas och frågas ut. Se FTP/HTTP OPTIONS för information om rpm:s interna ftp- och http-klientstöd. Argumentet (argumenten) PACKAGE_FILE kommer, om det inte är ett binärt paket, att tolkas som ett ASCII-paketmanifest om inte –nomanifestoption används. I manifest är det tillåtet med kommentarer som börjar med ”#”, och varje rad i en paketmanifestfil kan innehålla vitrymdsseparerade klotuttryck, inklusive URL:er, som kommer att expanderas till sökvägar som ersätts i stället för paketmanifestet som ytterligare PACKAGE_FILE-argument till förfrågan. –pkgid MD5 Fråga efter paket som innehåller en given paketidentifierare, dvs. MD5-digesten av det kombinerade innehållet i rubrik och nyttolast. –querybynumber HDRNUM Fråga direkt efter HDRNUM-databaseposten; detta är endast användbart för felsökning. –specfile SPECFILE Parsar och frågar efter SPECFILE som om det vore ett paket. Även om inte all information (t.ex. fillistor) är tillgänglig, tillåter denna typ av förfrågan att rpm används för att extrahera information från specfiler utan att behöva skriva en specfile-analysator. –tid TID Fråga efter paket som har en given TID-transaktionsidentifierare. En unix-tidsstämpel används för närvarande som transaktionsidentifierare. Alla paket som installeras eller raderas inom en enskild transaktion har en gemensam identifierare. –triggeredby PACKAGE_NAME Sök efter paket som utlöses av paketet/paketen PACKAGE_NAME. –whatprovides CAPABILITY Sök efter alla paket som tillhandahåller kapaciteten CAPABILITY. –whatrequires CAPABILITY Sök alla paket som kräver CAPABILITY för att fungera korrekt.

Package Query Options:

–changelog Visa ändringsinformation för paketet. -c, –configfiles Listar endast konfigurationsfiler (innebär -l). -d, –docfiles Listar endast dokumentationsfiler (innebär -l). –dump Dumpar filinformation enligt följande (innebär -l):

path size mtime digest mode owner group isconfig isdoc rdev symlink 

–filesbypkg Listar alla filer i varje valt paket. -i, –info Visa paketinformation, inklusive namn, version och beskrivning. Detta använder –queryformatet om ett sådant har angetts. –last Ordnar paketlistan efter installationstid så att de senaste paketen står överst. -l, –list Listar filer i paketet. –provides Listar funktioner som paketet tillhandahåller. -R, –requires Listar funktioner som paketet är beroende av. –scripts Listan över paketspecifika skript som används som en del av installations- och avinstallationsprocesserna. -s, –state Visar tillstånden för filerna i paketet (innebär -l). Tillståndet för varje fil är normalt, inte installerat eller ersatt. –triggers, –triggerscripts Visar de eventuella utlösningsskript som finns i paketet.

Verifieringsalternativ

Den allmänna formen för ett rpm verify-kommando är

rpm {-V|–verify}

Verifiera ett paket jämför information om de installerade filerna i paketet med information om filerna som hämtas från paketmetadata som lagras i rpm-databasen. Vid verifiering jämförs bland annat storlek, digest, behörigheter, typ, ägare och grupp för varje fil. Eventuella avvikelser visas.Filer som inte installerades från paketet, t.ex. dokumentationsfiler som uteslutits vid installationen med alternativet ”–excludedocs”, kommer att ignoreras.

Oalternativen för val av paket är desamma som för paketförfrågan (inklusive paketmanifestfiler som argument). Andra alternativ som är unika för verifieringsläget är:

–nodeps Verifiera inte paketens beroenden. –nodigest Kontrollera inte paket- eller header-digests vid läsning. –nofiles Kontrollerar inte några attribut för paketfiler. –noscripts Exekverar inte skriptet %verifyscript (om sådant finns). –nosignature Kontrollerar inte paket- eller header-signaturer vid läsning. –nolinkto –nofiledigest (tidigare –nomd5) –nosize –nouser –nogroup –nomtime –nomode–nordev Kontrollerar inte motsvarande filattribut.

Uppgiftens format är en sträng med 8 tecken, en möjlig attributmarkör:

c %config configuration file.d %doc documentation file.g %ghost file (i.e. the file contents are not included in the package payload).l %license license file.r %readme readme file.

från pakethuvudet, följt av filnamnet. Var och en av de 8 tecknen anger resultatet av en jämförelse mellan filens attribut och det värde av dessa attribut som registrerats i databasen. Ett enkelt ”.” (punkt) betyder att testet har godkänts, medan ett enkelt ”?” (frågetecken) betyder att testet inte kunde utföras (t.ex. att filbehörigheter förhindrar läsning). I annat fall anger det (mnemoniskt emBoldened) tecknet att motsvarande–verifieringstest har misslyckats:

S file Size differsM Mode differs (includes permissions and file type)5 digest (formerly MD5 sum) differsD Device major/minor number mismatchL readlink(2) path mismatchU User ownership differsG Group ownership differsT mTime differsP caPabilities differ

Digital Signature and Digest Verification

De allmänna formerna för rpm-kommandon för digital signatur är

rpm –import PUBKEY …

rpm {–checksig} PACKAGE_FILE …

Valet –checksig kontrollerar alla digests och signaturer som finns i PACKAGE_FILE för att säkerställa paketets integritet och ursprung. Observera att signaturer nu verifieras när ett paket läses, och –checksig är användbart för att verifiera alla digests och signaturer som är associerade med ett paket.

Digitala signaturer kan inte verifieras utan en offentlig nyckel. En ASCII-skyddad offentlig nyckel kan läggas till i rpm-databasen med hjälp av –import. Animported public key förs med i en header och hanteringen av nyckelringen utförs precis som pakethantering. Till exempel kan alla för närvarande importerade offentliga nycklar visas genom att:

rpm -qa gpg-pubkey*

Detaljer om en specifik offentlig nyckel, när den importerats, kan visas genom att fråga. Här finns information om Red Hat GPG/DSA-nyckeln:

rpm -qi gpg-pubkey-db42a60e

Finally, public keys can be erased after importing just like packages. Så här tar du bort Red Hat GPG/DSA-nyckeln

rpm -e gpg-pubkey-db42a60e

Signera ett paket

rpm –addsign|–resign PACKAGE_FILE …

Båda alternativen –addsign och –resign genererar och infogar nya signaturer för varje paket PACKAGE_FILE som anges, och ersätter eventuella befintliga signaturer. Det finns två alternativ av historiska skäl, det finns ingen skillnad i beteende för närvarande.

Användning av Gpg för att signera paket

För att kunna signera paket med hjälp av GPG måste rpm vara konfigurerat för att köra GPG och kunna hitta en nyckelring med lämpliga nycklar. Som standard använder rpm samma konventioner som GPG för att hitta nyckelringar, nämligen miljövariabeln $GNUPGHOME. Om dina nyckelringar inte finns där GPG förväntar sig att de ska finnas måste du konfigurera makrot %_gpg_path till att vara platsen för de GPG-nyckelringar som ska användas.

För att uppnå kompatibilitet med äldre versioner av GPG, PGP och rpm bör endast V3 OpenPGP-signaturpaket konfigureras. Antingen DSA- eller RSA-verifieringsgoritmer kan användas, men DSA är att föredra.

Om du vill kunna signera paket som du skapar själv måste du också skapa ditt eget offentliga och hemliga nyckelpar (se GPG-manualen). Du måste också konfigurera rpm-makron

%_signature Signaturtypen. Just nu stöds endast gpg och pgp. %_gpg_name Namnet på ”användaren” vars nyckel du vill använda för att signera dina paket.

För att till exempel kunna använda GPG för att signera paket som användaren ”John Doe <[email protected]>” från de nyckelringar som finns i /etc/rpm/.gpgmed hjälp av den körbara filen /usr/bin/gpg skulle du inkludera

%_signature gpg%_gpg_path /etc/rpm/.gpg%_gpg_name John Doe <[email protected]>%__gpg /usr/bin/gpg

i en makrokonfigurationsfil. Använd /etc/rpm/macros för konfiguration per system och ~/.rpmmacros för konfiguration per användare. Vanligtvis räcker det med att ställa in bara %_gpg_name.

Optioner för återuppbyggnad av databas

Den allmänna formen för ett rpm-kommando för återuppbyggnad av databas är

rpm {–initdb|–rebuilddb}

Använd –initdb för att skapa en ny databas om det inte redan finns en (befintlig databas skrivs inte över), använd –rebuilddb för att bygga om databasindexen från de installerade pakethuvudena.

Diverse kommandon

rpm –showrc visar de värden som rpm kommer att använda för alla alternativ som för närvarande är inställda i konfigurationsfilerna rpmrc och macros. rpm –setperms PACKAGE_NAME ställer in behörigheter för filer i det givna paketet. rpm –setugids PACKAGE_NAME ställer in äganderätt för användare/grupper för filer i det givna paketet.

Ftp/Http-alternativ

rpm kan fungera som en FTP- och/eller HTTP-klient så att paket kan efterfrågas eller installeras från Internet. Paketfiler för installation, uppgradering och sökoperationer kan anges som en URL i ftp- eller http-stil:

ftp://USER:PASSWORD@HOST:PORT/path/to/package.rpm

Om delen :PASSWORD utelämnas kommer lösenordet att efterfrågas (en gång per användar-/värdnamnspar). Om både användare och lösenord utelämnas används anonym ftp. I samtliga fall utförs passiva (PASV) ftp-överföringar.

rpm tillåter att följande alternativ används tillsammans med ftp-URL:

–ftpproxy HOST Värden HOST kommer att användas som en proxyserver för alla ftp-överföringar, vilket gör det möjligt för användare att ftp-överföra genom brandväggsmaskiner som använder proxysystem.Det här alternativet kan också anges genom att konfigurera makrot %_ftpproxy. –ftpport PORT TCP PORT-numret som ska användas för ftp-anslutningen på proxy-ftp-servern i stället för standardporten. Detta alternativ kan också anges genom att konfigurera makron %_ftpport.

rpm tillåter att följande alternativ används med http-URL:

–httpproxy HOST Värden HOST kommer att användas som en proxyserver för alla http-överföringar. Det här alternativet kan också anges genom att konfigurera makrot%_httpproxy. –httpport PORT TCP PORT-numret som ska användas för http-anslutningen på proxyhttp-servern i stället för standardporten. Det här alternativet kan också anges genom att konfigurera makron %_httpport.

Legacy Issues

Executing rpmbuild

Bygglägena för rpm finns nu i den körbara filen /usr/bin/rpmbuild. Installera paketet som innehåller rpmbuild (vanligtvisyrpm-build) och se rpmbuild(8) för dokumentation av alla rpm-bygglägen.

Filer

rpmrc Konfiguration

/usr/lib/rpm/rpmrc/usr/lib/rpm/redhat/rpmrc/etc/rpmrc~/.rpmrc

Makrokonfiguration

/usr/lib/rpm/macros/usr/lib/rpm/redhat/macros/etc/rpm/macros~/.rpmmacros

Databas

/var/lib/rpm/Basenames/var/lib/rpm/Conflictname/var/lib/rpm/Dirnames/var/lib/rpm/Filemd5s/var/lib/rpm/Group/var/lib/rpm/Installtid/var/lib/rpm/Name/var/lib/rpm/Packages/var/lib/rpm/Providename/var/lib/rpm/Provideversion/var/lib/rpm/Pubkeys/var/lib/rpm/Removed/var/lib/rpm/Requirename/var/lib/rpm/Requireversion/var/lib/rpm/Sha1header/var/lib/rpm/Sigmd5/var/lib/rpm/Triggername

Temporär

/var/tmp/rpm*

Visa också

popt(3),rpm2cpio(8),rpmbuild(8),

rpm –help – eftersom rpm stöder anpassning av alternativen via popt-alias är det omöjligt att garantera att det som beskrivs i manualen stämmer överens med det som är tillgängligt.

http://www.rpm.org/ <URL:http://www.rpm.org/>

Författare

Marc Ewing <[email protected]>Jeff Johnson <[email protected]>Erik Troan <[email protected]>

Refererad av

applydeltarpm(8),apt(8),apt.conf(5),autoupdate(8),cmake28(1),cmake28-gui(1),cmake28modules(1),compat_digest.plug(1),cpack28(1),demo.plug(1),demofiles.plug(1),febootstrap(8),file2pacdep.plug(1),nodoc.plug(1),rpm2paco(8),rpm4(3),rpm_selinux(8),rpmcache(8),rpmconf(8),rpmdeps(8),rpmfile(1),rpmpeek(1),rpmreaper(1),rpmrebuild(1),rpmrebuild_plugins(1),set_tag.plug(1),superpaco(8),un_prelink.plug(1),uniq.plug(1),unset_tag.plug(1),yum-versionlock(1)

Lämna ett svar

Din e-postadress kommer inte publiceras.