Intervju: Lagde sin egen Linux-distribusjon

Hvordan lage din egen distro?

Vi har snakket med nordmannen bak Draco Linux.

Side 1: Introduksjon

Trykk på bildet for Dracos hjemmeside
Trykk på bildet for Dracos hjemmeside

Her på Hardware.no har vi testet fem ulike Linux-distribusjoner (nyere utgaver er ikke medregnet). For de av dere som synes dette er mange varianter av det samme operativsystemet, så kan vi opplyse dere om at det finnes hundrevis av Linux-distribusjoner der ute.

Grunnen til dette er at kildekoden til Linux og mye av programvaren til dette operativsystemet, er fritt tilgjengelig for alle til å distribuere og modifisere som de vil. Dette gjør at alle har muligheten til å lage sin egen Linux-distribusjon, til og med deg!

Vi har tatt en prat med Ole Andre Rodlie - også kjent som Olear på forumet. Han står for øyeblikket alene bak utviklingen av Draco Linux, en distribusjon for viderekommende Linux-brukere.

Side 2: Intervju - Del 1

Intervju - Del 1

For det første - hvem er du?

Mitt navn er Ole Andre Rodlie, 26 år og bosatt i Kristiansund. Til daglig jobber jeg som webutvikler og systemadministrator.

Hva er Draco Linux? For hvilken målgruppe er Draco ment, og hva får den til å skille seg fra konkurrentene?

KISS-distribusjoner

Distribusjoner som følger KISS (Keep it simple, stupid!) prinsippet er opptatt av å holde ting enkelt. Det er viktig å ikke forveksle enkelhet med brukervennlighet, du finner nemlig ikke mange grafiske verktøy for konfigurasjon i KISS-distribusjoner. Nei, her må du være fornøyd med å redigere konfigurasjonsfiler for hånd, men hvordan dette gjøres skal være logisk og enkelt.

Du får som regel mye større kontroll over en KISS-distribusjon, men sammenlignet med en brukervennlig distribusjon som Ubuntu er vedlikehold av systemet gjerne en del vanskeligere.

Draco er en KISS-distro (Keep It Simple, Stupid!), der målet er å gi en stabil, liten og rask distribusjon. En distribusjon som kan brukes til alt fra servere til arbeidsstasjoner. Mesteparten av inspirasjonen er hentet fra NetBSD og Slackware.

Målgruppen til Draco er eksisterende Linux-brukere, primært folk med tidligere erfaring fra Slackware, Arch eller Gentoo.

Jeg vil så klart ikke hindre uerfarne brukere fra å bruke Draco, men jeg vil ha fram at Draco ikke er noe man prøver uten tidligere erfaring med Linux eller BSD.

Det som skiller Draco fra de andre distribusjonene er oppbygningen. Draco er delt i to, basesystem og tredjepart. Disse partene lever uavhengig av hverandre. Basesystemet inneholder kernel, kompiler og nok programvare til å bruke systemet. Tredjepartsprogramvaren inneholder alt det andre man forventer fra en distribusjon, KDE, XFCE, GNOME osv. Det er mulig å installere/bygge rundt 5000 pakker til Draco.

De fleste distribusjoner tar vanligvis et valg når det gjelder binærpakker og kildekode, det er enten eller. I Draco kan man velge selv, binærpakker og kildekode går hånd i hånd, man kan bruke binærpakker til basesystemet og kanskje velge å tilpasse og kompilere tredjepartspakkene selv, eller delvis. Alt er opp til brukeren.

Draco blir gitt ut en gang i året. Tredjepartsprogrammene blir oppdatert 4 ganger i året, så man holder seg relativt oppdatert.

Installasjon av Draco.
Installasjon av Draco: Her er det ikke det visuelle som står i fokus.

Hva gav deg lyst til å lage din egen Linux-distribusjon?

Slackware og NetBSD

Slackware var en av de første Linux-distribusjonene, og er per i dag den eldste distribusjonen som fortsatt er aktiv. Når Slackware ble sluppet for første gang 16. Juli 1993, fikk det sitt navn fordi utvikleren ikke ville at distribusjonen skulle bli tatt for seriøst. Slackware var, i likhet med Draco, et privat hobby prosjekt.

NetBSD er en spin-off av den første BSD-distribusjonen, 386BSD. Tanken bak NetBSD var å få til en mer åpen utviklingsmodell enn den 386BSD følgte, noe som ville gagne alle. NetBSD står også bak en del av utviklingen til pkgsrc, etter at NetBSD kopierte pakkesystemet fra FreeBSD for å bruke det som distribusjonens offisielle pakkesystem i 1998.

For rundt to år siden, på en av mine daglige surfe-runder jeg kom over et innlegg på diskusjon.no med tittelen: "Noen som vil lage "Experimental Slackware"/Distro?"

Dette passet meg veldig bra, trådstarter så ut til å ha samme motiver som meg, forbedre Slackware. Vi startet forsiktig med utviklingen av eSlack (prosjektnavnet). Det første som ble gjort var å skrive om pakkesystemet, der tok jeg inspirasjon fra Pacman (Arch) og pkgsrc (NetBSD).

Tiden gikk og flere pakker ble lagt til, blant annet modulær X.org, HAL/D-BUS og kernel 2.6. Noe Slackware på den tiden ikke hadde. På slutten av 2006 begynte ting å stoppe opp, Draco hadde blitt for stor for to personer, og grunnet manglende interesse og ressurser ble Draco lagt død.

eSlack/Draco var på ingen måte tapt tid, Slackware inkluderer den dag i dag kode fra Draco.

Etter en pause på rundt et halvår tok jeg fram Draco igjen, denne gangen som et enmannsprosjekt og med et nytt pakkesystem.

Du sier du er alene om utviklingen av Draco Linux. Kommer det til å fortsette slik fremover?

Draco er et enmannsprosjekt, noe jeg egentlig liker veldig godt. Jeg bestemmer selv hva som skal legges til, og jobber i mitt eget tempo.

Jeg er åpen for å inkludere flere utviklere, og er i samtaler med et par andre distribusjoner angående mulig samarbeid.

Å vedlikeholde en Linux-distribusjon alene må være litt av en oppgave. Jeg regner med at dette krever god tålmodighet og interesse fra din side, men hvilke andre ressurser er viktige her?

Alt for mye. Mesteparten av tiden går bort i planlegging, testing og kompilering. Support er også noe som vil ta mer og mer tid etter hvert som flere begynner å bruke Draco.

Andre ressurskrevende aspekter er infrastruktur. Jeg må ha en webside, forum, wiki, bugtracking, prosjektsstyringsverktøy og sist men ikke minst pakkebrønner. Alt dette skal være i sync og tilgjengelig til en hver tid.

Det største problemet er tid, jeg får aldri nok.

Vil du si det er lettere å lage en distribusjon som Draco istedenfor en brukervennlig distribusjon som f.eks. Ubuntu?

Draco er nok mye lettere å lage en Ubuntu, mye på grunn av hvordan Draco er bygd opp. Jeg tar meg av basesystemet, mens resten blir vedlikeholdt av en tredjepart (NetBSD/pkgsrc). Det krever fortsatt en del jobbing, men er på ingen måte nær arbeidet som legges i distribusjoner som Ubuntu.

Side 3: Intervju - Del 2

Intervju - Del 2

Du sa innledningsvis at Draco er todelt. Hvordan fungerer dette og hvem bestemmer hva som blir en del av tredjeparts-installasjonen?

Pakkebrønnene i Draco er delt opp i basesystem og tredjepart. Basesystemet får bare patcher, mens tredjepart blir oppdatert ved faste intervaller. Pakkeutvalget for tredjepart er begrenset, vanligvis rundt 1500 binærpakker tilgjengelig. Jeg prøver å legge til de mest brukte programmene og tar gjerne imot ønsker fra brukere.

Tredjeparten styres av NetBSD og miljøet rundt pkgsrc - dvs. utviklerne og brukerne - bestemmer hva som ender i pkgsrc eller ikke.

Du benytter deg med andre ord av pkgsrc som pakkesystem for Draco? Hvorfor bestemte du deg for dette pakkesystemet og ikke Apt eller Yum f.eks.?

Pkgsrc

Pkgsrc er et pakkesystem som enkelt lar deg kompilere programvare fra kildekode samtidig som du kan skape og installere programpakker. Pakkesystemet støtter selvfølgelig også installasjon av avhengigheter, og er tilgjengelig for de fleste Unix- og Linux-systemer.

Jeg ville ha et pakkesystem som var like fleksibelt som Portage (Gentoo), men som også behandler binærpakker like bra som Pacman (Arch). Helst med pakkeutvalg på høyde med de største distribusjoner.

Pkgsrc var det eneste pakkesystem som greide dette. Det er et godt etablert pakkesystem i UNIX-verden, med mange utviklere. Dessverre finnes det også en ulempe ved bruk av pkgsrc.

Pkgsrc har i dag 9021 pakker tilgjengelig, men bare 5000 er mulig å bruke i Draco. Grunnen til dette er at pkgsrc er det offisielle pakkesystemet til NetBSD og Dragonfly BSD, derfor får de mest oppmerksomhet og siden Linux gjør enkelte ting annerledes enn BSD er dømt til å gå galt. NetBSD ligger også bak Linux når det gjelder diverse teknologi, så jeg må modifisere en del pakker i pkgsrc for å tilby samme kvalitet som andre distribusjoner.

Heldigvis har Linux fått mer oppmerksomhet av pkgsrc-utviklerne i løpet av det siste året. Selv prøver jeg å hjelpe til så mye som mulig.

Og så var det bare å installere det du skal bruke av programvare...
Og så var det bare å installere det du skal bruke av programvare...

Et godt pakkesystem og store pakkebrønner er uten tvil blant de viktigste ingrediensene i en Linux-distribusjon. Hvordan er pkgsrc integrert i Draco?

Draco inneholder faktisk to pakkesystem, et for basesystemet (pkgtools) og et for tredjepart (pkgsrc). Disse to styres av en wrapper kalt DracoPKG.

DracoPKG ble introdusert i Draco 0.3 (foreløpig i Beta) og hadde som mål å forenkle bruken av pkgsrc, DracoPKG utviklet seg til å bli et viktig verktøy både for basesystemet og tredjepartsprogramvare.

DracoPKG er veldig enkelt å bruke, hvis jeg vil ha KDE skriver jeg 'dp install kde'. Som standard (kan lett forandres) vil DracoPKG få pkgsrc til å lete etter binærpakker, først lokalt, så i pakkebrønner. Hvis ingen binærpakker eksisterer begynner pkgsrc å kompilere (kreves at pkgsrc-treet er installert).

Hvis jeg ikke vil ha KDE lenger kjører jeg 'dp remove kde'. Da vil KDE og alle avhengigheter bli fjernet.

Basesystemet administreres gjennom sysinst, sysrm og sysbuild. Hvis jeg ikke installerte GCC under installasjonen, men trenger den nå. Da kjører jeg 'dp sysinst gcc'. Prinsippet er det samme som for pkgsrc. Først binærpakker, så kompilering.

DracoPKG inneholder for øyeblikket bare en liten del av funksjonene til pkgsrc, flere funksjoner blir lagt til etter behov eller forespørsel. DracoPKG er skrevet i shell-script og er modulær.

Man kan fortsatt bruke pkgtools og pkgsrc direkte hvis det er ønskelig.

Har du noen verktøy som gjør det lettere for brukerne å lage pakker for Draco, eller bistå med utviklingen sånn generelt?, slik som Arch har AUR og makepkg?

AUR og makepkg

AUR står for Arch User Repository og er en pakkebrønn hvor brukerne får 100 prosent frihet til å legge inn hva de ønsker. I AUR legger du derimot ikke pakker, men en såkalt PKGBUILD fil som inneholder nødvendig informasjon for å kompilere pakken på ditt eget system. Hvis en PKGBUILD-fil får nok stemmer, og ikke går imot reglene for Arch Linux' offisielle pakkebrønner, kan et program bli flyttet ut av AUR og plassert i distribusjonens offisielle pakkebrønn.

makepkg er et verktøy som kompilerer programmer utifra informasjonen i en PKGBUILD-fil. Deretter plasserer makepkg programmet i en pakke som kan bli installert av pacman - pakkesystemet til Arch Linux.

Pkgsrc har veldig bra dokumentasjon. De som vil lage nye pakker anbefales å lese denne guiden.

Pkgsrc i seg selv er også delt i to, pkgsrc-wip og pkgsrc. Wip står for work in progress. Her kan (nye) utviklere enkelt legge til pakker, mye på samme måte som AUR i Arch. Pakker med høy kvalitet og som fungerer på mest mulig plattformer blir lagt til i pkgsrc. Pkgsrc-wip blir også brukt til å teste nye versjoner av pakker (f.eks. KDE4).

Når det gjelder basesystemet er ting litt enklere. La oss se for oss at Nano ikke eksisterer i Draco. Da oppretter jeg en mappe som heter 'nano' i /etc/dp/src. Så lager jeg en fil som heter 'Build', som inneholder følgende:

DRACOSRC_PKG_AUTHOR="olear@slackforge.net"
DRACOSRC_PKG_NAME="nano" DRACOSRC_PKG_VERSION="2.0.7" DRACOSRC_PKG_BUILD=1
DRACOSRC_PKG_DESC="Pico editor clone with enhancements"
DRACOSRC_PKG_CONFIGURE="--prefix=/usr --sysconfdir=/etc --infodir=/usr/info --mandir=/usr/man --program-prefix= --program-suffix= --enable-color --enable-multibuffer --enable-nanorc --enable-all --enable-utf8 --build=$DRACOSRC_ARCH-draco-linux"
DRACOSRC_PKG_SOURCE_EXT=tar.gz #DRACOSRC_PKG_BUILD_DEP=""
#DRACOSRC_PKG_BINARY_DEP=""

Etter det kjører jeg bare 'dp sysbuild nano'. Ikke alle pakker er så enkle, men Nano er et fint eksempel.

Har du noen restriksjoner for hva som kan bli inkludert av pakker i Draco og hva som ikke kan? Foruten skadelig programvare selvfølgelig.

Basesystemet er den eneste plassen jeg har restriksjoner. Pakker må ha en viktig funksjon for å bli inkludert i basesystemet, generelt sett hvis en pakke eksisterer som tredjepart ser jeg ingen grunn til å legge den til i basesystemet.

Når det gjelder drivere og firmware er jeg veldig åpen, jeg vil at mest mulig maskinvare skal fungere i Draco. Dette gjør at jeg lander i en del gråsoner angående firmware, men velger fremdeles å tilby firmware under installasjonen. Når det gjelder filformater/kodeker har jeg heller ingen restriksjoner, jeg mener brukeren selv skal få velge.

Side 4: Intervju - Del 3

Intervju - Del 3

Hvilke planer har du for Draco Linux i tiden fremover?

Roadmap for Draco 0.4 er ny installer og LiveCD. Muligens mer som blir lagt til, det er fortsatt en god stund før utviklingen av Draco 0.4 begynner.

Jeg har også som smått begynt å se på 64-bit, men behovet er ikke helt der enda. Jeg har heller ikke kapasitet til å vedlikeholde to versjoner av Draco.

De største målene har blitt nådd i Draco 0.3. Så de neste versjonene blir nok brukt mest til finpussing og optimalisering. Bedre kompatibilitet mot pkgsrc er alltid et mål.

Draco er jo fortsatt en ganske ung distribusjon. Mener du at din distribusjon i nåværende status er noe å anbefale?

Ja, for utenom et par servere kjører jeg utelukkende Draco på alle maskiner, både privat og i jobbsammenheng.

Draco har modnet veldig mye det siste året og jeg mener Draco kan sees på som et alternativ til Slackware, Arch eller Gentoo. Det er såklart områder hvor Draco ikke helt når opp, spesielt på dokumentasjon og support. Men dette kommer seg.

Har du noe du vil si til slutt som du føler at du ikke har fått sagt?

Jeg tror det meste har blitt dekket. Jeg vil til slutt takke Hardware.no for interessen for Draco.

Side 5: Avsluttende ord

Avsluttende ord

For dere som lurer så nei, vi vil ikke gjøre noen utfyllende test av Draco Linux. Grunnen er at i en distribusjon som denne får du friheten til å bygge opp systemet ditt som du vil. Det som skiller ut Draco fra andre distribusjoner av samme type, er gjerne ting som DracoPKG, og vi mener derfor at dere som lesere får mer ut av dette intervjuet enn dere ville gjort av en eventuell test.

Det som også er viktig å tenke på angående Draco Linux og dens konkurrenter er at det ikke er brukervennlighet - vel, i hvert fall ikke brukervennlighet som i Ubuntu - som står i fokus. Istedenfor er det viktig at distribusjonen er enkel å konfigurere og gir deg nok frihet til å bygge opp operativsystemet nøyaktig som du vil. Dette er grunnen til at du starter med et pakkesystem, Linux-kjernen og andre små nødvendigheter, og installerer resten over dette.

Hvis du er interessert, kan du ta en nærmere titt på Draco Linux' hjemmeside.

Og det var det! Vi takker Ole Andre Rodlie for sin tid og ønsker ham lykke til videre i fremtiden.