RPM
| RPM Package Manager (RPM) | |
|---|---|
| | |
| 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:
- apt-rpm , en port af APT oprindeligt lavet af Conectiva, derefter stærkt modificeret af ALT Linux-teamet og stadig under udvikling;
- apt4rpm , en senere port af APT end apt-rpm;
- smart , tilgængelig for mange distributioner;
- urpmi , brugt af Mandriva Linux ;
- zypper , brugt af SuSE ;
- yum , udviklet af Yellow Dog Linux , også brugt af Fedora , ASP Linux , Red Hat Enterprise Linux (siden version 5.0, og CentOS, Scientific Linux-distributioner baseret på det).
Grafiske grænseflader til RPM'er er PackageKit og Synaptic .
Noter
- ↑ RPM -- planer, mål osv. . Max Spevack <mspevack redhat com>. Dato for adgang: 20. januar 2011. Arkiveret fra originalen 6. oktober 2012.
- ↑ http://rpm5.org/roadmap.php
- ↑ [Rpm-announce RPM 4.18.0 and POPT 1.19 released!] - 2022.
Links
- Officiel hjemmeside Arkiveret 11. september 2014 på Wayback Machine
- Ideel sysadmin: RPM (forklarer fordelene for administratorer)
- RPM man page
- Opbygning af pakker af en simpel bruger (engelsk)
- Pakkefilformat - Linux Standards Base Arkiveret 27. september 2009 på Wayback Machine
- www.rpmfind.net Arkiveret 13. august 2006 på Wayback Machine - søgbar pakkemappe
- rpm.pbone.net Arkiveret 11. januar 2007 på Wayback Machine - søgbar pakkemappe
- rpm2cpio.sh Arkiveret 6. marts 2012 på Wayback Machine - script til udpakning af pakker
- Tilslutning af tredjeparts RPM-lagre på Fedora/CentOS Arkiveret 27. marts 2007 på Wayback Machine
- Windows til Linux migrationsplan: Del 9: Installation af softwaren Arkiveret 1. maj 2007 hos Wayback Machine developerWorks USA
- www.lexpr.ru Arkiveret 11. oktober 2011 på Wayback Machine - Vlad Goreletsky. Russisk oversættelse af bogen af Eric Foster-Johnson Red Hat RPM Guide