En kort guide til APT
Hvad betyder APT?
APT er en forkortelse for Advanced Packaging Tool, og det er en samling af programmer og script's der kan hjælpe sysadmin (i dit tilfælde root) med installation og management af deb-filerne.
Sources List
"APT" -systemet har brug for en konfigurationsfil, der indeholder information om lokaliseringen af de installerbare og opdaterbare pakker, og denne konfigurationsfil henvises hyppigt til med betegnelsen sources.list.
Sources are contained in a directory or folder named:
/etc/apt/sources.list.d/
I denne findes to filer med navnene:
/etc/apt/sources.list.d/debian.list and
/etc/apt/sources.list.d/sidux.list
Dette gør det lettere at skifte fil-spejl (automaiseret), og det gør det sikrer at erstatte lister.
Du kan tilføje din egen /etc/apt/sources.list.d/*.list fil
Alle sidux ISO'er har allerede de følgende sources som standard:
# Free University Berlin/ spline (Student Project LInux NEtwork), Germany deb ftp://ftp.spline.de/pub/sidux/debian/ sid main contrib non-free fix.main fix.contrib fix.non-free #deb-src ftp://ftp.spline.de/pub/sidux/debian/ sid main contrib non-free fix.main fix.contrib fix.non-free
Yderligere information om non-free behov kan findes i vores altid opdaterede sidux.list and debian.list Fra og med 28/02/2008 0800 hrs UTC er de:
# See sources.list(5) for more information, especially # Remember that you can only use http, ftp or file URIs # CDROMs are managed through the apt-cdrom tool. # The /etc/apt/sources.list.d/ directory provides a way to add sources.list # entries in separate files that end with sources.list file. # Unstable deb http://ftp.de.debian.org/debian unstable main contrib non-free # deb-src http://ftp.de.debian.org/debian unstable main contrib non-free # Testing # deb http://ftp.de.debian.org/debian testing main contrib non-free # deb-src http://ftp.de.debian.org/debian testing main contrib non-free # Experimental # deb http://ftp.de.debian.org/debian experimental main contrib non-free # deb-src http://ftp.de.debian.org/debian experimental main contrib non-free # sidux # Free University Berlin/ spline (Student Project LInux NEtwork), Germany deb ftp://ftp.spline.de/pub/sidux/debian/ sid main contrib non-free fix.main fix.contrib fix.non-free #deb-src ftp://ftp.spline.de/pub/sidux/debian/ sid main contrib non-free fix.main fix.contrib fix.non-free
OBS: I dette eksempel indikerer ftp.de at de tyske repositorier (filspejle) anvendes. Du kan redigere denne fil (som root) til for eksempel ftp.dk, ftp.uk eller ftp.de (de fleste lande har lokale filspejle), for derigennem at anvende de repositorier som er tættest på dig. På denne måde kan filoverførselshastigheden øges, og båndbredde spares.
For at kunne modtage opdateret information om pakkerne anvender APT en database. Databasen indeholder pakkenavnet, men også en oversigt over hvilke andre pakker der er nødvendige for en given pakke (-afhængigheder/ dependencies). Programmet apt-get anvender denne database når den installerer de pakker du har valgt for at løse alle eventuelle afhængigheder, og garanterer på den måde at programmerne vil fungere. Kommandoen der opdaterer denne database er 'apt-get update' (det følgende eksempel er fra en tysk sidux installation):
# apt-get update (which returns) Get:1 http://sidux.com sid Release.gpg [189B] Get:2 http://sidux.com sid Release.gpg [189B] Get:3 http://sidux.com sid Release.gpg [189B] Get:4 http://ftp.de.debian.org unstable Release.gpg [189B] Get:5 http://sidux.com sid Release [34.1kB] Get:6 http://ftp.de.debian.org unstable Release [79.6kB]
Installering af nye pakker
Hvis vi antager at databasen er opdateret og navnet på den pakke du gerne vil installere er kendt, så vil den følgende kommando installere pakken (i dette eksempel 'qemu') og alle dependencies (senere vil vi vise hvordan du søger efter og finder pakker.)
# apt-get install qemu Reading package lists... Done Building dependency tree... Done The following extra packages will be installed: bochsbios openhackware proll vgabios Recommended packages: debootstrap vde The following NEW packages will be installed: bochsbios openhackware proll qemu vgabios 0 upgraded, 5 newly installed, 0 to remove and 20 not upgraded. Need to get 4152kB of archives. After unpacking 11.9MB of additional disk space will be used. Do you want to continue [Y/n]? n
Afinstallation af/ sletning af en pakke
Følgende kommando vil afinstallere pakken 'example', vær dog opmærksom på at eventuelle dependencies ikke vil blive afinstalleret sammen med den, men det kommer vi tilbage til under deb-orphan:
# apt-get remove example apt-get remove gaim Reading package lists... Done Building dependency tree... Done The following packages will be REMOVED: gaim gaim-irchelper 0 upgraded, 0 newly installed, 2 to remove and 310 not upgraded. Need to get 0B of archives. After unpacking 4743kB disk space will be freed. Do you want to continue [Y/n]? (Reading database ... 174409 files and directories currently installed.) Removing gaim-irchelper ... Removing gaim ...
I det viste eksempel bliver pakken gaim afinstalleret, men programmets konfigurationsfiler bliver ikke fjernet sammen med programmet når du anvender 'remove' kommandoen. Du kan anvende disse konfigurationsfiler hvis du senere installerer gaim igen.
Hvis du vil have konfigurationsfilerne slette samtidigt med at du afinstallerer programmet bruger du kommandoen 'apt-get remove --purge':
# apt-get remove --purge gaim # apt-get remove --purge gaim Reading package lists... Done Building dependency tree... Done The following packages will be REMOVED: gaim* 0 upgraded, 0 newly installed, 1 to remove and 309 not upgraded. Need to get 0B of archives. After unpacking 4678kB disk space will be freed. Do you want to continue [Y/n]? Y (Reading database ... 174405 files and directories currently installed.) Removing gaim ... Purging configuration files for gaim ...
Her var det ikke kun filerne i /etc/gaim der blev fjernet, men alle konfigurationsfiler blev også slettet. Det er værd lige at bemærke her, at eventuelle filer, der er skabt af programmet efter dets installation (altså ikke under selve installationen), ikke vil blive slettet med denne kommando.
Efter at databasen er blevet opdateret kan man finde ud af hvilke pakker der findes opdateringer til/ nye versioner af: (first install apt-show-versions)
# apt-show-versions -u libpam-runtime/unstable upgradeable from 0.79-1 to 0.79-3 passwd/unstable upgradeable from 1:4.0.12-5 to 1:4.0.12-6 teclasat/unstable upgradeable from 0.7m02-1 to 0.7n01-1 libpam-modules/unstable upgradeable from 0.79-1 to 0.79-3 fonts-ttf-west-european/unstable upgradeable from 1.3-9 to 1.3-1-1 fonts-ttf-decoratives/unstable upgradeable from 1.3-1 to 1.3-1-1 sysv-rc/unstable upgradeable from 2.86.ds1-3 to 2.86.ds1-4 libpam0g/unstable upgradeable from 0.79-1 to 0.79-3 unionfs-utils/unstable upgradeable from 1.0.14+cvs2005092318w-M1 to 1.0.14+cvs2005092908w-M1libpam-runtime/unstable upgradeable from 0.79-1 to 0.79-3 passwd/unstable upgradeable from 1:4.0.12-5 to 1:4.0.12-6 teclasat/unstable upgradeable from 0.7m02-1 to 0.7n01-1 libpam-modules/unstable upgradeable from 0.79-1 to 0.79-3 fonts-ttf-west-european/unstable upgradeable from 1.3-9 to 1.3-1-1 fonts-ttf-decoratives/unstable upgradeable from 1.3-1 to 1.3-1-1 sysv-rc/unstable upgradeable from 2.86.ds1-3 to 2.86.ds1-4 libpam0g/unstable upgradeable from 0.79-1 to 0.79-3 unionfs-utils/unstable upgradeable from 1.0.14+cvs2005092318w-M1 to 1.0.14+cvs2005092908w-M1
Opdatering af en enkelt pakke, inklusiv pakkens dependencies, (for eksempel pakken gcc-4.0) kan gøres med:
# apt-get install gcc-4.0 apt-get install gcc-4.0 Reading package lists... Done Building dependency tree... Done gcc-4.0 is already the newest version. 0 upgraded, 0 newly installed, 0 to remove and xxx not upgraded
Nedgradering og/eller at sætte en pakke på Hold
Nogle gange er det nødvendigt at gå tilbage til en tidligere version af en pakke, måske på grund af støre bug i den sidste version du lige har installeret.
Hold
echo package hold|dpkg --set-selections
For at tage pakken af Hold
echo package install|dpkg --set-selections
For at se alle pakker på Hold:
dpkg --get-selections | grep hold
Nedgradering af en pakke
I det følgende bruger vi kmahjongg som eksempel:
tillad/afkommenter testing sources i/etc/apt/sources.list
(slet #) så der står
deb http://ftp.nl.debian.org/debian/ testing main contrib non-freeapt-get update
apt-get install -t testing kmahjongg
Sæt så den nyligt installerede pakke på hold med:
echo kmahjongg hold|dpkg --set-selectionskommenter igen testing sources i /etc/apt/sources.list
apt-get update
Når du vil installere den seneste nye version af pakken, gør du følgende:
echo kmahjongg install|dpkg --set-selections apt-get update apt-get install kmahjongg
System opgradering - dist-upgrade
Hvis hele systemet skal opgraderes da opnås dette gennem en dist-upgrade. Du bør altid kontrollere om der i øjeblikket findes advarsler mod dette på sidux hjemmeside, og om der findes advarsler mod de pakker som dit system vil opgradere. Hvis du har brug at holde en pakke tilbage så den ikke opgraderes, -sætte den på hold kan du kigge her og se hvordan du gør Nedgradere eller 'Hold' en pakke
At begrænse sig til en 'upgrade' af 'debian sid' anbefales ikke.
Hyppighed af dist-upgrade
dist-upgrade skal du udføre så ofte som du kan komme til det, ideelt set en gang om ugen, mindst en gang om måneden for at være sikker. En dist-upgrade der kun udføres hver 2. eller 3. måned bør anses som de yderliggende grænser for sikkerheden. For ikke-standard pakker, eller hjemme-kompilerede pakker skal du udvise ekstar opmærksomhed ved dist-upgrade, eftersom de kan ødelægge dit system til enhver tid pga. inkomptabilitet.
Kun downloade pakker
En smart metode til at se hvilke pakker der kan opgraderes er anvendelse af -d parameteren:
apt-get dist-upgrade -d
-d parameteren tillader dig at hente alle de pakker der skal opgraderes uden faktisk at installere nogen af dem, fra en konsol. Dette kan du for eksempel gøre mens du er logget ind i X (den grafiske brugerflade), du kan så udføre den faktiske dist-upgrade på et senere tidspunkt fra init 3. Du kan så kontrollere eventuelle advarsler og eventuelt afbryde processen.
apt-get dist-upgrade -d Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... Done The following NEW packages will be installed: elinks-data The following packages have been kept back: git-core git-gui git-svn gitk icedove libmpich1.0ldbl The following packages will be upgraded: alsa-base bsdutils ceni configure-ndiswrapper debhelper discover1-data elinks file fuse-utils gnucash gnucash-common initscripts isdnutils-base libaprutil1 libcapi20-3 libdvdread3 libfuse2 libmagic1 libvlc0 linux-sound-base locales mount mozilla-plugin-vlc python-glade2 python-gtk2 siduxcc siduxcc-common strace sysv-rc sysvinit sysvinit-utils tzdata util-linux vlc vlc-nox 35 upgraded, 1 newly installed, 0 to remove and 6 not upgraded. Need to get 23.4MB of archives. After this operation, 594kB of additional disk space will be used. Do you want to continue [Y/n]? (Y will download the upgraded packages without touching the installed system)
Efter 'dist-upgrade -d' er færsig med at hente pakkerne og du ønsker at udføre dist-upgrade, hvad enten øjeblikkeligt efter eller på et senere tidspunkt, så følg venligst følgende retningslinier:
Log ud KDE.
Gå til tekst-mode ved at taste Ctrl+Alt+F1
log på som root, og skriv så init 3
apt-get update
apt-get dist-upgrade
kør install-binary-gfx script hvis xorg blev opdateret og du har et tilsvarende grafikkort, ellers
init 5 && exit
Nu er du advaret hvis du skulle vælge ikke at udføre din dist-upgrade i init 3 tilstand...
De gode grunde til IKKE at anvende NOGET SOM HELST ANDET end apt-get til dist-upgrade
Pakkemanagere som adept, aptitude, synaptic og kpackage er ikke altid i stand til at tage højde for den store mængde af ændringer der sker i sid (afhængigheder ændres, navne ændres, vedligeholdelses scripts ændres, ...). Det er dog ikke udviklernes af disse værktøjers skyld; -de skaber udemærkede værktøjer der er utroligt gode til den stabile del af debian, de er bare ikke egnet til de massive ændringer der opstår i, og derfor de specielle krav der er til opdatering af den ustabile version som debian Sid er.
Du kan sagtens bruge disse værktøjer til at søge efter pakker som du gerne vil installere, men du bør holde dig til apt-get når du skal installere/afinstallere/dist-upgrading
Pakkemanager som adept, aptitude, synaptic og kpackage er alle non-deterministiske (for komplekse pakke udvalg), og med et hurtigt bevægende mål som sid, og værre endnu, -eksterne repositorier af tvivlsom kvalitet (vi hverken anbefaler eller anvender disse, men de er en realitet på brugernes systemer) har du en eksplosiv blanding der skriger efter katastrofen. Et andet problem er at alle disse GUI pakke-managere alle skal eksekveres i init 5 og/eller i X, og det at foretage en dist-upgrade i init 5 og/eller i X (eller enddog bare en upgrade, selvom dette ikke anbefales), vil uværgeligt føre til at du beskadiger dit system forbi det punkt hvor det kan genoprettes. Måske ikke idag, og måske heller ikke imorgen, men det vil ske før eller siden!.
apt-get på den anden side holder sig strengt til de instruktioner den får og gør præcist som den får besked på. Hvis der er nogle pakker der ødelægges kan du nemt finde og debug/ fikse årsagen, hvis apt-get vil fjerne halvdelen af systemet (f.eks. pga. biblioteksændringer) så er det op til systemadministratoren (det vil sige dig) at vurdere om det nu virkeligt også skal gennemføres.
Det er af disse grunde at debian builds anvender apt-get, ikke de ander pakke managers.
Søgning efter pakker med apt-cache
En anden meget nyttig kommando i APT-systemet er apt-cache; det søger APT-databasen og viser dig information om pakker; for eksempel: for at få vist en liste over alle pakker der indeholder eller nævner "sidux" og "manual" gør du følgende:
$ apt-cache search sidux manual sidux-manual-de - the official de sidux manual sidux-manual-ro - the official ro sidux manual sidux-manual-hr - the official hr sidux manual sidux-manual-common - the official sidux manual - common files sidux-manual-en - the official en sidux manual sidux-manual-ru - the official ru sidux manual sidux-manual-da - the official dk sidux manual sidux-manual - the official sidux manual - all languages sidux-manual-nl - the official nl sidux manual sidux-manual-es - the official es sidux manual
Ønsker du yderligere information om en bestemt pakke, kan du bruge:
$ apt-cache show sidux-manual-en Package: sidux-manual-en Priority: optional Section: doc Installed-Size: 1088 Maintainer: Kel Modderman <kel@otaku42.de> Architecture: all Source: sidux-manual Version: 01.12.2007.06.03-1 Depends: sidux-manual-common Filename: pool/main/s/sidux-manual/sidux-manual-en_01.12.2007.06.03-1_all.deb Size: 391222 MD5sum: 60f2175c3c5709745a4b4256ccc3c49d SHA1: e275a0b27628b6aa210a4ced48d3646b438e78b8 SHA256: 2792580c7a091521301064180a1d0d8901f0a4af407b90432b9f8d8b6b3603ca Description: the official en sidux manual This manual is divided into common sections, for example, a subject pertaining to partitioning is found in Partitioning your Hard Drive, and topics regarding the Internet/WIFI are grouped in Internet and Networking. There are some topics that cannot be grouped or require stand-alone status. . As with any new documentation there will be errors/mistakes/typos, although we hope otherwise regarding errors and mistakes (typos we can live with) please forgive us. . As the body of work grows, more documentation will be added and we at sidux are sure that this will prove to be a very valuable resource for you and we thank you for being a part of sidux.
Alle installerbare versioner af en bestemt pakke (afhængig af din sources.list) kan vises med:
$ apt-cache policy sidux-manual-en
sidux-manual-en:
Installed: (none)
Candidate:01.12.2007.06.03-1
Version table:
01.12.2007.06.03-1 0
500 http://sidux.com sid/main Packages
En komplet beskrivelse af APT-Systemet kan findes i APT-HOWTO
Søgning efter pakker med kio-apt
Ved at anvende en kio-slave kan Konqueror bruges som en ufarlig måde at anvende en GUI til at søge efter pakker i APT. Det er en GUI søgemaskine, uden mulighede for at installere eller opgradere pakker.
Det er et godt alternativ til andre pakkemanageres søgefunktion såsom adept, aptitude, synaptic og kpackage, og ved at anvende dette kan du ikke fristes til at installere eller opgradere i X med værktøjer der ikke er sikre at anvende under SID (eftersom muligheden ikke findes i kio-apt).
Du kan søge i pakke databasen både indenfor APT, og/ eller Debian 'package search' på Debians hjemmeside. Programmet giver en god opsummering med informationen fra apt-cache policy og apt-cache show.
Anvendelse:
- apt:/search? expression:søger i pakkedatabasen efter 'expression'. Ligesom apt-cache search
- apt:/show? package: viser detallieret information om 'package'. Ligesom apt-cache show. Viser også policy.
- apt:/policy? package: viser policy for 'package'. Ligesom apt-cache policy.
- apt:/list? package: viser filerne i 'package'.


Installation
sux apt-get update && apt-get install kio-apt
Start så konqueror og skriv følgende i adressefeltet:
apt:/
og tast retur. Se beskrivelsen for alle muligheder, inklusiv hvordan du søger med compact form eller extended form.
En fuldstændig beskrivelse af APT-Systemet kan findes ved APT-HOWTO

Søg online - offline