Pakethantering

Visst..det här är bra att veta..så läs..och sedan går du direkt till Swaret ;-)

Detta är utdrag från Erik Jonssons översättning av "The Book", se även under Erkännanden.

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. .

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, avinstallation och granskning
av programpaket.
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.
Hur det ser ut hittar du under pkgtool.

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

   # [ROOT=<path>] installpkg [alternativ] <paketnamn>
#Som förval är ROOT= / så om du inte har något "speciellt" behöver du inte
skriva någonting.
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.


Denna översättning ifrån engelskan är utförd av
Erik Jonsson <generaldepoten@rambler.ru> 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

Valid HTML 4.01!