Tag Archives: ubuntu

apt-get update

Et kort lite tips hvis du bruker apt-get mye: hvis du bruker en relativt ny utgave av distroen din kan du sannsynligvis bruke apt istedenfor. Apt er fire tegn kortere å skrive og fungerer som forventet for alle de vanligste valgene:
apt-get updateapt update
apt-get dist-upgradeapt dist-upgrade
osv.
Som en ekstra bonus viser apt teksten i ulike farger for å indikere fremgang.

Så hvis du sitter på Ubuntu 14.04 eller nyere, kan det være kjekt å gå over til apt fremfor apt-get.

Jeg er usikker på om apt vil ta over/pakke inn all funksjonaliteten til apt-get på sikt, men inntil videre er det fortsett et par valg som kun finnes i apt-get. Det jeg har merket mest er at jeg fortsatt må kjøre apt-get autoremove, men det er ikke noe jeg gjør ofte nok til at det er plagsomt.

Ukens kommando: df -i

For en stund tilbake støtte jeg på et sært problem. Jeg forsøkte å installere noe, men Ubuntu fortalte meg at det ikke var mulig siden harddisken var full. Det hørtes veldig rart ut, siden jeg kunne se at harddisken hadde mer enn nok ledig plass. Jeg lurte på noe kanskje rapporterte feil mengde ledig plass, så jeg dobbeltsjekket med nautilus og df -h som viste de samme tallene. (For de som ikke kjenner den fra før, kommandoen df viser størrelse, brukt og ledig plass på harddiskene. Jeg bruker flagget -h for å få med benevning som er litt enklere for mennesker, feks. M for Megabyte, G for Gigabyte, så jeg slipper å regne sammen bytes selv.)

Etter å ha tenkt på hva dette kunne skyldes en stund kom jeg på inoder. Hva er en inode? Kort fortalt er en inode metadata om et område på disken. Den vil typisk inneholde informasjon om filstørrelse, eierskap, rettigheter og lignende. Hver fil eller mappe har en tilhørende inode som peker til den og holder på metainformasjonen om den.

Det jeg husket jeg hadde hørt om inoder var at det er et gitt antall av dem. Hvis man legger til mange nok (spesielt små) filer vil man før eller senere gå tom for inoder for å holde orden på disse. Denne situasjonen hørtes veldig teoretisk ut, så jeg hadde ikke tenkt over det som en reell problemstilling. Likevel, det kunne jo muligens forklare feilmeldingen jeg fikk.

Etter litt søking fant jeg ut hvordan jeg kan se hvor mange inoder som er i bruk. Det viste seg fort at df også har støtte for dette; df -i vil vise antall, brukte og ledige inoder. Maskinen som rapporterte full disk viste seg å ha mye ledig plass i Gigabytes, men kun et fåtall tilgjengelige inoder for å kunne opprette nye filer. Aha! Så varslet om full harddisk betydde i dette tilfellet egentlig for få inoder til å legge til nye filer (som jo forsåvidt betyr at den er full).

Nå som jeg visste hva problemet var, fjernet jeg fjernet en del eldre pakker som jeg ikke lenger trengte. Dette frigjorde flere inoder, som jeg verifiserte med df -i, og jeg kunne gå videre med installasjon av programmene jeg ønsket. Så hvis du får feilmeldinger om at harddisken er full, selv om det ser ut til å være mye ledig plass på den, kan det være en ide å sjekke om det er ledige inoder som er problemet.

PS. Det er ingen garantier for at dette blir en ukentlig spalte, men jeg likte navnet idet jeg skrev overskriften.

My list of virtual machines

list_of_vmsThought I’d share the setup I have for virtual machines, how I use them to triage bugs and experiment with various software.

First a small digression, since the observant reader will notice I am using Virtualbox. When I first discovered and started playing around with virtual machines I had a computer incapable of hardware supported virtualization. I discovered this rather quickly since every virtualization solution I tried failed to work because they all required specific CPU features. After testing several solutions, I settled on Virtualbox because it also supported software-based virtualization. I’ve later replaced that machine, and while my current computer supports hardware assisted virtualization I’m still using Virtualbox as it is straight-forward and I am familiar with it. I did briefly try a couple of other solutions when I got my new computer, but didn’t find any obvious advantages they had over sticking with my existing setup.

Now, the machines. I have a set of the currently supported Ubuntu releases, organized by their code names. (Yes, I’m aware 11.04 reached end of life a while back.) They come in handy when confirming bugs or trying to track down which release something broke (or got fixed). My main use case is: load up the relevant release a bug was reported against, verify it is reproducible there, and then check whether it is also present in the latest development release.

All are kept more or less up to date, to make sure I have the latest version of libraries and other software when attempting to reproduce bugs. When I started triaging bug reports I used to simply install the software on my main system and check if the bug was reproducible there, though I quickly changed my approach for several reasons. Mainly because my main system wouldn’t easily allow me to test with multiple releases, but also in case my setup or set of installed packages would produce a different result than a system out of the box. The latter may not always be relevant, but there are some cases where it matters. For instance, say a program fails to run without a specific library which is not installed as a dependency, however since I already have installed the library for other reasons I wouldn’t be able to reproduce the issue. In cases like that it makes more sense to check what happens on a system out of the box.

In addition to the Ubuntu releases, I also run a couple of other systems. Arch Linux is nice and since it is rolling release distribution it usually includes the latest version of programs/libraries before most other distros. It’s ideal for testing whether projects still work as expected with the latest version of their dependencies, or to try out features in newer versions of programs. If newer versions of a library or compiler is released, it’s really convinient to be able to catch any issues early before it ends up the stable version of other distributions. In addition, Arch has a rather different philosophy and approach compared to Ubuntu, which is interesting to explore.

The Debian machine is running Sid (unstable). For most of the same reason as Arch, being able to test the latest version of projects, plus it will eventually turn into the next releases of Debian, Ubuntu (and related derivatives). As Ubuntu is based on Debian, it is of course also relevant for checking whether bugs are reproducible both places in case they should be forwarded upstream. As Debian is currently in freeze for the upcoming Wheezy release, there’s not many updates these days though.

Oh, and there’s a Windows 8 preview I was trying out when it became available. Used it some when it was announced. I’m pretty sure that will expire soon.

Steam for Linux beta tilgjengelig for alle

Som en tidlig julepresang har Valve gjort betaversjonen av Steam for Linux tilgjengelig for alle. Steam er først og fremst Valve sin klient for digitalt salg av spill, men håndterer også oppdateringer, flerspiller og mye mer. Etter at Valve annonserte at en Linux-versjon var underveis og en privat beta som startet i Oktober, er nå betaen utvidet slik at hvem som helst kan teste den ut. Inntil videre er Ubuntu 12.04 og senere versjoner støttet, men det virker ikke utenkelig at dette kan utvides til flere distribusjoner på sikt.

Sammen med Steam-klienten har de også portet flere av spillene over til Linux, på samme måte som de gjorde ved lanseringen for OS X. (I enkelte tilfeller kjører til og med Linux-versjonen bedre.) Samtidig har de samarbeidet med andre aktørerer, blant annet var de med på forrige Ubuntu Developer Summit og de har også hjulpet til med å forbedre grafikkdrivere. Det er spennende å se at Valve satser på Linux, hvilken oppslutning Steam får og hvilken effekt utvidelsen av spillbiblioteket gir.

Hvordan få virtuelle maskiner i Virtualbox til å koble seg til Internett på Ubuntu 12.10

Ubuntu 12.10 ble sluppet mot slutten av forrige måned, og jeg støtte på et par problemer ettter å ha oppgradert. Det rareste var at de virtuelle maskinene jeg har i Virtualbox ikke klarte å få tilgang til noen nettsider eller Internett generelt. Jeg bruker Virtualbox til en del virtuelle maskiner, både for ulike versjoner av Ubuntu men også for å teste ut andre operativsystemer. Siden ingen av de klarte å koble seg til Internett uavhengig av hva de kjørte, konkluderte jeg fort med at problemet lå i Virtualbox. Dette ble bekreftet etter en kort runde detektivarbeid der jeg fant en relevant feilrapport, både for Ubuntu og Virtualbox.

Som det kommer frem av Ubuntu sin feilrapport og Virtualbox sin er den underliggende årsaken hvordan Virtualbox sender DNS-spørringer. Det ser ut til å kun gjelde maskiner der nettverkstilkobling er satt til NAT, som er standard for Virtualbox.

Heldigvis er det mulig å få ting til å fungere igjen. Ved å åpne en terminal og kjøre kommandoen

VBoxManage modifyvm "maskin_navn" --natdnshostresolver1 on

vil den virtuelle maskinen heller bruke vertens DNS istedenfor. Dette fungerer uten problemer, men må endres for hver enkelt maskin.

Håper dette var til hjelp for andre som har støtt på samme problem.

Ubuntu Quantal Alpha 3 kan prøves ut

Forrige torsdag ble den tredje alfa-versjonen av neste Ubuntu-versjon (kodenavn Quantal Quetzal) tilgjengelig.  Ifølge den foreløpige planen vil den endelige versjonen være ferdig 18. Oktober. Ubuntu følger seks måneders utviklingssykluser, og siden forrige offisielle versjon kom i April, betyr det at vi nå har kommet halvveis. Dette er dermed et godt tidspunkt til å teste den kommende versjonen for å se hvordan ting fungerer og rapportere feil mens det enda er god tid til å fikse dem.

Selv har jeg hatt utviklingsversjonen kjørende i en virtuell maskin i lengre tid nå, og det meste ser ut til å fungere. Den største endringen hittil er i stor grad nyere versjoner av mesteparten av den inkluderte programvaren. Bortsett fra enkelte småfeil fungerer det meste problemfritt med tanke på at det er en utviklingsversjon med hyppige endringer.

Hjelp, hva gjør jeg hvis en virtuell maskin bruker alt minnet mitt?

Jeg liker å kunne bruke virtuelle maskiner (fortrinnsvis Virtualbox), siden de gir meg mulighet til å teste ut forskjellige programmer eller andre ting uten at det forstyrrer oppsettet på maskinen jeg jobber på til vanlig. Dette gjør det enklere å eksperimentere mer fritt, og enklere å gå tilbake til slik det var før hvis noe går skeis.

Men, fra tid til annen, har jeg hatt problemer med at jeg har startet en virtuell maskin for mye. Enten fordi jeg hadde tenkt å se hvordan de virtuelle maskinene oppførte seg i nettverk eller rett og slett fordi jeg glemte jeg hadde andre kjørende. Særlig hvis det er lite minne (RAM), er det lett å ende opp i situasjoner hvor ting går såpass tregt at de tilsynelatende fryser vertssystemet. På dette tidspunktet er det selvfølgelig mulig å slå maskinen av og på igjen, men da mister jeg alt jeg har lagret, samt det tar ekstra tid. I tillegg er det ikke nødvendig, siden det er fullt mulig å bruke VirtualBox via kommandolinjen.

Si du kjører Ubuntu (eller en annen Linux-distro) og du nettopp har startet en ny virtuell maskin som sammen med de andre tar opp mesteparten av minnet og tilsynelatende fryser systemet dit. Trykk Ctrl+Alt+F1 for å komme til en annen virtuell terminal (hvordan du kommer tilbake igjen, tar vi for oss senere). Der vil du bli møtt av en svart skjerm med hvit skrift der du kan logge deg inn med brukernavn og passord. Etter en vellykket innlogging, vil du ha tilgang til en kommandolinje der du kan skrive inn kommandoer.

VirtualBox har en ypperlig klient for kommandolinjen som så vidt jeg vet kan gjøre alt det samme som det grafiske programmet. Kjør vboxmanage for å se alle mulighetene som er tilgjengelig. Det vi er interessert i nå er muligheten til å liste hvilke maskiner som kjører. vboxmanage list runningvms vil skrive ut en liste over de maskinene som kjører for øyeblikket. F. eks.
"maskin1" {masse-tall-og-bokstaver}
"maskin2" {masse-tall-og-bokstaver}

Vi har dermed navnene på de to maskinene som kjører. La oss si vi ønsker å pause den første, “maskin1”. Dette gjøres ved å kjøre følgende kommando: vboxmanage controlvm "maskin1" pause. Hvis du kjører vboxmanage controlvm ser du hvilke andre endringer du kan gjøre med maskinen, så lenge du oppgir navnet eller iden på maskinen der endringene skal gjøres. For å gå tilbake til det grafiske skrivebordet der vi kom fra, trykk Ctrl+Alt+F7. (Husk vi brukte Ctrl+Alt+F1 for å komme hit, og det er lignene terminaler fordelt på de forskjellige F-tastene).

Tilbake på skrivebordet bør ting fungere litt bedre siden den virtuelle maskinen som ble pauset opptar mindre av minnet i bruk. Du kan nå velge å stoppe maskinen helt, eller om du vil lukke andre programmer for å kunne kjøre ting samtidig. (Husk forøvrig at når du er ferdig bør du logge ut fra terminalen på Ctrl+Alt+F1 ved å bruke kommandoen exit.)

Collection of links #1

This is a collection of some various, interesting things I have stumbled across lately which doesn’t really justify a separate post each.

Someone made a Creative Commons licensed book about the architecture of open source applications. Since the code is open and freely available, this makes it possible to discuss how it is constructed and how the choices made in development affected the end result. Among the programs covered are Eclipse, Mercurial, CMake and Battle for Wesnoth. I read some parts of it, and it looks like they are already working on volume 2.

If you know what a Möbius strip looks like, you should check it out this short little story about a girl living in Möbius world. Actually, it is brilliant, so you should probably go see it anyway.

“Achieving your childhood dreams” is the name of a presentation I watched a long time ago (last fall or something), which is a really inspiring talk by Randy Pausch. He was a professor at Carnegie Mellon University. The talk is his chosen topic for what they referred to as a “last lecture”, which essentially means if you were given one last lecture to hold, what would you talk about? The twist here is that he had recently been diagnosed with cancer and informed he had maximum six months left. He also gave an interesting lecture on time managment. They have both been posted on YouTube by Carnegie Mellon.

Also on YouTube is the TV-series Pioneer One. It is an interesting approach because they are funded by donations and make the episodes freely available from their website. So far they have released four episodes, with two more coming soon. It is hard to say something about the plot without spoiling too much, but it is a sci-fi series.

And Ubuntu recently released alpha 2 of their upcoming Oneiric Ocelot release. Check here if you want to take it for a test spin, or here to see the expected release schedule. Since it is still under development, I recommend not using your day to day machine, but rather test it in a virtual machine or something in case something breaks.

Speaking of Ubuntu, you may have noticed the main colors used are orange and aubergine. If you have wondered exactly which colors are used, these two friendly owls (?) will let you know.

That’s it for now…

Jeg har visst brukt Ubuntu en stund

Jeg la for en tid merke til at Ubuntu 8.04 ikke lenger er støttet. (Dette gjelder kun utgaven for vanlige PCer, den til tjenere er støttet nesten to år til.) Det er litt rart å tenke på siden det var den første versjonen av Ubuntu jeg prøvde. Jeg hadde ikke tenkt over at det hadde gått så lang tid, men det viser seg altså at jeg har brukt det en stund etter å ha prøvd det første gang.

Etter å ha lastet ned bildefilen og brent den ut på en CD, satt jeg spent og ventet på at den skulle starte opp. Som jeg hadde hørt var det mulig å kjøre operativsystemet direkte fra CDen og jeg kunne teste alle programmene og se hvilke innstillinger som kunne justeres. Det virket veldig nytt og annerledes enn Windows, men det tok under 10 minutter fra skrivebordet var synlig til jeg hadde en god oversikt over hvor alt var.

Jeg husker jeg var imponert over hvor mye det var plass til på CDen. I tillegg til selve Ubuntu, fulgte OpenOffice med (og jeg tror Gimp var inkludert på den tiden). Under legg til/fjern programmer (som etter hvert ble erstattet av programvaresenteret) var det mulig å finne og installere et utall forskjellige programmer. Siden det var mulig å teste Ubuntu uten å installere noe, startet jeg opp fra CDen en del ganger for å utforske og se hva som var mulig før jeg til slutt endte opp med å installere det ved siden av Windows.

Det har nå gått tre år siden 8.04 ble utgitt og den er ikke lenger offisielt støttet. De utgavene som har langtidsstøtte (LTS) mottar oppdateringer i tre år for skrivebordet og fem år for tjenere. For de som ønsker LTS er det naturlige valget å oppgradere til 10.04 som kom i fjor, og vil være støttet i to år til. Det er også mulig å oppgradere til de vanlige versjonene som slippes hvert halvår. Disse hyppigere utgivelsene har nyere versjoner av programmer, men er mottar til gjengjeld oppdateringer en kortere periode enn LTS-versjoner. Selv holder jeg meg til å oppgradere hvert halvår, men jeg ser verdien av utgaver som blir støttet i lengre perioder av gangen. Neste LTS er ventet til neste år, men allerede til høsten kommer en vanlig versjon. Samtidig blir støtten for noen av de eldre versjonene avsluttet. Ubuntu har endret seg mye på bare de par årene jeg har brukt det, så det blir spennende følge utviklingen videre.

Debian Squeeze er ute!

De fleste har vel fått det med seg, men i helgen kom altså en ny utgave av Debian. Debian er er fritt operativsystem (som bla. Ubuntu baserer seg på) som er kjent for å være bunnsolid, med en stor mengde programpakker. Etter to år med testing, fiksing av bugs og nye pakker er nå Squeeze klar for å ta over etter Lenny. Jeg har prøvd Squeeze fra tid til annen den siste tiden, og likte spesielt det nye temaet med romskip og planeter. Det virket også veldig klart etter hvert som de siste kritiske problemene har blitt fikset før lansering.

Debian er forøvrig allerede igang med utviklingen av neste versjon, Wheezy.