Grunderna för RPM - Red Hat Package Management [Linux 101]
I tidigare artiklar har vi undersökt systemet som används för att installera programvara på Debian-baserade system, bland annat Ubuntu. RPM eller Red Hat Package Manager debuterade i Red Hat Linux 2.0 1995 och är nu det föredragna pakethanteringssystemet för distributioner baserade på Red Hat, inklusive CentOS och Oracle's Linux distro, samt SuSE.
Nu ser vi hur systemet jämförs med "Ubuntu-sättet" för att hantera programvara.
Obs! Om du använder ett DEB-baserat system kan du ha kommandot rpm. Du kommer dock inte troligen att ha en paketdatabas, så några av kommandona nedan kan visa några fel som hänvisar till detta.
RPM-paketets grunder
Ett RPM-paket, som DEB, består av ett arkiv av filer som pakethanteraren kommer att placera på din dator när den installeras. Den innehåller också samma typ av information om annan programvara som den behöver, så systemet kan ladda ner och installera dina beroenden för dig. Det sveper bara allt detta på ett annat sätt.
Liksom DEB-filer kan ett RPM-paket innehålla antingen binär (eller exekverbar) kod, källkod som kompileras till binär före installation eller arkitekturoberoende filer (som dokumentation). En RPM-fil är ett cpio- arkiv, vilket är ett arkivformat som ursprungligen användes för bandbackup. RPM: er innehåller tre primära typer av data:
- Data som identifierar filen som ett RPM-paket
- En signatur så att systemet kan verifiera att paketet inte har manipulerats (till exempel en MD5-hash i paketet)
- "Header", som innehåller information om paketet, till exempel namn, versionsnummer och sammanfattning
- "Lastbelastningen" eller de filer som paketet installerar på ditt system
Till skillnad från Debian-paket är det inte så lätt att titta på någon av dessa uppgifter som att arkivera paketet och titta på några textfiler. Om vi vill titta på signaturen, säg att jämföra den mot en signatur i systemets RPM-databas, skulle vi behöva använda kommandorads RPM-programmet enligt följande:
sudo rpm - kontrollerad rpm-4.9.1.3-6.fc17.x86_64.rpm
För att visa rubrikinformationen kan du fråga paketet med följande kommando:
sudo rpm-qip rpm-4.9.1.3-6.fc17.x86_64.rpm
Här berättar "-q" -flaggan RPM för att fråga paketet, "I" för att få information om det och "p" som du anger en paketfil som ett argument. Så för att se vilka filer som finns i paketet vill du ha en lista i stället för information, eller följande:
sudo rpm -qlp rpm-4.9.1.3-6.fc17.x86_64.rpm
Du kan också öppna RPM-filer direkt i många arkivhanterare för att se hur filerna i paketet är organiserade.
RPM-databasen
Som nämnts ovan är ett av huvudelementen i Red Hat-paketsystemet RPM-databasen. Lagrad i "/ var / lib / rpm" innehåller denna katalog ett antal underkataloger och filer som innehåller information om de paket som är installerade på systemet. Denna databas är normalt inställd under installationen av systemet. När du har initialiserat, kommer alla paket som installeras på systemet att spelas in i den här databasen - till exempel är de flesta paketpaket som installeras med systemet färdiga med RPM, så deras poster kommer att inkluderas.
För att kunna fråga om RPM-databasen kan du använda kommandon som liknar ovanstående, vilket lämnar "p" -flaggan (eftersom vi inte tillhandahåller ett paketfilargument). Till exempel kommer följande kommando att söka i RPM-databasen och lista alla filer som ingår i rpm- paketet (om det är installerat):
sudo rpm -ql rpm
På samma sätt kommer följande kommando att lista alla paket som är installerade i systemet:
sudo rpm -qa
Det finns ett stort antal flaggor och alternativ som kan användas med RPM-verktygen för att hantera din programvara. En bra referens är dokumentationen som upprätthålls av Fedora-projektet.