Kako napraviti svoju linux distribuciju

Ovaj naslov je tu samo radi privlačenja pozornosti :). Ova "kuharica" ne govori o tome kako napraviti linux distribuciju iz temelja, već kako prilagoditi jednu od najraširenijih distribucija - Ubuntu - svojim potrebama. Ako vas zanima kako napraviti Live/Install CD sa vašim lokalnim postavkama (jezik, tipkovnica,...), dodati ili ukloniti neke programe, promjeniti zadane postavke sustava, itd., onda pročitajte članak do kraja. Za to ce vam trebati malo više slobodnog vremena jer ovo nije kraći članak.

Kao ishodište za promjenu distribucije možete odabrati bilo koju distribuciju koja je proizašla iz Ubuntu distribucije. Odabirom klona koji je najsličniji vašim zahtjevima, skraćujete postupak prilagodbe. Npr., ako trebate Live/Install CD sa KDE grafičkim sučeljem za prilagodbu ćete odabrati Kubuntu distribuciju; ako želite serversku distribuciju, koristite Ubuntu Server Edition; ako želite distribuciju sa svim multimedijalnim kodecima, Javom, flashom, itd. odabrati ćete SuperUbuntu ili LinuxMint; itd...

 

PRIPREMA TERENA

Potrebno je instalirati Linux distribuciju. Poželjno neku od Ubuntu klonova radi jednostavnosti prilagođavanja nove distribucije. Ova instalacija služi kao radni okvir unutar kojeg ćemo raditi promjene.

Pokrenuti terminal i postati root

$sudo su

<unijeti lozinku korisnika>

//to je lozinka običnog korisnika kojeg smo kreirali tijekom instalacije distribucije na tvrdi disk. Kreirani korisnik ima "sudo" prava

Instalirati pakete

#apt-get install squashfs-tools genisoimage

U kernel učitati squashfs module

#modprobe squashfs

Sa lsmod možemo provjeriti da li je modul učitan

#lsmod

potražiti squashfs u listi modula

možemo upisati i

lsmod | grep squashfs 

ako želimo prikazati samo sqashfs modul

Skinuti (download) verziju Ubuntu distribucije koju želimo prilagoditi. Može to biti bilo koja od Ubuntu klonova: (Ubuntu, Kubuntu, SuperUbuntu, LinuxMint,...). Spremiti je negdje na disk.

Napraviti direktorij live unutar našeg /home direktorija

#mkdir /home/<korisnik>/live     

//<korisnik> je ime korisnika koji je kreiran kod instalacije; u daljnjem tekstu <korisnik> = toni

Ući u direktorij gdje smo spremili Ubuntu (Kubuntu, LinuxMint,...) .iso datoteku

#cd /home/<korisnik>/<ime direktorija>

Kopirati skinutu .iso datoteku (u našem slučaju ubuntu-8.10-desktop-i386.iso) u direktorij /home/<korisnik>/live

#cp ubuntu-8.10-desktop-i386.iso /home/toni/live

//istu stvar možete napraviti kroz grafičko sučelje koristeći upravitelj datotekama (eng. filemanager) i klikom na cut ili copy + paste

Ući u direktorij live

# cd /home/toni/live

Napraviti direktorij mnt

#mkdir mnt

Napraviti mount .iso datoteke (u ovom slučaju - ubuntu-8.10-desktop-i386.iso) u direktorij mnt

#mount -o loop ubuntu-8.10-desktop-i386.iso mnt

Napraviti direktorij extract-cd

#mkdir extract-cd

Raspakirati sadržaj .iso datoteke u direktorij extract-cd

#rsync --exclude=/casper/filesystem.squashfs -a mnt/ extract-cd

Napraviti direktorij squashfs

#mkdir squashfs

Napraviti mount squashfs datotečnog sustava (eng. file system)

#sudo mount -t squashfs -o loop mnt/casper/filesystem.squashfs squashfs

Napraviti direktorij edit

#mkdir edit

Kopirati sadržaj direktorija squashfs u direktorij edit

#cp -a squashfs/* edit/

 

PRIPREMITI CHROOT

chroot je naredba koja zamjenjuje stvarni root direktorij sa prividnim za neke trenutno pokrenute procese i povezane podprocese. Sa naredbom chroot možemo pokrenuti neku naredbu unutar određenog root direktorija koji je sam sadržan unutar drugog root direktorija. (Analogija s Windowsima: disk C: unutar diska C:).

Ako trebamo mrežnu povezanost unutar chroota

#cp /etc/resolv.conf edit/etc/

Ovisno o konfiguraciji, potrebno je kopirati i hosts datoteku

#cp /etc/hosts edit/etc/

Napraviti mount nekih važnijih direktorija iz datotečnog sustava samog računala (NE chroot file systema). Ako se kasnije odlučite za brisanje edit direktorija, VAŽNO je napraviti njihov unmount. U suprotnom, računalo može prestati biti upotrebljivo sve dok ga ponovo ne pokrenemo (reboot).

#mount --bind /dev/ edit/dev
#chroot edit
#mount -t proc none /proc
#mount -t sysfs none /sys

Da bi izbjegli probleme sa lokalizacijom (naše postavke) i GPG ključevima potrebno je pokrenuti naredbe:

#export HOME=/root
#export LC_ALL=C

//paziti na velika i mala slova

 

PRILAGODBA DISTRIBUCIJE

Sa slijedećom naredbom prikazujete instalirane pakete po veličini. Pritiskom na "q" na tipkovnici, napuštate taj prikaz

#dpkg-query -W --showformat='${Installed-Size} ${Package}\n' | sort -nr | less

Potrebno je dodati (ili odkomentirati) repozitorije sa programima koji možete dodati vašoj distribuciji koristeći naredbu apt-get iz naredbenog retka.

Otvorimo datoteku /etc/apt/sources.list za uređivanje:

#nano /etc/apt/sources.list

U datoteci /etc/apt/sources.list dodamo ili odkomentiramo slijedeće retke:

deb http://archive.ubuntu.com/ubuntu intrepid universe
deb-src http://archive.ubuntu.com/ubuntu intrepid universe
deb http://archive.ubuntu.com/ubuntu intrepid-updates universe
deb-src http://archive.ubuntu.com/ubuntu intrepid-updates universe
deb http://security.ubuntu.com/ubuntu intrepid-security universe
deb-src http://security.ubuntu.com/ubuntu intrepid-security universe
deb http://archive.ubuntu.com/ubuntu intrepid multiverse
deb-src http://archive.ubuntu.com/ubuntu intrepid multiverse
deb http://archive.ubuntu.com/ubuntu intrepid-updates multiverse
deb-src http://archive.ubuntu.com/ubuntu intrepid-updates multiverse
deb http://security.ubuntu.com/ubuntu intrepid-security multiverse
deb-src http://security.ubuntu.com/ubuntu intrepid-security multiverse

Zatvorimo datoteku i spremimo je
<CTRL+X>
Save....? <y>
<ENTER>

Nakon uređivanja datoteke potrebno je pokrenuti naredbu

#apt-get update

 

INSTALACIJA PROGRAMA

Nakon dodavanja izvora programa u sources.lists, željene programe instaliramo ili ukloniti na uobičajeni način za Ubuntu i srodne distribucije. U osnovi, možemo koristiti instalacijke naredbe za distribucije sa Debian korijenima (npr., apt-get install..., dpkg -i..., itd.).

Primjer1: Instalacija multimedijalnih dodataka

Za instalaciju aplikacija i dodataka za reprodukciju najuobičajenih multimedijalnih datoteka (uključujući MP3, DVD reprodukciju, Flash i Java dodatke za internet preglednike, Quicktime, WMA i WMV datoteke) potrebno je instalirati pakete libenca0 i libass1

Da bi instalirali pakete koji nisu unutar repozitorija, potrebno ih je skinuti sa interneta i spremiti u neki direktorij.

#cd /home        

//ovo je /home direktorij unutar chroot okruženja  (unutar edit poddirektorija)

Prvo instaliramo paket libenca0

#wget http://ftp.hr.debian.org/debian/pool/main/e/enca/libenca0_1.9-6_i386.deb

a zatim pokrenemo instalaciju paketa sa:

#dpkg -i libenca0_1.9-6_i386.deb

 

Zatim instaliramo paket libass1

#wget http://ftp.hr.debian.org/debian/pool/main/liba/libass/libass1_0.9.5-2_i386.deb

a zatim pokrenemo instalaciju paketa sa:

#dpkg -i libass1_0.9.5-2_i386.deb

 

Nakon instalacije ovih paketa, da bi intalirali multimedijalne dodatke (plugins) potrebno je pokrenuti jednu od naredbi:

-ako je distribucija koju mijenjate Ubuntu

#apt-get install ubuntu-restricted-extras

-ako je distribucija koju mijenjate Kubuntu

#apt-get install kubuntu-restricted-extras

-ako je distribucija koju mijenjate Xubuntu

#apt-get install xubuntu-restricted-extras 

Na pitanje                                 
Do you want to continue [Y/n]?
odgovorite sa y

Također potvrdite prihvaćanje korisničkog ugovora za Javu.

Primjer2: Instalacija aplikacija

Instalacija VLC media playera (VLC - program za repordukciju video datoteka) pokrenemo:

#apt-get install vlc

na upit
After this operation, XX.XMB of additional disk space will be used.                                                     
Do you want to continue [Y/n]?

odgovorite potvrdno sa y

Da bi instalirali Amarok (program za repordukciju glazbenih datoteka) unesite:

#apt-get install amarok

na upit
After this operation, XX.XMB of additional disk space will be used.                                                     
Do you want to continue [Y/n]?

odgovorite potvrdno sa y

Na ovaj način je moguće instalirati bilo koju aplikaciju koju želimo dodati i novu distribuciju.

Promjena pozadine radne površine (wallpapera)

Priprema: Otvoriti NOVI terminal i postanite root

$sudo su

<unesite lozinku>

Doći do mjesta gdje ste pohranili sliku koju želite postaviti u pozadinu zaslona vaše nove distribucije (u ovom slučaju: carnet_logo.png) i kopirati je naredbom:

#cp carnet_logo.png /home/toni/live/edit/usr/share/backgrounds/

Ponovo se VRATITI u terminal u kojem smo radili prilagodbu distribucije!!!

Potrebno je urediti više datoteka da bi dobili postavke pozadine koju želimo promjeniti.

Urediti datoteku ubuntu-wallpapers.xml

#nano /usr/share/gnome-background-properties/ubuntu-wallpapers.xml

promjeniti sve crte koda gdje se navodi .png datoteka da izgleda kao npr.:
<filename>/usr/share/backgrounds/carnet_logo.png</filename>
izaći i spremiti
<CTRL+X>
Save....? <y>
<ENTER>

Urediti datoteku 16_ubuntu-artwork

#nano /usr/share/gconf/defaults/16_ubuntu-artwork

promjeniti sve crte koda gdje se navodi .png datoteka da izgleda kao:
/apps/gnome-session/options/splash_image splash/carnet_logo.png
izaći i spremiti
<CTRL+X>
Save....? <y>
<ENTER>

Urediti datoteku 16_ubuntu-wallpapers

#nano /usr/share/gconf/defaults/16_ubuntu-wallpapers

promjeniti sve crte koda gdje se navodi .png datoteka da izgleda kao:
/desktop/gnome/background/picture_filename "/usr/share/backgrounds/carnet_logo.png"
izaći i spremiti
<CTRL+X>
Save....? <y>
<ENTER>

Urediti datoteku 10_libgnome2-common

#nano /usr/share/gconf/defaults/10_libgnome2-common

promjeniti sve crte koda gdje se navodi .png datoteka da izgleda kao:
/desktop/gnome/background/picture_filename      /usr/share/backgrounds/carnet_logo.png
izaći i spremiti
<CTRL+X>
Save....? <y>
<ENTER>

 

PROMJENA ZADANOG (DEFAULT) JEZIKA

Promjena zadanog (default) jezika koji će se učitati prilikom pokretanja nove distribucije:

Otvoriti novi terminal i postanite root

$sudo su

<unesite lozinku>

Preći u direktorij

#cd /home/toni/live/extract-cd/isolinux

Napraviti datoteku lang u koju ćemo upisati samo oznaku za jezik koji želimo učitati (u ovom slučaju hrvatski)

#nano lang

u novootvorenoj datoteci upisati oznaku jezika

hr

izaći i spremiti
<CTRL+X>
Save....? <y>
<ENTER>

 

"POSPREMANJE " DISTRIBUCIJE PRIJE PAKIRANJA U .iso DATOTEKU
#apt-get clean

Brisanje privremenih datoteka

#rm -rf /tmp/*

Brisanje postavki DNS-a

#rm /etc/resolv.conf

Unmount montiranih datotečnih sustava i izlazak iz chroot-a

#umount /proc
#umount /sys
#exit
#umount edit/dev

 

GENERIRANJE NOVE DISTRIBUCIJE

Pokrenuti naredbe (možete ih kopirati, jednu po jednu, i umetnuti u vaš terminal sa <SHIFT+Insert>)

#chmod +w extract-cd/casper/filesystem.manifest
#chroot edit dpkg-query -W --showformat='${Package} ${Version}\n' > extract-cd/casper/filesystem.manifest
#cp extract-cd/casper/filesystem.manifest extract-cd/casper/filesystem.manifest-desktop
#sed -i '/ubiquity/d' extract-cd/casper/filesystem.manifest-desktop

Sažeti (compress) datotečni sustav

#rm extract-cd/casper/filesystem.squashfs

//ova naredba može vratiti poruku o grešci; može se ignorirati

Unijeti naredbu

#mksquashfs edit extract-cd/casper/filesystem.squashfs -nolzma

//ovo može potrajati par minuta

Odrediti ime za novu distribuciju i unijeti je u datoteku README.diskdefines

#nano extract-cd/README.diskdefines

u redak define DISKNAME unijeti ime distribucije
define DISKNAME  CARNet 0.1.0 - Release i386
izaći i spremiti
<CTRL+X>
Save....? <y>
<ENTER>

Izbrisati stari md5sum.txt i izračunati novi md5 broj

#sudo -s
#rm extract-cd/md5sum.txt
#cd extract-cd && find . -type f -print0 | xargs -0 md5sum > md5sum.txt
#exit

Kreirati .iso datoteku

#cd extract-cd

Ova naredba kreira .iso datoteku. Unutar naredbe zamjeniti CARNet-0.1.0-desktop-i386-custom.iso sa imenom nove distribucije.

#sudo mkisofs -D -r -V "$IMAGE_NAME" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat \
 -no-emul-boot -boot-load-size 4 -boot-info-table -o ../CARNet-0.1.0-desktop-i386-custom.iso .

Znak \ na kraju prvog reda prethodne naredbe je samo oznaka da se naredba tu ne prekida, već da oba reda čine jednu naredbu. Naredba se može kopirati i unijeti neprekinuta (bez znaka \).

Snimiti .iso datoteku sa nekim od alata za snimanje CD/DVD.
Pozor!!! Ne snimati  kao običnu datoteku, nego kao CD/DVD iso image.

Nakon snimanja, kod podizanja računala, vašu novu ditribuciju pokrećeta kao i svaku drugu live-cd distribuciju.

 

 

 

Kuharice: 
Kategorije: 
Vote: 
5
Vaša ocjena: Nema Average: 5 (1 vote)