next up previous contents
Vidare: ZipSlack och BigSlack. Uppåt: Att använda Slackware Linux. Tillbaka: vi.

Pakethantering i Slackware.

Ett programvarupaket är en bunt program, som hör nära ihop med varandra och är färdiga att installeras och köras. När man laddar ner ett källkodsarkiv, så måste man konfigurera, kompilera och installera för hand. I ett programvarupaket är detta redan gjort. Det återstår endast att installera paketet. En annan behändig sida av att installera färdiga programpaket är, att de är mycket lätta att ta bort eller uppgradera, om man så skulle önska. Slackware innehåller program för alla pakethanteringsbehov. Man kan mycket lätt installera, ta bort, uppgradera (förnya), skapa och undersöka programpaket.

Översikt över paketformat.

Innan man lär sig använda tillbehören, bör man bekanta sig med programpaketens format i Slackware. Ett slackwarepaket är helt enkelt en arkivfil, som skapats med arkiveringsprogrammet tar och komprimerats med gzip. Ett sådant paket är uppbyggt på så vis, att det skall kunna packas upp i rotfilsystemet.

Här är ett påhittat, tänkt program och ett exempel på paketering:

    ./
    usr/
    usr/bin/
    usr/bin/makehejaz
    usr/doc/
    usr/doc/makehejaz-1.0/
    usr/doc/makehejaz-1.0/COPYING
    usr/doc/makehejaz-1.0/README
    usr/man/
    usr/man/man1
    usr/man/man1/makehejaz.1.gz
    install/
    install/
    install/doinst.sh

Pakethanteringssystemet kommer att packa upp denna fil i rotkatalogen för att installera det. Det kommer i paketdatabasen att skapas en post med detta pakets innehåll, så att det senare kan uppgraderas eller avlägsnas.

Man skall lägga märke till underkatalogen install/. Detta är en särskild katalog, som kan innehålla ett skript (en kommandofil) vid namn doinst.sh, vilket skall utföras efter installationen. Om pakethanteringssystemet upptäcker denna fil, så kommer det att exekvera skriptet, när paketet är installerat.

Även andra skript kan inbäddas i paketet, men de diskuteras mer ingående i avsnittet om makepkg på s. gif.

Tillbehör för pakethantering.

Det finns fyra viktiga tillbehör för pakethantering. Dessa installerar, avlägsnar och förnyar programpaket.

pkgtool.

pkgtool(8) är ett menystyrt program, som medger installation och avinstallation av programpaket. Dess meny ser ut som i figuren. 

 figure2883
: Huvudmenyn i pkgtool.

Man kan även granska en förteckning över innehållet i installerade paket, vilken då kan se ut som i nästa figur.

 figure2888
: Granskningsläge för pkgtool.

Om man vill ta bort paket, så väljer man alternativet remove och så får man en krysslista över samtliga installerade paket. Man kryssar med mellanslagstangenten för dem, man vill ta bort, och så tar pkgtool bort dem.

En del användare föredrar detta tillbehör framför kommandoraden. Emellertid skall man lägga märke till, att kommandoradsverktygen erbjuder många fler valmöjligheter. Möjligheten att uppgradera paket finns därtill endast, när man använder kommandoradsverktygen.

installpkg.

installpkg(8) hanterar installation av nya paket i systemet. Följande syntax gäller:

   # [ROOT=<path>] installpkg [alternativ] <paketnamn>

Kommandot installpkg har tre möjliga växlar; endast en av dem kan användas åt gången.

Flagga Verkan
-m Kör makepkg på innehållet i aktuell katalog.
-warn Visar vad som skulle hända vid installation men installerar
ingenting. Försiktighetshetsmått på system i drift.
-r Installerar rekursivt alla paket i aktuell katalog och neråt.
Jokertecken kan användas till sökmask vid rekursiv installation.

Om man har satt miljövariabeln för ROOT före körningen av installpkg, kommer denna sökväg till rotkatalogen att användas vid installation. Detta kan vara katalogen /mnt eller något annat än /.

Databasen över installerade paket förvaras i /var/log/packages. En »post« i denna databas är faktiskt bara en ren textfil, en för vart paket. Om paketet ifråga innehåller ett skript, som skall utföras efter installation, så skrives detta skript till /var/log/scripts/<paketnamn>.

Man kan ange flera programpaket eller använda jokertecken för paketnamnet. Tänk på, att installpkg inte talar om, ifall det skriver över ett redan installerat paket. Det installerar helt enkelt det nya paketet ovanpå det gamla. Om man vill försäkra sig om, att gamla filer ifrån en tidigare version avlägsnas på säkert sätt, så skall man använda kommandot upgradepkg.

removepkg.

removepkg(8) hanterar avlägsnandet av installerade programpaket. Följande syntax gäller:

   # [ROOT=<path>] removepkg [option] <package name>

removepkg har fyra möjliga växlar. Endast en åt gången kan användas.

Flagga Verkan
-copy Paketet kopieras till katalogen för bevarade paket. Detta skapar
ett träd av det ursprungliga paketet utan att ta bort det.
-keep Sparar tillfälliga filer, som skapats under borttagandet.
Endast användbart för avlusningsändamål.
-preserve Paketet avlägsnas men kopieras ändå till katalogen
för bevarade paket.
-warn Visar vad som skulle hända, om man avlägsnade paketet.

Om man sätter miljövariabeln ROOT innan man kör removepkg, så kommer denna sökväg att användas som rotkatalog. Detta är till nytta, när man riggar upp nya hårddiskar till rotkatalog. De monteras vanligen under /mnt eller något annat än /.

removepkg granskar andra installerade paket och avlägsnar endast filer, som är unika för angivet paket. Det genomsöker även efterinstallationsskript efter angivet paket och tar bort symboliska länkar, det skapat.

Under avinstallationsprocessen visas en tillståndsrapport. Efter borttagandet flyttas paketets post i databasen till /var/log/removed_packages och efterinstallationsskriptet flyttas till /var/log/removed_scripts.

upgradepkg.

upgradepkg(8) förnyar ett redan installerat Slackwarepaket med en nyare version. Följande syntax gäller:

   # [ROOT=<path>] upgradepkg <package name>...

eller

   # [ROOT=<path>] upgradepkg <gammalt paket>%<nytt paket>

upgradepkg installerar först det nya paketet och tar sedan bort det gamla, för att gamla filer inte längre skall finnas kvar i systemet. Om det förnyade paketet har ett annat namn, så använder man ovan angivna syntax med procenttecken mellan namnen för det gamla och det nya paketet.

Om man har satt miljövariabeln ROOT, innan man kör upgradepkg, så kommer denna sökväg att gälla för rotkatalogen. Detta är till nytta, när man riggar upp nya hårddiskar för rotkatalogen. De monteras vanligen under /mnt eller något annat än /.

rpm2tgz/rpm2targz.

Red Hat Package Manager är ett omtyckt paketeringssystem numera. Många programdistributörer erbjuder sina produkter i RPM-format. Eftersom detta inte är vårt eget inhemska format, så anbefaller vi inte folk att förlita sig på sådana paket. Emellertid förekommer program, som endast är tillgängliga såsom RPM-filer (även källkod).

Vi medlevererar därför ett program, som omvandlar RPM-paket till vårt eget .tgz-format. Detta gör det möjligt att utvinna innehållet ur ett paket (kanske med explodepkg) till en tillfällig katalog och där undersöka detta innehåll.

Programmet rpm2tgz skapar ett slackwarepaket med ändelsen .tgz, medan rpm2targz skapar ett arkiv med ändelsen .tar.gz.

Skapa paket.

 

Att skapa programpaket för Slackware kan vara både lätt och svårt. Det finns inget bestämt tillvägagångssätt för att skapa ett paket. Det fordras endast, att paketet skall vara en gzippad tarfil, och om den innehåller ett efterinstallationsskript, så skall detta heta /install/doinst.sh.

Om man är intresserad av att skapa paket till sitt eget system eller till ett nätverk, man har hand om, så bör man ta en titt på de olika build-skripten i Slackwares källkodskatalogträd. Det finns åtskilliga sätt att skapa paket.

explodepkg.

explodepkg(8) gör detsamma, som installpkg gör för att packa upp paketet, men installerar ingenting och registrerar ingenting i paketdatabasen. Det bara packar upp arkivet i aktuell katalog.

Om man tittar på Slackwares källkodskatalogträd, så får man se, hur vi använder detta kommando till »ram«-paket. Dessa paket innehåller en stomme av vad det slutliga paketet skall bli. De innehåller alla nödvändiga filnamn (med nollängd), befogenheter och ägarskap. Ett build-skript cattar paketinnehållet från källkodskatalogen till paketbyggnadskatalogen.

makepkg.

makepkg(8) packar ihop innehållet i aktuell katalog till ett giltigt slackwarepaket. Det genomsöker katalogträdet efter symboliska länkar och skapar ett block i installationsskriptet för att dessa länkar skall kunna återskapas, när paketet installeras. Det varnar även för nollängdsfiler i paketets katalogträd.

Detta kommando kör man normalt efter det, att man har skapat paketets katalogträd.

Skapa taggar och taggfiler (för setup).

 

Slackwares setup-program hanterar installation av programvarupaket i systemet. Det finns filer, som talar om för setup, vilka paket som måste installeras, vilka som är valfria och vilka som skall väljas såsom förinställning av setup.

En taggfil (märkfil) finns i första programvaruseriekatalogen och kallas tagfile. Det innehåller en förteckning över filerna i en viss diskettserie (programvaruserie) och deras ställning (status). Deras ställning kan vara någon av följande:

Flagga Verkan
ADD Paketet är erforderligt, för att systemet skall fungera riktigt.
SKP Paketet överhoppas automatiskt (skip).
REC Paketet är icke erforderligt men anbefalles (recommended).
OPT Paketet är valfritt (optional).

Formatet är enkelt: <paketnamn>: <ställning>

Ett paket per rad. Den ursprungliga taggfilen till var programvaruserie förvaras såsom tagfile.org. Om man ställer till det med sin egen, så kan man återställa den till ursprungligt utförande.

Många administratörer föredrar att skriva sina egna taggfiler och börja med att välja »full« installation. Programmet setup läser då taggfilerna och utför installationen i överensstämmelse med deras innehåll. Om man använder REC eller OPT, visas en dialogruta med frågan om huruvida användaren vill ha ett visst paket eller ej. Därför anbefalles det, att man håller sig till ADD och SKP, när man skriver taggfiler för automatiserad installation.

Se bara till, så att taggfilerna sparas på samma ställe som originalen. Eller också kan man ange en egen sökväg till taggfilerna, om man har skräddarsydda taggfiler.

Sammanfattning.

Man bör nu vara förtrogen med programvarupaketets grundtanke och hur sådana paket användes i Slackware. Man bör även vara hemtam i de olika pakethanteringsverktygen och kunna använda dem. De viktigaste delarna av detta kapitel behandlar installation, avlägsnande och förnyande av programpaket. Detta är de vanligaste användningarna av pakethanteringstillbehören. Emellertid bör man även ha fått någon insikt i, hur man skapar och undersöker paket.


next up previous contents
Vidare: ZipSlack och BigSlack. Uppåt: Att använda Slackware Linux. Tillbaka: vi.


Denna översättning ifrån engelskan är utförd av Erik Jonsson <[email protected]> efter Slackware Linux Essentials, officiell handbok för Slackware Linux.

Denna översättning tillhandahålles liksom engelskspråkiga originalet enligt villkoren i GNU General Public License (GPL).
Uppgifterna om författarnas och översättarens namn får ej avlägsnas, utplånas eller eljest göras oläsliga.
Förvaras åtkomligt.
Bäst före: senaste ändringsdatum.
Äldre versioner bör förstöras.
Senast ändrad Tue Oct 24 09:36:13 CEST 2000

Hela boken finns här även beredd för utskrift i PDF-filen slwhbk.pdf.

http://www.slackware.com/http://www.sslug.dk/Ser bra ut i vilken vävläsare som helst.


Generaldepoten — Emil Tusens Kulturpalats.
Om goda kagor och torra kakor (»cookies«).

Innehåll:

Litteraturförteckning

Om goda kagor och torra kakor (»cookies«).