close

RPM

Gå til navigation Gå til søg
RPM Package Manager (RPM)
RPM Package Manager (RPM) programlogo
Type Pakkestyringssystem
Forfatter rød hat
Udvikler fællesskab [1]
Skrevet i Xi
Operativ system GNU/Linux , Unix-lignende
Første udgave 1997 [2]
nyeste version
Læsbare filformater RPM og Delta RPM Package [d]
Licens GNU General Public License
Internet side rpm.org

RPM ( rekursivt akronym RPM Package Manager  - RPM - package manager ; tidligere oplyst som Red Hat Package Manager  - Red Hat package manager ) er et softwarepakkeformat såvel som et program skabt til at administrere disse pakker, brugt i en række Linux-distributioner ; er hovedpakkeformatet i LSB .

Oprindeligt udviklet af Red Hat til Red Hat Linux , er RPM blevet brugt i mange Linux - distributioner og er blevet overført til andre operativsystemer: Novell NetWare (fra version 6.5 SP3), IBM AIX (fra version 5) og andre.

Arkivbeholderen cpio bruges til at gemme filer i RPM-format , komprimeret ved hjælp af gzip -værktøjet . Senere versioner kan bruge stjernearkiveren og komprimere med bzip2 , LZMA eller XZ . Siden RPM 5.0 er det muligt at bruge XAR arkiver .

RPM-database

RPM-databasen vedligeholdes i mappen /var/lib/rpm. Den består af en enkelt database (pakker), der gemmer al information om pakker, og mange små databaser ( __db.001 , __db.002 osv.), der tjener til indeksering og indeholder information om, hvilke filer der blev ændret og oprettet, da pakker blev installeret og fjernet.

Hvis databasen bliver noget ødelagt (hvilket kan ske, hvis installationen eller fjernelsesprocessen blev "dræbt" eller løb tør for plads på partitionen), så kan den gendannes ved at udstede kommandoen rpm --rebuilddb .

Hvis databasen er blevet ødelagt, anbefales det at få en kopi fra en tidligere lavet sikkerhedskopi eller gendan ved hjælp af rpm -ivh --justdb i henhold til listen over pakker, der er opnået på forhånd af rpm -qa | sortere . Semi-heuristiske metoder til at gendanne databasen ved hjælp af listen over filer i pakkerne til depotet, hvorfra systemet blev installeret, er mulige, men det er bedre ikke at bringe det til dette.

Pakkenavne

Hver RPM-pakke har et navn, der består af flere dele:

  • Navnet på programmet;
  • Programversion;
  • Frigivet versionsnummer (antal gange programmet i samme version blev genopbygget). Bruges også ofte til at henvise til den distribution, som denne pakke er bygget under, såsom mdv ( Mandriva Linux ) eller fc4 ( Fedora Core 4);
  • Arkitekturen pakken er bygget til ( i386 , ppc osv.)

Den kompilerede pakke har normalt dette navneformat:

<navn>-<version>-<udgivelse>.<arkitektur>.rpm

For eksempel:

nano-0,98-2.i386.rpm

Nogle gange er kildekoden inkluderet i pakken. Sådanne pakker indeholder ikke arkitekturinformation, den erstattes af src . For eksempel:

libgnomeuimm2.0-2.0.0-3.src.rpm

Biblioteker er oftest fordelt i to separate pakker. Den første indeholder den indbyggede kode, den anden (normalt tilføjet med -devel ) indeholder header-filer og andre filer, der er nødvendige af udviklere. Du skal sikre dig, at versionerne af disse to pakker matcher, ellers fungerer bibliotekerne muligvis ikke korrekt. Pakker med noarch.rpm- udvidelsen er uafhængige af den specifikke computerarkitektur. De indeholder normalt grafik og tekster, der bruges af andre programmer.

Fordele og ulemper ved RPM

Fordele ved RPM frem for andre administrationsværktøjer og softwareinstallationer

  • Nem afinstallation og opdatering af programmer;
  • Popularitet: mange programmer er bygget i RPM, så der er ingen grund til at bygge programmet ud fra kildekoder;
  • "Ikke-interaktiv installation": let at automatisere installation/opdatering/fjernelsesprocessen;
  • Kontrol af pakkers integritet ved hjælp af kontrolsummer og GPG- signaturer;
  • DeltaRPM , en analog af en patch , der giver dig mulighed for at opdatere installeret software med minimal trafik;
  • Mulighed for akkumulering af erfaring fra samlere i en spec-fil;
  • Relativ kompakthed af spec-filer på grund af brugen af ​​makroer.

Store ulemper

  • Makropakker kan variere betydeligt mellem distributioner;
  • Fragmentering og inkompatibilitet af forskellige versioner. Så der er projekter til udvikling af RPM 4 (rpm.org), RPM5 (rpm5.org), samt et stort antal patches til RPM i distributioner. Dette fører især til:
    • inkompatibilitet af spec-filer mellem distributioner (ALT Linux spec-filen kan oftest ikke bygges på Red Hat eller SuSE uden væsentlige rettelser);
    • pakkeafhængighedsnavne uoverensstemmelser, når du forsøger at installere en pakke fra en anden distribution (f.eks. oprettes afhængigheder i Connectiva build-RPM'er efter andre regler end i Mandriva).

Oprettelse af en pakke

Der kræves en spec-fil for at oprette en pakke . Dette er en almindelig tekstfil, der har et .spec-suffiks og indeholder pakkenavn, version, udgivelsesnummer, instruktioner til opbygning og installation af pakken og en liste over ændringer. Hvis der er en spec-fil, er pakken bygget med kommandoen rpmbuild.

Eksempler

  • rpm -Uhv package.rpm  - Hvis pakken er til stede, vil den blive opdateret, hvis ikke, vil den blive installeret.
  • rpm -qa --queryformat '%010{SIZE}\t%{NAME}-%{VERSION}-%{RELEASE}\n'  Viser alle installerede pakker og deres størrelser.
  • rpm -q --queryformat %{DISTRIBUTION} pakke.rpm  er navnet på den distribution, hvori pakken er installeret (mulighed -q for en pakke installeret på systemet, option -qp for ikke installeret).
  • rpm-qa | grep xx  er en liste over pakker, hvor "xx" forekommer.
  • rpm -q --whatprovides fullpathtofile  er navnet på den pakke, der ejer fullpathtofile-filen.

Understøttede Linux-distributioner

Nedenfor er en liste over nogle af de mere kendte RPM-baserede distributioner:

(Dette er ikke en udtømmende liste. Flere muligheder findes på listen over Linux-distributioner )

Praktiske tilføjelser til RPM'er

Der er flere programmer, der giver dig mulighed for automatisk at løse afhængigheder, når du installerer pakker. Her er nogle af de mere berømte:

Grafiske grænseflader til RPM'er er PackageKit og Synaptic .

Noter

  1. RPM -- planer, mål osv. . Max Spevack <mspevack redhat com>. Dato for adgang: 20. januar 2011. Arkiveret fra originalen 6. oktober 2012.
  2. http://rpm5.org/roadmap.php
  3. [Rpm-announce RPM 4.18.0 and POPT 1.19 released!] - 2022.

Links