Terminalen: Programadministration

apt

Ubuntu anvender Debians pakkesystem dpkg (Debian package management system), som bliver administreret af programmet apt (Advances Packaging tool). Gevinsten ved at bruge kommandolinien er et stærkt og fleksibelt værktøj til at administrere ens programmer.

apt har en konfigurationsfil (/etc/apt/sources.list), der henviser til nogle repositories (programbiblioteker) på Internettet. Når man beder apt om at installeret et program søger det efter filerne i disse repositories. Man kan tilføje flere repositories enten ved at tilføje dem til etc/apt/sources.list eller ved at tilføje PPA'er (Personal Package Archieve) som er mindre pakkearkiver oprettet af private eller programudbydere.

Eksempler:

apt update
Synkroniserer din lokale apt med dine repositories.
apt upgrade
Opgraderer alle programmer på computeren som apt kontrollerer.
apt upgrade -y
Som ovenfor, men udfører kommandoen automatisk. Alle kommandoerne kan køres med -y
apt dist-upgrade
Opgraderer programmer samt de nødvendige programmer til den nyeste version der findes i /etc/apt/sources.list også selvom det ikke er din servers foretrukne version af programmet.
apt remove [program]
Fjerner [program]
apt purge [program]
Fjerner program og alle dets filer - også konfigurationsfiler
apt autoremove
Gennemgår apt og fjerner alle filer der ikke er i brug.
apt clean
Fjerner alle hentede pakker
dpkg --configure -a
Det sker at apt ikke kan anvendes fordi noget er låst (f.eks. hvis en proces er blevet afbrudt. Denne kommando reconfigurerer pakkesystemet.

Man bør opdatere sine repositories og have alle programmer på computeren opdateret før man installerer nye programmer. Det er især vigtigt at opdatere hvis man lige har tilføjet nye repositories eller PPA'er, da de ellers ikke vil blive anvendt.

man-page: apt http://manpages.ubuntu.com/manpages/xenial/en/man8/apt.8.html

Når apt fejler

Det hænder at apt fejler. Når dette sker kan det være nødvendigt at få apt til at reconfigurere sig selv. Det gøres med kommandoen:

sudo dpkg --configure -a

Når apt er geninitialiseret kan man genstarte processen ved at sætte -f på:

sudo apt install -f

Administration af tjenester på serveren

Generelt administreres tjenester på på Ubuntu med service kommandoen. Den fungerer efter nedestående skabelon:

service {start|stop|reload|restart|force-reload|status} [tjeneste]

Det som de forskellige muligheder gør er:

start
starter tjenesten (når den har været stoppet)
stop
stopper tjenesten
reload
genindlæser konfigurationsfilerne uden at tjenesten stopper
restart
genstarter tjenesten (tjenesten stopper kortvarigt)
force-reload
på ubuntu det samme som reload
status
fortæller om tjenesten er aktiv eller ej

Ønsker du f.eks. at genstarte bind9 tjenesten gøres det med kommandoen:

service restart bind9

For at tjekke om en tjeneste kører

service status bind9
tj@server1:~$ systemctl status bind9 ● bind9.service Loaded: not-found (Reason: No such file or directory) Active: inactive (dead)

man-page: service http://manpages.ubuntu.com/manpages/trusty/en/man8/service.8.html

Fjerne overflødige kerner

Ubuntu beholder de gamle kerner der ligger på systemet, så de kan anvendes til at boote med. Dette er en sikkerhedsfeature, da man risikerer at nye kerner indeholder fejl, eller mangler funktionalitet som dine programmer anvender. De fylder dog en del.

De kan fjernes med følgende kommando (en linie):

sudo apt purge $(dpkg -l linux-{image,headers}-"[0-9]*" | awk '/ii/{print $2}' | grep -ve $(uname -r | sed -r 's/-[a-z]+//') | sed ':a;N;$!ba;s/\n/ /g')
tj@server1:~$ sudo apt purge $(dpkg -l linux-{image,headers}-" [0-9]*" | awk '/ii/{print $2}' | grep -ve $(uname -r | sed -r 's/-[a-z]+//') | sed ':a;N;$!ba;s/\n/ /g') Indlæser pakkelisterne... Færdig Opbygger afhængighedstræ Læser tilstandsoplysninger... Færdig Følgende pakker vil blive AFINSTALLERET: linux-generic-lts-utopic* linux-headers-3.16.0-30* linux-headers-3.16.0-30-generic* linux-headers-3.16.0-46* linux-headers-3.16.0-46-generic* linux-headers-generic-lts-utopic* linux-image-3.16.0-30-generic* linux-image-3.16.0-46-generic* linux-image-extra-3.16.0-30-generic* linux-image-extra-3.16.0-46-generic* linux-image-generic-lts-utopic* 0 opgraderes, 0 nyinstalleres, 11 afinstalleres og 0 opgraderes ikke. Efter denne handling, vil 559 MB diskplads blive frigjort. Vil du fortsætte? [J/n]

Repositories

Når apt administrerer programmer sker det ved at, at det henter programmet og de programmer der også skal installeres fra disse repositories. Det kan ske fra de officielle repositories som main, partner, universe, restricted osv. Det er også muligt at oprette sine egne repositories ved hjælp af PPA'er da de officielle repositories kan være ret konservative og kun tilbyde ældre versioner af nogle programmer. Man kan sørge for køre med de nyste versioner af sin software ved hjælp af PPA'er.

Det kan være nødvendigt, hvis man (som jeg) anvender LTS-versionerne (Long Term Support) af Ubuntu, så man f.eks. har den nyeste version af Libreoffice, GIMP'en og andre programmer man anvender.

Herunder vil du lære at aktivere, tilføje og fjerne repositories ved hjælp af at redigere i konfigurationsfilen /etc/apt/sources.list og ved at anvende kommandolinien.

Når man har tilføjet eller ændret i repositories skal man først "aktivere" dem. Det gøres ved at køre

sudo apt update

Kører man med LTS-versionerne, så kan det være nødvendigt at lave en dist-upgrade, hvor man opdatere de centrale dele af sit system. På den måde får man fordelene ved ikke-LTS'erne uden at miste de 5 års sikkerhedsopdateringen.

Kør kommandoen:

apt dist-upgrade -y

Ved hjælp af sources.list

Et repository bliver konfigureret ved hjælp af en "dev" linie, som ser ud som herunder:

deb http://extras.ubuntu.com/ubuntu xenial main

Linien fortæller hvor den er placeret, hvilken distribution det drejer sig om og hvad repositoriet hedder. Læg mærke til at nogle af linierne starter med deb-src. src står for source og giver adgang til programmernes kildekode. Du skal kun bruge dem hvis du er programmør og udvikler.

Da ubuntu blev installeret blev /etc/apt/sources.list konfigureret med standard repositories. Det betyder bl.a. at "partner" repositoriet er deaktiveret. I dette reposiory ligger der proporitære og closed-source programmer som kan være praktiske at få adgang til. Det skal vi have ændret. Åbn /etc/apt/sources.list med nano.

nano /etc/apt/sources.list
## Uncomment the following two lines to add software from Canonical's ## 'partner' repository. ## This software is not part of Ubuntu, but is offered by Canonical and the ## respective vendors as a service to Ubuntu users. # deb http://archive.canonical.com/ubuntu xenial partner <-- denne linie skal ændres # deb-src http://archive.canonical.com/ubuntu xenial partner ## This software is not part of Ubuntu, but is offered by third-party ## developers who want to ship their latest software. deb http://extras.ubuntu.com/ubuntu xenial main deb-src http://extras.ubuntu.com/ubuntu xenial main

Som du kan se herover har flere af linierne et # foran sig. Det betyder at de er udkommenteret, og derfor ikke bliver læst af programmet. Her vil vi aktivere partner.

Find linien hvor der står

# deb http://archive.canonical.com/ubuntu xenial partner

Fjern # og gem filen.

deb http://archive.canonical.com/ubuntu xenial partner

Ved hjælp af PPA

Der findes en række repositories som er generelle for Ubuntu og Debian distributioner, og som bliver vedligeholdt til at tjene specifikke distributioner. Det hænder dog at man gerne vil have andre versioner af programmerne end disse repositories tilbyder. Dette bliver løst ved hjælp af PPA'er.

Nedestående kommando tilføjer PPA linien og sikkerhedsnøgler til systemet.

add-apt-repository PPA:[PPA navn] -y

Hvis man f.eks. ønsker at have den nyeste version af GIMP'en installeret anvender man PPA'en ppa:otto-kesselgulasch/gimp. Den aktiveres med følgende kommando:

add-apt-repository ppa:otto-kesselgulasch/gimp -y

Herefter vil commandoen oprette to nye filer i mappen /etc/apt/sources.list.d, så apt fremover kigger i dette arkiv også. Dem kan vi se med følgende kommando:

ls -a /etc/apt/sources.list.d | grep otto
otto-kesselgulasch-gimp-trusty.list otto-kesselgulasch-gimp-trusty.list.save

Lad os kigge på indholdet af .list-filen:

cat /etc/apt/sources.list.d/otto-kesselgulasch-gimp-trusty.list
### THIS FILE IS AUTOMATICALLY CONFIGURED ### # You may comment out this entry, but any other modifications may be lost. deb http://ppa.launchpad.net/otto-kesselgulasch/gimp/ubuntu xenial main

Fjerne PPA'er

PPA'er er nemme at fjerne manuelt. fremgangsmåden er:

  1. Afinstaller programmet
  2. Fjern PPA
  3. Opdater apt

Herunder fjerner jeg program og PPA til skype for linux.

Fjern programmet

sudo apt purge skypeforlinux
Indlæser pakkelisterne... Færdig Opbygger afhængighedstræ Læser tilstandsoplysninger... Færdig Følgende pakker vil blive AFINSTALLERET: skypeforlinux* 0 opgraderes, 0 nyinstalleres, 1 afinstalleres og 0 opgraderes ikke. Efter denne handling, vil 167 MB diskplads blive frigjort. Vil du fortsætte? [J/n] j (Læser database ... 200478 filer og kataloger installeret i øjeblikket.) Afinstallerer skypeforlinux (5.3.0.1) ... Behandler udløsere for desktop-file-utils (0.22-1ubuntu5.1) ... Behandler udløsere for gnome-menus (3.13.3-6ubuntu3.1) ... Behandler udløsere for mime-support (3.59ubuntu1) ... Behandler udløsere for hicolor-icon-theme (0.15-0ubuntu1) ...

Dan et overblik over de installerede PPA'er.

ls /etc/apt/sources.list.d
geany-dev-ubuntu-ppa-xenial.list geany-dev-ubuntu-ppa-xenial.list.save google-chrome.list google-chrome.list.save graphics-drivers-ubuntu-ppa-xenial.list graphics-drivers-ubuntu-ppa-xenial.list.save otto-kesselgulasch-ubuntu-gimp-xenial.list otto-kesselgulasch-ubuntu-gimp-xenial.list.save pmjdebruijn-ubuntu-darktable-release-xenial.list pmjdebruijn-ubuntu-darktable-release-xenial.list.save skype-stable.list skype-stable.list.save virtualbox.list virtualbox.list.save

Fjern herefter de konkrete PPA'er ved hjælp af rm. Læg mærke til at jeg sætter * efter kommandoen for både at få .list og .list.save.

sudo rm /etc/apt/sources.list.d/skype-stable.*

Opdater apt

sudo apt update

Så er Skype for linux væk fra din computer.