malinux

malinux' lillablogg

Ubuntu og pakkearkiv — Denne posten er skrevet av malinux —

Et pakkearkiv, er det man på engelsk kaller repository.

 

Hvordan legger vi til, installerer fra, og fjerner pakkearkiv i Ubuntu? Her skal jeg vise hvordan man kan gjøre dette med kommandoen add-apt-repository.

 

Hva er et pakkearkiv?
Et pakkearkiv, er et slags fjernlager, som inneholder blant annet programvarepakker og bibliotekpakker. Tenk deg et fjernlager som distribuerer pakker. Når maskinen sjekker etter oppdateringer, så sender pakkebehandleren, en forespørsel til fjernlageret. Kan dere oppgradere pakkene på denne lista her? Om fjernlageret har fått inn pakker med nyere programvare, enn de pakkehåndtereren har på lista, så får du forespørsel fra fjernlageret, om du ønsker å oppgradere disse. Da sender fjernlageret ut pakker, som pakkehåndtereren så tar seg av. Pakkehåndtereren, sørger for at pakkene blir oppgradert.

Det er vanlig at progamvarepakker er avhengige av forskjellige bibliotekspakker. Såkalte avhengigheter. Ubuntu har en rekke innebygde referanser til egne fjernarkiv, men man kan også legge til tredjepartsarkiv. Tredjepartsarkiv kan inneholde programvare du ikke får fra Ubuntus fjernarkiv. De kan også inneholde nyere versjoner av programvare, enn det som er tilgjenglig fra Ubuntus arkiv.

 

Hvorfor har vi slike fjernarkiv?
Dette er en av de store styrkene med Ubuntu, og de fleste andre Linux-distrubisjoner. Fordelene med egne fjernarkiv, er at alle program- og bibliotekspakker, installeres fra samme kilde. Dette vil redusere ressursbruken, da ikke hvert enkelt program vil ha sin egen oppdateringsløsning, som kjører i bakgrunnen. En annen fordel er at alle programmer kan installeres via samme installasjonsprogram, noe som gjør at man ikke trenger å besøke det enkeltes programs respektive hjemmeside, for å laste ned programvaren deres.

Programvare, som skal inn i pakkearkivene til Ubuntu må godkjennes før det kan legges til, noe som fører til større sikkerhet. Man er altså ikke utsatt for å installere malwareinfiserte pakker/programmer, fordi det programvaren må godkjennes og undersøkes først.

Ubuntus arkivreferanser er delt inn i Main, Restricted, Universe, og Multiverse

main - hovedarkivet. Inneholder offisielt støttete programvare.

restricted - begrenset programvare. Inneholder programvare, som ikke er tilgjengelig under en fullstendig fri lisens.

universe - univers. Inneholder community-vedlikeholdt programvare og er ikke offisielt støttet av Ubuntu, men .

Multiverse, eller mulitivers, inneholder ikke-fri programvare.

Ved bruk av tredjepartsarkiv, bør man være sikker på at man kan stole på utgiveren, den som har laget arkivet, før man eventuelt legger dette til i Ubuntu-installasjonen sin.

Er for eksempel multiverse deaktivert, så kan den aktiveres slik:

sudo add-apt-repository multiverse
sudo apt-get update

Man kan da installere pakker fra arkivet, som vist under. <pakkenavn> er navnet på pakken du skal installere. <>-tegnene skal ikke med.

sudo apt-get install <pakkenavn>

Skal man deaktivere multiverse, gjøres dette slik:

sudo add-apt-repository --remove multiverse

 

I dette eksempelet er jeg ikke fornøyd med den versjonen av spillet, "Battle for Wesnoth", som jeg får installere fra Ubuntus pakkearkiv (version:1.10.7 i Ubuntu 14.04.2) og vil ha en nyere versjon, 1.12 i stedet.

Jeg har funnet ut at en bruker på launchpad, Vincent Cheng, pakker nyere versjoner av "Battle for Wesnoth" i eget pakkearkiv.
https://launchpad.net/~vincent-c/+archive/ubuntu/wesnoth

Som vi kan se på siden, så står det hvordan man installerer pakkearkiv med apt-add-repository. Vi gjør som i eksempelet her:

sudo add-apt-repository ppa:vincent-c/wesnoth
sudo apt-get update
sudo apt-get install wesnoth-1.12

ppa - betyr personlig pakkearkiv, eller personal package archive på engelsk.

launchpadbruker - i dette tilfellet: vincent-c

/pakkearkiv - i dette tilfellet: wesnoth

Så på en måte betyr dette: "Jeg ønsker å laste ned pakker fra fra det personlige pakkearkivet til launchpadbruker vincent-c i arkivet /wesnoth

Addressreferansene til tredjepartsarkivene legges inn i mappen /etc/apt/sources.list.d/ og arkivreferansene legger seg inn i *.list-filer. I dette eksempelet ligger referansene i filen: vincent-c-wesnoth-trusty.list

I fila ligger følgende linjer.

deb http://ppa.launchpad.net/vincent-c/wesnoth/ubuntu trusty main
# deb-src http://ppa.launchpad.net/vincent-c/wesnoth/ubuntu trusty main

Den første linjen, peker til de vanlige pakkene, mens deb-src-linja (deb-kilde, eller deb-source på engelsk) peker til kildekodepakker for pakkene i arkivet, som starter på deb. Dette gjør det mulig å bygge en pakke fra kildekoden selv, eller se igjennom kildekoden. Jeg kommer ikke i denne posten til å vise hvordan man bygger en pakke fra kildekode, men det kommer i en senere post.

Som standard deaktiveres deb-src. #-tegnet betyr at linjen skal ignoreres. For å aktivere kildekodepkaker, kan dette gjøres slik. Det kan også gjøres når du legger til arkivet:

sudo add-apt-repository --enable-source ppa:bruker/pakkearkiv

Etter deb og addressen, ser vi det står trusty og main. 'trusty' referer til Ubuntu 14.04, altså trusty tahr, som er kodenavnet for den Ubuntu-versjonen jeg bruker. Dette står der så man får pakker og avhengigheter, som passer med versjonen man har installert av Ubuntu.

sudo apt-get update laster inn info om nye pakker fra det nye arkivet. apt-get fungerer slik at den henter en pakke fra et tredjepartsarkiv, framfor fra det interne arkivet, om samme pakke finnes begge steder.

 

For å nedgradere en pakke fra et tredjepartsarkiv, fjernes først pakken, så arkivtilgangen, og til slutt installerer man pakken på nytt, og den henter nå pakken fra de egne arkivene i stedet.

sudo apt-get purge <pakkenavn>
sudo apt-get autoremove
sudo apt-add-repository --remove ppa:<launchpadbruker>/<arkivnavn>
sudo apt-get update
sudo apt-get install <pakkenavn>

sudo apt-get purge <pakkenavn> - avinstallerer pakken og dens konfigurasjonsfiler.

sudo apt-get autoremove - fjerner andre pakker, som pakken er avhengig av om andre pakker er avhengig av de lenger. Disse kan fjernes for å spare plass.

sudo apt-add-repository --remove ppa:<bruker>/<arkivnavn> - fjerner arkivtilgangen til tredjepartsarkivet.

sudo apt-get update - oppdaterer informasjonen om hvilke pakker maskinen har installert fra før, og hvor disse pakkene skal hentes fra. Den vil nå ikke finne arkivtilgangen vi fjernet, men da hentes pakken fra internarkivene neste gang vi kjører apt-get update.

sudo apt-get install <pakkenavn> - vil nå altså installere versjonen som er inkludert i egne arkiv.

for å se flere måter å legge til/fjerne arkivtilganger via add-apt-repositories. Besøk manualsiden til add-apt-repsoitories, slik:

man add-apt-repositories

Kilder:

http://manpages.ubuntu.com/manpages/trusty/en/man1/add-apt-repository.1.html

http://manpages.ubuntu.com/manpages/trusty/en/man8/apt-get.8.html

https://help.ubuntu.com/community/Repositories/Ubuntu

https://launchpad.net/~vincent-c/+archive/ubuntu/wesnoth


Categorised as: Terminal | Ubuntu



Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.