Kommandoer
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 med kommandoen, hvor -f står for "fix broken":

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@tj-VirtualBox:~$ 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@tj-VirtualBox:~$ 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

Repository: Et sted hvor noget er opbevaret eller gemt

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 (Personal Package Archieve) 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.

VIGTIGT

Når man har tilføjet 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:

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. Disse linier er ikke nødvendige medmindre man er programmør og udvikler. langt de fleste kan med fordel sætte et # foran så linierne eller helt fjerne dem.

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 gå ned i bunden af filen:

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. Fjern # foran deb-linien så det ser ud som herunder:

deb http://archive.canonical.com/ubuntu xenial partner
# deb-src 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 (Personal Package Aarchives).

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

tj@tj-VirtualBox:~$ 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:

deb http://ppa.launchpad.net/otto-kesselgulasch/gimp/ubuntu xenial main

Nogle gange giver en apt upgrade Besked om at nogle pakker er blevet holdt tilbage efter en PPA opdatering (se rød markering).

tj@tj-VirtualBox:~$ sudo apt upgrade
Indlæser pakkelisterne... Færdig
Opbygger afhængighedstræ        
Læser tilstandsoplysninger... Færdig
Beregner opgraderingen ... Færdig
Følgende pakker er blevet holdt tilbage:
  linux-generic-lts-utopic linux-headers-generic-lts-utopic
  linux-image-generic-lts-utopic
0 opgraderes, 0 nyinstalleres, 0 afinstalleres og 3 opgraderes ikke.

Det skyldes, at installationen kræver nyere filer end dem der er tilgængelige i den konkrete version. For at få adgang til dem skal vi lave en dist-upgrade.

sudo apt dist-upgrade

Herefter kører installationen igennem.

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
tj@tj-VirtualBox:~$ 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) ...
tj@tj-VirtualBox:~$ 

Dan et overblik over de installerede PPA'er.

ls /etc/apt/sources.list.d
tj@tj-VirtualBox:~$ ls /etc/apt/sources.list.d
danielrichter2007-ubuntu-grub-customizer-xenial.list
diesch-ubuntu-testing-xenial.list
diesch-ubuntu-testing-xenial.list.save
geany-dev-ubuntu-ppa-xenial.list
geany-dev-ubuntu-ppa-xenial.list.save
george-edison55-ubuntu-nitroshare-xenial.list
george-edison55-ubuntu-nitroshare-xenial.list.save
google-chrome.list
google-chrome.list.save
graphics-drivers-ubuntu-ppa-xenial.list
graphics-drivers-ubuntu-ppa-xenial.list.save
inkscape_dev-ubuntu-stable-xenial.list
inkscape_dev-ubuntu-stable-xenial.list.save
libreoffice-ubuntu-ppa-xenial.list
libreoffice-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
wine-ubuntu-wine-builds-xenial.list
wine-ubuntu-wine-builds-xenial.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