Tips og Trick til Debian

Aftenens formål

Følgende er ikke på programmet:

Lidt om mig

Jeg undgår helst sammenligninger fordi det ikke vil være fair. Jeg har langt fra samme erfaring med noget som helst andet system end Debian.

dpkg

dpkg er det grundlæggende værktøj i Debian og svare til rpm i Red Hat, Suse, Mandrake og mange andre.

Mange options, i det daglige bruger jeg fire:

dpkg --list 'slashem*'
dpkg -l 'slashem*'
Lister alle kendte pakker hvis navn begynder med 'slashem'
dpkg --listfiles slashem-common
dpkg -L slashem-common
Viser hvilke filer der er i pakken slashem-common
dpkg --status slashem-common
dpkg -s slashem-common
Viser statusoplysninger om slashem-common, blandt andet om pakken er installeret.
dpkg --search slashem
dpkg -S slashem
Leder efter alle installerede filer der hedder noget med 'slashem'

dpkg - lidt mere avanceret

dpkg vedligeholder en database over hvilke pakker der er installeret på systemet og hvilke pakker der bør være installeret. Man kan læse og skrive til denne database med:

Hvis man sætter en pakke på 'hold' vil apt-get ikke opgradere den. Dette gøres med:

# echo slashem hold | dpkg --set-selections

Når man så senere vil opgradere pakken igen kan man bruge kommandoen:

# echo slashem install | dpkg --set-selections

dpkg-reconfigure

Mange pakker bliver under installation konfigureret med DebConf. Disse pakker kan rekonfigureres med dpkg-reconfigure <pakke>.

Spørgsmål har forskellig prioritet. dpkg-reconfigure med flaget -p kan man få den til kun at stille vigtige spørgsmål.

For at ændre hvilke spørgsmål der skal stilles under selve installationen kan man bruge dpkg-reconfigure debconf


apt-get

apt-get har nogle interessante muligheder ud over normal installation:

source
Henter kildeteksten til en pakke
build-dep
Henter afhængigheder nødvendige for at bygge en given pakke.
dselect-upgrade
Foretager de skridt der er nødvendig for at installere og fjerne de pakker der er markeret i dpkg's database med dpkg --set-selections
clean
Fjerner alle deb-pakker som apt-get har downloadet. Dette kan spare en masse plads i ens /var-partition.
autoclean
Fjerner alle downloadede pakker der ikke længere kan downloades og derfor kan anses for at være forældede.

Backup af et Debiansystem

Ud over alle ens filer (inklusiv /etc) er der to dele af et Debiansysstem der kan være relevant at tage backup af: Listen af installerede pakker og DebConf-databasen.

Det gøres på følgende måde:

# dpkg --get-selections > pakkeliste.backup
# debconf-get-selections > debconfdb.backup

Man kan bruge sin backup med følgende kommandoer:

# debconf-set-selections < debconf.backup
# dpkg --set-selections < pakkeliste.backup
# apt-get dselect-upgrade

(debconf-get-selections findes i pakken debconf-utils)


apt-cache

apt-cache bruges til at vise oplysninger om de pakker apt kender til.

apt-cache search bruges til at søge efter pakker. Der søges både i navnet og i beskrivelsen, med flaget --names-only søges kun i navne.

apt-cache show viser oplysninger om en pakke

apt-cache madison viser hvilke versioner apt-sources der har hvilke versioner af en pakke.


apt-listbugs og apt-listchanges

Disse to pakker får apt-get til at skrive forskellige ting ud når man kører en apt-get upgrade.

apt-listbugs henter en liste over rapporterede fejl i en pakke

apt-listchanges skriver ændringer der er sket i en pakke ud baseret på oplysningerne i changelog-filen.


apt-spy og netselect-apt

Disse to værktøjer (fra pakkerne af samme navne) hjælper med at finde de bedste apt-sources man er bedst forbundet til og derfor er bedst at hente fra.

apt-spy prøver at downloade data fra et repository og se hvor god forbindelsen er.

netselect-apt ping'er og traceroute'er forskellige mirrors og finder det der ligger tættest på.


cron-apt

cron-apt sørger for om natten at opdatere hvilke pakker apt-get kender. Lignende funktionalitet kan let opnås ved at indsætte følgende i ens crontab:

15 3 * * * apt-get update && apt-get -dy dist-upgrade

Flaget -d får apt-get til kun at downloade pakker uden at installere og -y gør at apt-get selv svarer ja til at den skal downloade.

HUSK -d. Hvis I kommer til at kun skrive -y kan jeres system lide stor skade!!!!!


debfoster

Hvis man tit prøver nye pakker ender man med at installerer mange pakker man ikke direkte er interesseret i på grund af afhængigheder.

debfoster hjælper til at rydde op i disse ved at vedligeholde en database over de pakker man er interesseret i. Så kan man let fjerne pakker kun installeret på grund af afhængigheder.

Bare udfør debfoster som root.


aptitude

En blandt flere egentlige front-ends til apt.

Baseret på ncurses og giver en pæn adgang til pakkedatabasen og til at installerer afhængigheder.


apt-build og apt-src

apt-build og apt-src er to værktøjer til at selv bygge optimerende debian-pakker med.

apt-build er primært beregnet til at man oversætter en lang række pakker med en fast mængde af optimeringer (-O3 -fomit-frame-pointer -mcpu=pentium4)

apt-src er primært beregnet til at man skal lave en speciel udgave af en enkelt pakke med nogle ændringer i.


make-kpkg

make-kpkg er måde at bygger kerner på 'The Debian Way'.

Denne kommando sørger for at samle moduler, initrd og kald til lilo på samme måde som den officielle kernepakke, men giver muligheden for selv at konfigurere sin kerne.

make-kpkg findes i pakken kernel-package


Stable, Testing og Unstable

Stable er den gennemtestede udgave af Debian. Der er bliver lavet sikkerhedsopdateringer og ikke meget andet. Gammelt software.

Testing er egentlig tænkt som et værktøj til at sørger for let at kunne frigive en ny Stable med gode afhængigheder. Nyere software, ingen sikkerhedsopdateringer og måske mere stabil end undstable.

Unstable - hot of the press, pakker direkte fra udviklernes maskiner. Hvis dit system går i stykker må du beholde begge stykker.


apt-get.org og backports.org

En lang række steder kan man finde uofficielle Debianpakker. De to største er apt-get.org og backports.org.

http://apt-get.org/ er en samling links til alle mulige steder med uofficielle pakker. Der kan både findes eksperimentelle versioner, optimerende versioner, nyere pakker oversat til Stable og software Debian ikke må/vil distribuerer.

http://backports.org/ er en stor samling af nyere pakker oversat til Stable.


apt-preferences

Hvis man bruger flere forskellige pakke-samlinger er man ikke interesseret i bare at vælge den pakke med højst versionsnummer.

Ved at rette i /etc/apt/preferences kan man styre hvilke pakke-samlinger man vil installere hvad fra.

Filen er beskrevet i manualsiden apt_preferences(5).

Package: postfix
Pin: release c=ipv6
Pin-Priority: 600

Package: postfix-pcre
Pin: release c=ipv6
Pin-Priority: 600

reportbug

reportbug er Debians standard-værktøj til at rapportere fejl.

Man kan rapportere fejl med sit almindelige email-program, men reportbug sørger for at medtage en masse nødvendig information.


bugs.debian.org og packages.debian.org

To rigtige gode urler der giver adgang til et væld af informationer om pakker i Debian.

http://bugs.debian.org/237975
Viser fejl nummer #237975
http://bugs.debian.org/sarien
Alle fejl i pakken 'sarien'
http://bugs.debian.org/peter@makholm.net
Alle fejl i pakker lavet ef mig
http://packages.debian.org/
Generelt søgeside til pakker i Debian
http://packages.debian.org/netcat6
Generelle oplysninger om pakken netcat6

update-alternatives

Debian vedligeholder en række symlinks til programmer der 'gør det samme'. For eksempel vil vi starte en passende vi-implementation uanset hvilke af pakkerne vim, vile, vigor, nvi etc man har installeret og emacs vil starte en emacs eller en xemacs.

For at rette disse links bruges programmet update-alternatives


sensible-editor, x-terminal-emulator, www-browser, ...

En række programmer har brug for at åbne en editor, en xterm en browser eller lignende. Under Debian vil sådan et program kalde en bestemt kommando som ovenstående.

sensible-editor vil på basis af en række valg vælge en fornuftig editor (blandt andet på basis at variablene EDITOR og VISUAL)

x-terminal-emulator og www-browser er links vedligeholdt af update-alternatives der kalder en fornuftig terminal i X eller browser.


bash-completions

Hvis man bruger bash kan man fjerne udkomenteringen af følgende tre linjer i enten sin egen .bashrc eller globalt i /etc/bash.bashrc:

    if [ -f /etc/bash_completion ]; then
      . /etc/bash_completion
    fi

Så har man completion på apt-get og apt-cache (både kommandoer og pakkenavne) og en lang række andre kommandoer både debian-specifikke og generelle Linux-kommandoer.


Gode maillister

debian-user-danish@lists.debian.org
Dansk liste om Debian. Ikke meget trafik, men debianspecifikke spørgsmål er gode at stille her.
debian-danish@lists.debian.org
Tilsvarende engelsk liste. (meget mere trafik)
debian-news@lists.debian.org
Debian Weekly News - ugentligt nyhedsbrev om hvad der foregår i Debian

Se hvordan man tilmelder sig på http://lists.debian.org/


De sidste tips

Installer pakken fortunes-debian-hints. Så kan man få vist et tilfældigt Debian-tip hver gang man logger ind.

Prøv at udføre kommandoen apt-get moo

Peter Makholm, peter@makholm.net