Pakkehåndtering på Debian og venner

Denne howto (brugsanvisning) vil hjælpe dig med at forstå hvordan pakkesystemet på en Debianbaseret linuxdistribution fungerer og forklare om de værktøjer du har til rådighed når du vil installere nye programer, opdatere din installation eller opgradere hele systemet fra eksempelvis Debian Etch til Debian Lenny.

De grafiske værktøjer som nok virker tiltalende for begynderen vil blive beskrevet efter de værktøjer som anvendes via kommandolinien. Årsagen til dette er et forsøg på at give en dybere forståelse af hvordan dit pakkesystem fungerer.

Kommandolinie:

dpkg
apt
aptitude (også semi grafisk)

Grafisk:

Synaptic
Adept
kpackage
Update-manager
Adept-notifier
GDebi
Tilføj/Fjern (Add/Remove)

Afhængigheder – Dependecies:

Programmerne ovenfor er til for at hjælpe dig med at installere nye programmer og opdatere dit system men før vi kigger nærmere på dem vil jeg forklare lidt om begrebet “afhængigheder” (dependecies).

Et af grundprincipperne i et unix baseret styresystem er at man ikke skal lave (programmere) den samme ting to gange da dette vil være spild af god energi.
På windows vil du ofte hente en enkelt fil når du downloader et program fra en hjemmeside men når du anvender dit pakkesystem på Linux vil et program du installerer tit bestå af flere forskellige dele.

For at forklare dette vil jeg bruge et eksempel som linuxbrugere elsker… Madopskrifter🙂

Først har vi en opskrift på et franskbrød

6 dl mælk
100 g Smør
50 g gær
2 spsk sukker
1 spsk salt
1000 g mel

Ganske kort og ingen er vel i tvivl om at det bare skal væltes ned i en skål og æltes for derefter at bages i ovnen.

Den næste opskrift er på en simpel småkage

100 g sukker
200 g smør
300 g hvedemel
vanilliesukker

Disse to opskrifter har flere ting tilfælles men lad os fokusere på smøret. Smør er i sig selv en lille opskrift.

mælk fra en ko (andre dyr tilladt)
skumme fløden fra mælken
rør fløden til den stivner
tilsæt eventuelt salt

Hvis man hver gang man skriver en opskrift skulle beskrive hvordan man laver smør ville det resultere i en masse gentagelser og spild af plads. Smøret er for at referere til et unix baseret styresystem et lille selvstændigt “program”. Både franskbrød og småkage er afhængig af smøret.

For at overføre dette til din computer kan vi tage et kig på to programmer som bruges til at fremvise billeder.

Kuickshow

gtksee

Hvert af disse programmer har en række afhængigheder men da de begge bruges til at fremvise billeder er nogle af funktionerne ens for begge programmer.

libjpeg62
libpng12-0
libtiff4

Dette er tre af de pakker kaldet “libarys” (biblioteker) som de to programmer har tilfælles for at vise billeder på skærmen. De tre pakker bruges til “tolke” henholdsvis jpg, png og tiff billeder. Programmørerne der laver programmet “kuickshow” kunne godt bygge disse funktioner ind i selve programmet men hvis den del af programmet som tolker billederne laves som en selvstændig del vil den også kunne anvendes af andre fotoprogrammer såsom gtksee, gimp og endda også hjælpe med at fremvise billeder i din internetbrowser.
Altså laves den samme ting ikke to gange og programmører på tværs af forskellige projekter kan hjælpe hindanden med de helt basale funktioner i eksempelvis fremvisning af et billede.

Godt så.. Det var lidt om afhænigheder.

Debian package management system – dpkg

Dette program kaldes forkortet for “dpkg” og er hele fundamentet for pakkehåndtering på en Debian baseret linux distribution. Din installation er sammensat af en masse filer som kaldes “deb filer” og kan sammenlignes lidt med “exe filer” som anvendes til Microsoft Windows.
De andre værktøjer såsom aptitude og synaptic arbejder som et ekstra lag ovenpå dpkg. At skulle forklare dpkg fuldkommen kunne i sig selv blive en større doktorafhandling så jeg vil nøjes med at vise nogle eksempler og komme med lidt forklaringer.

Før vi går igang med dpkg bør du vide hvordan du anvender en kommandoprompt, terminal, konsol, kommandofortolker, skal eller shell. Altsammen forskellige navne for den samme ting. Du skal vide hvordan en kommando kan udføres som henholdsvis bruger og root og det vil være en fordel hvis du ved hvordan man navigerer fra en mappe til en anden.

Selvstændig howto:
En kort (og begyndervenlig) introduktion til kommandolinien.

Den første dpkg kommando er ganske simpel og handler blot om at vise en liste over de pakker dit system er sammensat af.

$ dpkg -l

Denne kommando viser hele listen over programmer som tilsammen bliver til hele dit installerede system.

Da listen over programmer er meget lang kan vi få terminalen til at fremvise en side af gangen.

$ dpkg -l | more

Du vil nu få vist en side af gangen og for at forsætte til næste side bruges mellemrumtasten (space). Den lodrette streg “|” kaldes “pipeline” og forkortes ofte til “pipe”

Installation af nye programmer via dpkg er ganske nemt hvis du kan downloade det som en deb-fil. Et eksempel kan være internetbrowseren “opera” som kan downloades fra http://www.opera.com/download

Der sættes en prik i det korekte felt. Klik derefter på download. Om kort tid skulle du gerne have en fil på din harddisk som hedder noget i retning af “opera_x.xx-xxxxxxxx.x-shared-qt_en_i386.deb”. Selvfølgelig kan filen i dit tilfælde hedde noget andet eller være et helt andet program.


Fotoprogrammet “Picasa” som laves af google kan også downloades som en deb-fil. Programmet kan hentes via http://picasa.google.com/linux/ og deb-filen vil hedde “picasa_x.x.xxxx-x_i386.deb”.

# dpkg -i picasa_x.x.xxxx-x_i386.deb
# dpkg -i <navn_på_fil.deb>

Du skal for at installere programmer med dpkg være root. Hvis du ikke bryder dig om at anvende terminalen til installation af deb pakker kan programmet GDebi anvendes.


Når et program er installeret kan det med stor sandsynlighed findes i din menu.

Lad os nu kigge på lidt flere kommandoer til brug af dpkg.

Hvis du eksempelvis vil se en liste over programmer som indeholder ordet “picasa” eller “browser” men samtidig udelade andre pakker fra listen kan du anvende “grep”.

$ dpkg -l | grep picasa
$ dpkg -l | grep browser
$ dpkg -l | grep <indsæt udtryk>

Denne kommando vil vise detajleret information om en installeret pakke. Deriblandt størrelse, hvem der er “vedligeholder” (maintainer) af pakken, hvilke afhængigheder pakken har O.S.V.

$ dpkg –status picasa
$ dpkg –status <pakkenavn>

Og til sidst kommandoen som bruges til at afinstallere en deb-pakke fra dit stystem.

# dpkg –purge picasa
# dpkg –purge <pakkenavn>

Apt & aptitude

“Advanced Package Tool” er det fulde navn for programmet apt og kan oversættes til “avanceret pakke værktøj”. I denne howto vil vi let og elegant springe hen over apt da programmet aptitude ifølge forfatterens mening er mere brugbart.

For at forstå aptitude og efterfølgende synaptic, adept og andre grafiske pakkeværktøjer er det nødvendigt at vi først kigger på filen “sources.list”. Den danske oversættelse vil være noget i retning af kildeliste.

De fleste linux distributioner er sat op med et pakkesystem som kan hente tusindvis af programmer fra nogle centrale servere. Hvis man anvender Microsoft windows vil man typisk komme ud for at skulle hente programmer som winamp, winzip, firefox, nero burning, codecs O.S.V fra hver sin hjemmeside. En typisk Linux distribution kan igennem et pakkesystem hente programmer fra servere (netværks-filspejle) hvorpå det hele ligger.
Der er flere fordele ved dette men den mest praktiske og tidsbesparende er at du med en enkelt kommando eller ganske få klik med din mus vil kunne opdatere ALLE programmer på din computer til den nyeste version. Hvis vi igen sammenligner med Microsoft Windows så svarer det en smule til funktionen “Windows Update” som dog kun opdaterer programmer lavet og distribueret af Microsoft.

Filen “sources.list” indeholder adresserne på de servere du kan hente programmer fra og findes i mappen “/etc/apt”.


Her ses en standard sources.list til Debian Etch. Det er muligt at tilføje servere som indeholder programmer der ikke ligger på de officielle filspejle (mirrors). Senere i denne howto vil der blive forklaret mere om din sources.list.

Lad os komme igang med aptitude.

# aptitude update


Denne kommando henter oplysninger fra de servere som er angivet i kildelisten (sources.list) om hvilke nye pakker der findes og er klar til at installere på dit system.

# aptitude upgrade
# aptitude safe-upgrade


Denne kommando opdaterer, henter, installerer de pakker som der findes nye versioner af.
I nyere versioner af aptitude er denne kommando ændret til # aptitude safe-upgrade

$ aptitude search <udtryk>
$ aptitude search filezilla


Søger i pakkesystemet. Udtryk som browser, game, photo kan anvendes men også det præcise navn på et ønsket program. I den søgning som billedet viser søges på “filezilla” som er en fremragende FTP klient.

$ aptitude show <pakkenavn>
$ aptitude show filezilla


Viser detaljer om en pakke, hvilke afhængigheder pakken har O.S.V. Kommandoen kan sammenlignes med “dpkg –status <pakkenavn>” men kan modsat dpkg vise information om en pakke der ikke er installeret. Som undtagelse vil jeg her anbefale at tage et kig på en “apt” kommando da denne kan virke bedre til søgning. Kommandoen er “apt-cache search <udtryk>”

# aptitude install <pakkenavn>
# aptitude install filezilla


Installerer den valgte pakke med tilhørende afhængigheder.

# aptitude dist-upgrade
Kan bruges til at opgradere hele din installation til en nyere udgave men kan også “rydde op i sagerne” samt installere tilbageholde pakker.

# aptitude purge <pakkenavn>
Afinstallerer pakke og sletter konfigurationsfiler.

# aptitude clean
Sletter downloadede pakker (cache) som opbevares i i “/var/cache/apt/archives”

For ikke at snyde dig fuldkommen for information om apt kommer her nogle få kommandoer. Jeg vil anbefale aptitude frem for apt men ingen regel uden undtagelser og anvender du Sidux vil du være tvunget til at anvende apt.

# apt-get update
# apt-get upgrade
# apt-get dist-upgrade
$ apt-cache search <søgeord>
# apt-get install <pakkenavn>
# apt-get remove <pakkenavn>
# apt-get remove –purge <pakkenavn>
# apt-cache madison <pakkenavn>
# apt-get clean

Grafiske værktøjer.

synaptic:


Synaptic er et godt og stabilt værktøj til grafisk pakkehåndtering. Uanset om du søger efter nye programmer, vil fjerne gamle eller opdatere hele systemet kan det klares med ganske få museklik. Programmets grafiske brugerflade er optimeret til brugerfladen GNOME men er du mere til KDE er det ikke en hindring.


Adept Manager:


Adept pakkehåndtering er et grafisk værktøj som først og fremmest er tiltænkt den grafiske brugerflade KDE. Nogle få knapper, et søgefelt og en forholdsvis overskuelig visning af programmers status.

Kpackage:


Kpackage er en grafisk pakkehåndtering som også hører hjemme i den grafiske brugerflade KDE. Programmet har i tidligere versioner været mindre praktisk at anvende men i nyere versioner af KDE (KDE 4.0) er det begyndt at se mere fornuftigt ud.
Update-manager & Adept-notifier:


Update-manager og Adept-notifier er to programmer som holder øje med om der skulle være opdateringer til de programmer du har installeret. Når du tænder din computer vil et af de to programmer fortælle om du bør opdatere din computer. På billederne vises programmet Update-manager som stort set er identisk med Adept-notifier.

GDebi:


Dette program bruges til grafisk installtion af debian pakker. Højreklik på en pakke du har downloadet og åben den med GDebi. Resten burde være ganske let.

Tilføj / Fjern:


Hvis du anvender Ubuntu eller Kubuntu vil du have mulighed for at anvende tilføj/fjern (add/remove) som ikke er et fuldkommen selvstændigt program men et begyndervenligt “lag” ovenpå dpkg og synaptic.


sources.list

Tidligere i denne howto har vi kigget lidt på filen “sources.list” (kildeliste) men ikke forklaret om hvilke muligheder der findes for at tilføje flere servere (filspejle – mirrors) hvorfra dit pakkesystem kan installere programmer.
Afhængigt af hvilken Linux distribution du anvender vil der være forskel på hvilke servere du kan og bør tilføje! Før du ændrer i din sources.list bør du derfor søge detaljeret information om den Linux distribution du anvemder. Der vil i denne howto blive forklaret mest om mulighederne på Debian men Ubuntu er ikke fuldkommen glemt.

En Debian Linux installation er standard sat op til at kunne installere tusindvis af programmer men kun hvis de er under en såkaldt “fri licens” i stil med GNU GPL eller lignende.
For at forklare kan vi kigge lidt på det velkendte Mp-3 format som bruges til komprimering af lyd. Teknologien til at komprimere lyd til Mp-3 formatet er udviklet af Fraunhofer og er ikke under en licens der kan godkendes af Debians retningslinier for fri software. Derfor kan Debian Linux og andre distributioner som udgangspunkt ikke lave dine CDer om til Mp-3 filer. Andre eksempler kan være Realplayer, Acrobat reader, Adobe flash player eller Skype som heller ikke er under en såkaldt fri licens og derfor ikke kan installeres via pakkesystemet såfremt der anvendes en standard sources.listSom bruger kan du have brug for at anvende ufrie programmer og i den forbindelse tilføje adresser til din sources.list hvorfra disse kan installeres og efterfølgende holdes opdateret på en nem måde.

For en bruger af Debian Linux er der primært tre ting at kigge på i forbindelse med sources.list.

contrib
non-free
debian-multimedia


Her ser vi igen en standard sources.list til Debian Etch som ikke giver mulighed for at installere ufri software via pakkesystemet.


Ved at tilføje “non-free contrib” til hver af de linier som starter med “deb” bliver det muligt at installere flere programmer som ikke kan godkendes af de tidligere nævnte “retningslinier for fri software”. Yderligere er endnu en server tilføjet. Denne indeholder programmer som Debians udviklere under ingen omstændigheder vil eller kan have noget at gøre med.

Hvis du ønsker at opgradere (dist-upgrade) fra eksempelvis Debian Etch til Debian Lenny (Lenny er som dette skrives stadig under udvikling og kaldes også testing) ændres du blot din sources.list til følgende.

For begynderen kan dist-upgrade muligvis blive en “smertefuld” oplevelse men har du anvendt linux et stykke tid og ikke føler dig skæmt af et par advarsler og småproblemer er dist-upgrade en rar funtion!

VÆR OPMÆRKSOM PÅ at hvis du ikke ved hvad du foretager dig kan du ved at tilføje en forkert server risikere at ødelægge din installation! Spørg gerne andre til råds på sider som linuxin, lifal eller et andet forum hvor der er hjælp at hente.

Servere du muligvis kan have glæde af:

Til Debian:

http://debian-multimedia.org
http://www.debian-unofficial.org
http://www.backports.org
http://www.debian.org/volatile
http://shame.tuxfamily.org/repo
http://virtualbox.org

Til Ubuntu:

http://medibuntu.org
http://virtualbox.org

Det var lidt om pakkehåndtering på Debian, ubuntu, kubuntu, mepis, kanotix, sidux, knoppix Xandros… Og andre! Håber det giver et overblik over mulghederne for at installere nye programmer og holde dit system opdateret. Som en sidste ting kan nævnes at forfatterens sources.list til Debian kan findes på dette link http://tom.delekassen.dk/etc/apt/sources.list

Du kan desuden læse mere om pakkesytemet på disse sider og tusind andre

http://debianguiden.dk/index.php/Brug_af_apt_og_dpkg

http://debianguiden.dk/index.php/Introduktion#Debians_pakkesystem

http://debianguiden.dk/index.php/Ofte_stillede_sp%C3%B8rgsm%C3%A5l#Apt

8 kommentarer to “Pakkehåndtering på Debian og venner”

  1. mads Says:

    barvo bravo flot guide ….

    Nu skal jeg selv lige have nosset mig færdig med med DesktopBSD skriverier

  2. Peter Says:

    Lækker guide. Det må have taget sin tid at skrive den🙂

  3. muttix Says:

    @mads
    Tag det roligt!… du kan godt lige unde mig forsiden et par dage🙂

    Og jo det tog sin tid at skrive.. alt for lang tid! Havde den liggende så godt som færdig i næsten et år så det var rart at slippe af med den dårlige samvittighed!

    Næste gang jeg laver noget til siden her tror jeg dog at jeg skal arbejde på at få det tilpasset bedre til sidens layout. Der er mange af de små “fedtede” thumbnails som oprindeligt var noget større i min html version…
    At der siden sidst jeg lavede en howto her på siden er skiftet tema gør det helle ikke nemmere at vudere hvor brede billeder må være.. Mener at jeg tidligere har kigget på bredde+pixels men..

    Men godt nok!

    Og tak for rosen selvom det jo ikke lige er jer to som har brug for hjælp til at bruge pakkesystemet🙂

    Tom

  4. Peter Says:

    Hvad mener du med at vi ikke har brug for hjælp til pakkesystemet? Jeg er stadig ikke kommet væk fra apt, så det er jo på tide jeg kigger på lidt mere “moderne” (*host*grafisk halløj*host*). Og som jeg kan se er der jo rig mulighed for det🙂

  5. muttix Says:

    Nåh ja… fordi man har været lykkelig apt bruger i 10 år kan adept-notify-dimsen eller andet jo godt være brugbart🙂 Jeg bruger dog ikke selv de automatiske opdateringsfunktioner da et af dem i en TIDLIG version drillede lidt ved en kerneopdatering… sikkert ikke noget problem længere..

  6. julemand101 Says:

    Rigtig god guide der går godt i dybden med at forklare hvordan pakkesystemet under Linux fungerer. Hvis jeg skal sige noget negativt er det denne sætning:

    “Din installation er sammensat af en masse filer som kaldes “deb filer” og kan sammenlignes lidt med “exe filer” som anvendes til Microsoft Windows.”

    Synes den skal fjernes da exe filer på ingen måde kan sammenlignes med deb filer. Exe er blot en fil der kan køres ligesom vi i Linux sætter +x ind med chmod. Exe betyder altså ikke installation eller noget som helst andet mens Deb netop kun kan bruges til pakkeinstallation. Hvis man skal sammenligne Deb med noget er det en nedpakket fil der indeholder programmet som du så pakker ud i systemet (mens der bliver noteret hvor det bliver gemt).

  7. muttix Says:

    Lige præcis den påstand havde jeg forudset jeg ville få lidt kritik for🙂 Skal se om jeg kan finde en bedre formulering.

    Tak for ord!

    (og hov.. “dpkg-reconfigure” kan jo absolut heller ikke udelades så der skal vist rettes lidt)

  8. smeagol Says:

    Et mega godt stykke arbejde bare synd den har ligget et helt år


Der er lukket for kommentarer.

%d bloggers like this: