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
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
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:
Ø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
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]
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.
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
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
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.
PPA'er er nemme at fjerne manuelt. fremgangsmåden er:
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