Igår släpptes Ubuntu 16.04 LTS Xenial Xerus[0][1] och givetvis vad det dags för uppgradering. Då jag har flera maskiner som ska uppdateras så tänkte jag spara lite på bandbredden – dels för att minska påverkan på officiella spegelservrar men dels för att det är kul och att jag kan. Min laptop, min flickväns, min mors laptop (som har hängt med utan ominstallation sedan 11.10, vilket bara det är imponerande), farmor och farfars, mfl. står inför uppgradering av Ubuntu eftersom 16.04 är en LTS och verkar vara en riktigt bra sådan. Uppgraderingen hat gått bra – bättre än någonsin, skulle jag säga, och min laptop fungerade precis likadant som innan (bortsett från ownCloud-klienten vars indikator inte syns ännu, men det kommer antaligen att fixas snart). Det är en go Ubuntu-utgåva helt enkelt. Men det är inte det som jag ska tala om, utan hänvisar istället vidare för goa saker att göra efter installation[2] samt vad som är nytt[3][4].

Nej, istället tänkte jag tipsa om hur du, ifall du har flera maskiner att uppdatera, kan sätta upp en egen spegel (eller cache) så att du endast behöver ladda ner paketen en gång (från officiell spegelserver, alltså). Det hela är väldigt enkelt och du är klar på en kvart.

Vad du behöver är en maskin (alltså dator med Ubuntu – helst, men andra Debian-derivat eller Linuxdistar fungerar givetvis också, men med andra instruktioner för installation) som ska agera paketcache och sedan en eller flera andra maskiner att uppgradera. Jag kommer nedan att benämna denna maskin som server för enkelhetens skull och ”klient” till de som ska uppgraderas.

Server

  1. Installera paketet apt-cacher samt webservern apache2
    sudo apt-get install apt-cacher apache2
  2. Aktivera apt-cacher genom att redigera filen /etc/default/apt-cacher och ändra så att det står ”AUTOSTART=1” (utan citationstecken)
  3. Starta om Apache:
    sudo service apache2 restart
  4. Redigera nu filen /etc/apt-cacher/apt-cacher.conf och se till att du har aktiverat:
    allowed_hosts = * (om du nu vill att alla ska kunna använda servern som cache)
    distinct_namespaces = 1 (för att cacha paket för alla Ubuntu-utgåvor)

    Och, kanske viktigast, för att tillåta uppgradering av senare Ubuntu-utgåvor behöver du lägga till denna rad (en modifiering av orginal regexp) [5]:

    installer_files_regexp = ^(?:vmlinuz|linux|initrd\.gz|changelog|NEWS.Debian|[a-z]+\.tar\.gz(?:\.gpg)?|UBUNTU_RELEASE_NAMES\.tar\.gz(?:\.gpg)?|(?:Devel|EOL)?ReleaseAnnouncement(?:\.html)?|meta-release(?:-lts)?(?:-(?:development|proposed))?)$
  5. Starta nu om apt-cacher:
    sudo service apt-cacher restart
  6. Öppna nu en webbläsare och gå till http://server:3142 (med ”server” menas serverns IP eller hostname). Obs! Är serverns paket av äldre modell så kanske inte denna adress fungerar och du får istället använda dig av: http://server:3142/apt-cacher eller http://server/apt-cacher
  7. Högst upp på sidan står nu hur du kan gå tillväga gör att lägga till denna cache på din dator, så vi går vidare till detta.

Klienten

  1. Skapa och redigera filen /etc/apt/apt.conf.d/01proxy
    sudo nano /etc/apt/apt.conf.d/01proxy
    eller
    sudo gedit /etc/apt/apt.conf.d/01proxy
  2. Lägg till denna raden för att sedan spara och stänga: (”server” är återigen serverns IP eller hostname)
    Acquire::http::Proxy "http://server:3142";
  3. Kör sedan en uppdatering av paketlistor – förhoppningsvis fungerar allt som det ska:
    sudo apt-get update
  4. Klart! Ifall det nu är uppgradera Ubuntu du vill göra så kör du:
    sudo do-release-upgrade -d (för uppgradering i terminal, till exempel för servrar)
    eller
    sudo upgrade-manager -d (för grafisk uppgradering)

Vill du sedan inte använda servern som cache längre så tar du helt enkelt bort filen /etc/apt/apt.conf.d/01proxy

 

Referenser

0: Ubuntu 16.04 LTS Xenial Xerus is released!

1: Release Notes

2: 16 Things To Do After Installing Ubuntu 16.04 LTS

3: Ubuntu 16.04 LTS New Features

4: Ubuntu 16.04 LTS (Xenial Xerus) Available For Download, See What`s New

5: https://help.ubuntu.com/community/Apt-Cacher-Server

För mer om apt-cacher: https://help.ubuntu.com/community/Apt-Cacher-Server