Gentoo install
Sisukord
- 1 Sissejuhatus
- 2 installiks valmistumine
- 3 Install
- 4 Peale installi tegevused
- 5 Tarkvara haldus
- 6 Veel pisemat lisaseadistust
- 7 Eelinstalleeritud Gentoo liigutamine ühest serverist teise
- 8 Lingid
Sissejuhatus
installiks valmistumine
Sisestame installi cdplaadi mille saame muretseda lehelt http://www.gentoo.org/main/en/where.xml
Võimalik on kasutada livecd'd kus boodib ülex xfce graafiline keskkond ning saab kasutada graafilist installerit kuid gentoo põhiline positiivne omadus ongi ju tema võimalikult detailses ning kasutaja enda tehtavas käsurea installis, kus võimalik kogu süsteem äärmiselt minimaalselt ning enda nõudmistele vastavalt häälestada.
Seega boodime masina mida plaanime installida plaadilt üles ja Seadistame ssh ning võrgu
Esimeseks tuleks kontrollida kas tunti kaart ikka ära
# ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:21:5a:f5:31:e7
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:39
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Kuna tundub toimivat anname ip aadressid
# sudo ifconfig eth0 192.168.1.10 netmask 255.255.255.0 # sudo route add default gw 192.168.1.254 # sudo echo "nameserver 192.168.1.1" > /etc/resolv.conf
ning lõpuks seadistame ruudu parooli
# sudo passwd root
Seejärel stardib ssh
# sudo /etc/init.d/sshd start ..genereeritakse võtmed starditakse ssh
..ja nüüd võime minna teise masina taha kus saame võtta mugavalt ette ssh konsooli ning manualid
Install
Partitsioonide - failisüsteemide loomine ja mountimine
Kuna näites kasutatud masina näol on tegemist HP serveriga siis kettaseadme rajaks on /dev/cciss/c0d0
Esimesena tuleks luua partitsioonid
# fdisk /dev/cciss/c0d0
- p näitab partitsioone
- n teeb uue partisiooni - küsitakse kas tegemist extended või primary partitsiooniga ning algust ja lõppu kus esimese võib jätta nagu ise
pakub ning teise puhul defineerida soovitud suuruse näiteks +512M
- d kustutab partitsiooni
n puhul küsitakse partitsiooni algust ja lõppu
Loome endale kolm partitsiooni /boot / (juur) /var ning swap
- /boot suuruseks 100-300mega
- / suuruseks paar giga
- swap piisab kahest gigast igati tänapäevastel masinatel
- /var samamoodi kuus seitse giga
Device Boot Start End Blocks Id System /dev/cciss/c0d0p1 1 13 104391 83 Linux /dev/cciss/c0d0p2 14 274 2096482+ 82 Linux swap / Solaris /dev/cciss/c0d0p3 275 1602 10667160 83 Linux /dev/cciss/c0d0p4 1603 72937 572998387+ 5 Extended /dev/cciss/c0d0p5 1603 4205 20908566 83 Linux
Kui partitsioonid tehtud võib vajutada w millejärel partitsioonitabel kirjutatakse paika
Ext2 /boot partitsioonile
# mke2fs /dev/sda1
Ext3 juurfailisüsteemile
# mke2fs -j /dev/sda3
Tekitame swapi
# mkswap /dev/sda2
Ja aktiveerime selle
# swapon /dev/sda2
Moundime tekkinud partitsioonid
# mount /dev/cciss/c0d0p3 /mnt/gentoo # mkdir /mnt/gentoo/boot # mount /dev/cciss/c0d0p1 /mnt/gentoo/boot # mount /dev/cciss/c0d0p5 /mnt/gentoo/var
stage && portage pakkimine jms tööd
Tõmbame alla stage mis sisaldab kogu gentoo worldi, ehk kõiki gnu vajalikke utiliite /programme juba kokkupandud paketina (init, bash jms töövahendid)
Kuna hetkel on masin 64 biti toega siis paigaldame ka operatisoonisüsteemi sellise
# cd /mnt/gentoo # wget http://distfiles.gentoo.org/releases/amd64/2008.0/stages/stage3-amd64-2008.0.tar.bz2
Ning pakime stage lahti
# tar xvjpf stage3-*.tar.bz2
Seejärel edasiseks tegutsemiseks tuleb luua lahtipakitud keskkonna ümber chroot. Enne seda aga on vajalik mountida veel proc ning dev
# mount -t proc proc /mnt/gentoo/proc # mount -o bind /dev /mnt/gentoo/dev
Ja kopeerida resolv.conf selleks ,et nimelahendused toimiksid
# cp -L /etc/resolv.conf /mnt/gentoo/etc/
Nüüd võime ehitada enda ümber chroot keskkonna ,et jätkata süsteemi seadistust
# chroot /mnt/gentoo /bin/bash # env-update && source /etc/profile >>> Regenerating /etc/ld.so.cache...
Häälestamine ning lisaprogrammide paigaldus
make.conf on minul selline
CHOST="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j3"
FEATURES="parallel-fetch -userfetch fixpackages"
USE="-X -kde -qt -gnome -gtk -gpm -ldap"
SYNC="rsync://ftp.eenet.ee/gentoo-portage"
GENTOO_MIRRORS="http://ftp.eenet.ee/pub/gentoo/ http://ftp.linux.ee/pub/gentoo/distfiles/ ftp://ftp.belnet.be/mirror/rsync.gentoo.org/gentoo/"
CHOST on meie masina arhidektuur MAKEOPTS abil seme mitme threadiga kompileeritakse USE abil mis on globaalsed kompileerimise seaded GENTOO_MIRRORS abil defineerime lähimad serverid meile
Ning paigaldame värske portsude puu
emerge --sync
Profiili linkimine
make.profile -> ../usr/portage/profiles/default/linux/amd64/2008.0
Lokaalid
Kuna oleme eestlased ja tahaks täpilisi märke näha siis
# nano -w /etc/locale.gen
ja lisame sinna
en_US ISO-8859-1 en_US.UTF-8 UTF-8 en_GB.UTF-8 UTF-8 et_EE ISO-8859-1 et_EE.UTF-8 UTF-8
ajatsooni paigaldamine
Et kella peale ei kobisetaks
# echo 'TIMEZONE="Europe/Tallinn"' >> /etc/conf.d/clock
fstab seadistus
/dev/cciss/c0d0p1 /boot ext2 noatime 1 2 /dev/cciss/c0d0p2 none swap sw 0 0 /dev/cciss/c0d0p3 / ext3 noatime 0 1 /dev/cciss/c0d0p5 /var ext3 noatime 0 1
võrgu seadistus
Kui seade ei tulnud kohe peale booti üles tuleb tekitada vajakli symlink
# ln -s /etc/init.d/net.lo /etc/init.d/net.eth0
Ning seejärel avame võrgu seadistusfaili
# nano /etc/conf.d/net
config_eth0=( "192.168.1.20/24" ) routes_eth0=( "default via 192.168.1.254" )
# rc-update add net.eth0 default * net.eth0 added to runlevel default
Tuleb silmas pidada, et nii tuleb kõik teised täiendavad võrguseadmed samuti lisada default runlevelile näiteks eth1 seade
Teenused toimima
Et ssh stardiks ka peale booti st
rc-update add sshd default * sshd added to runlevel default
Põhimõtteliselt teeb see sama mis ln -vs /etc/init.d/sshd /etc/runlevels/default/
Olulised komponendid on syslog ja cron
# emerge syslog-ng # rc-update add syslog-ng default
# emerge vixie-cron # rc-update add vixie-cron default
Ja siis lisaks veel
# emerge gentoolkit
Mis annab süsteemile lisaks equery ja glsa-checki mõlemad väga vajalikud abivahendid
http://www.gentoo.org/doc/en/gentoolkit.xml
Kerneli ehitamine
emerge gentoo-sources
cd /usr/src/linux
make menuconfig
eriti tuleks tähelepanu pöörata ,et võrgu ning ketaste või kettakontrollerite draiverid oleksid sees kuna ilma nendeta on tõenäoline ,et tuleb uuesti livecd bootida ja asuda kernelit tegema, teisi komponente saab paigaldada juba kiiremini. Antud HP juhul tuli kontrollida compaq array suppordi olemasolu
# make && make modules_install
Paigaldamiseks töötab kas käsk
# make install sh /usr/src/linux-2.6.31-gentoo-r6/arch/x86/boot/install.sh 2.6.31-gentoo-r6 arch/x86/boot/bzImage \ System.map "/boot"
Millega paigaldatalse kernel kausta /boot nimega /boot/vmlinuz-2.6.26-gentoo-r1
kuid võib kerneli ka käsitsi paika kopeerida näiteks sarnaselt
# cp arch/x86_64/boot/bzImage /boot/kernel-versioon
või x86 arhidektuuri puhul
# arch/i386/boot/bzImage /boot/kernel-versioon
Selleks ,et kõik arvuti küljes olevad seadmed identifitseerida tuleks paigaldada lspci tarkvara selleks tuleb paigalda pciutils pakett
emerge sys-apps/pciutils
Kasutamiseks öelda lihtsalt
# lspci 00:00.0 Host bridge: VIA Technologies, Inc. VT8377 [KT400/KT600 AGP] Host Bridge (rev 80) 00:01.0 PCI bridge: VIA Technologies, Inc. VT8237/VX700 PCI Bridge 00:09.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet Pro 100 (rev 08) 00:0b.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet Pro 100 (rev 08) 00:0c.0 VGA compatible controller: S3 Inc. ViRGE/DX or /GX (rev 01) 00:0f.0 IDE interface: VIA Technologies, Inc. VIA VT6420 SATA RAID Controller (rev 80) 00:0f.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06) 00:11.0 ISA bridge: VIA Technologies, Inc. VT8237 ISA bridge [KT600/K8T800/K8T890 South] 00:12.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II] (rev 78)
Abiks on ka lsmod käsk
# lsmod Module Size Used by vzethdev 12288 0 simfs 7900 1 vznetdev 17540 2 vzrst 117652 0 vzcpt 99748 0 tun 14084 2 vzrst,vzcpt vzdquota 37240 1 [permanent] vzmon 24968 5 vzethdev,vznetdev,vzrst,vzcpt vzdev 6664 4 vzethdev,vznetdev,vzdquota,vzmon ipv6 222988 23 vzrst,vzcpt,vzmon ata_generic 8580 0 pata_acpi 7680 0 sata_via 10884 0 libata 133844 3 ata_generic,pata_acpi,sata_via scsi_mod 123260 1 libata i2c_viapro 10772 0 i2c_core 21396 1 i2c_viapro e100 33164 0 via_rhine 23048 0 s3fb 19328 1 mii 8192 2 e100,via_rhine svgalib 11136 1 s3fb ide_cd_mod 30852 0 cdrom 32792 1 ide_cd_mod pcspkr 6272 0 vgastate 11648 1 s3fb button 10000 0
Kasutada võib ka alguses genkernelit http://www.gentoo.org/doc/en/genkernel.xml
Bootloaderi paigaldamine
# emerge grub
Loome faili mtab, see fail annab infot mis on hetkel süsteemis mounditud
# grep -v rootfs /proc/mounts > /etc/mtab
HP puhul on vaja seadistada grub'i konfiguratsioonis device nime mapimine õigele seadmele teiste arvutite puhul võib järgneva vahele jätta
# nano /boot/grub/device.map
(hd0) /dev/cciss/c0d0
Ning stardile grub'i interaktiivse shelli kus muudame ketta bootivaks
# grub --device-map /boot/grub/device.map
Kus boot partitsioon asub
grub> root (hd0,0) root (hd0,0) Filesystem type is ext2fs, partition type 0x83
Installime mbr'i grubi
grub> setup (hd0)
Edasi vajalik ka grubi konfiguratsiooni tekitamine
# nano /boot/grub/grub.conf
timeout 5 default 0 title GNU/Linux root (hd0) kernel /boot/bzImage root=/dev/cciss!c0d0p1
Jällegi on /dev/cciss!c0d0p1 kujul asja näitamine vajalik vaid HP seadmetel
kasutajad ja paroolid süsteemile
# sudo useradd kasutaja # sudo passwd kasutaja
Kuna Gentoos nagu ka FreeBSD's peab kasutaja su abil ruuduks moondumiseks olema wheel grupis siis lisame ta ka sinna
# sudo usermod -G wheel kasutaja
Viimaks root parool
# passwd
unmount & reboot!
Peale installi tegevused
Peale installi oleks soovitatav kogu world uuesti buildida. Piisab muidugi küll kuid esialgu glsa teatatud vigadega pakettide uuendamisest kuid mõni öö võiks tõsiselt mõelda ka kõige uuesti ehitamisele.
- enne tuleks kindlasti paigaldada gentoolkit mis tekitab revdep käsu
# emerge --update --newuse --deep world # emerge --depclean # revdep-rebuild
ning lõpuks uuendame seadistusfaile
# etc-update
Kui emerge teatab ,et pakett näiteks tavaline editor on maskitud tuleks selle nimi lisada faili /etc/portage/package.unmask
>=app-editor/nano
Kui teatatakse ,et masked by keyword siis faili /etc/portage/package.keywords
=app-editor/nano **
Abi saab üldiselt gentoo enda bugrepordi allikatest http://bugs.gentoo.org/
Gentoo uuendamisel pigem soovitaks siiski pidevat kogu süsteemi rebuildimist vältida ning uuendada aegajalt vaid turvavigadega pakette, järgneva käsuga saab seda kontrollida
# glsa-check -l affected [A] means this GLSA was already applied, [U] means the system is not affected and [N] indicates that the system might be affected.
selleks ,et gentoo iga nädalaselt saadaks teateid turvavigadega pakettidest võib lisada crontabi
40 22 * * 6 /usr/bin/emerge --sync > /dev/null && /usr/bin/glsa-check -m affected
Tarkvara haldus
# equery l -p dev-lang/php --- Invalid atom in /etc/portage/package.unmask: =dev-db/mysql-4.0.27-r1 ~x86 [ Searching for package 'php' in 'dev-lang' among: ] * installed packages * Portage tree (/usr/portage) [-P-] [ ] dev-lang/php-5.2.9-r2 (5) [-P-] [ ] dev-lang/php-5.2.10 (5) [-P-] [M~] dev-lang/php-5.2.10-r1 (5) [-P-] [M~] dev-lang/php-5.2.10-r2 (5) [-P-] [ ] dev-lang/php-5.2.11 (5)
M~ tähendab, et pakett on maskitud
Pikemalt juttu aadressilt
http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&chap=3
Veel pisemat lisaseadistust
Hostname /etc/conf.d/hostname
HOSTNAME="zoo.loomaaed.ee"
ntpdate käsu saamiseks vaja emergeda ntp
Kui vaja dhcp clienti siis selleks tuleb paigaldada dhcpcd pakett
Alias ip saab lisada käsuga
ifconfig eth0:0 192.168.1.45 up
Seejuures on igasuguste võrguseadistuste juures abiks fail /etc/conf.d/net.example
süsteemi info vaatamiseks on head käsud
# grep bogo /proc/cpuinfo bogomips : 4617.99 bogomips : 4592.88 bogomips : 4592.78 bogomips : 4592.77 bogomips : 4588.57 bogomips : 4588.58 bogomips : 4588.56 bogomips : 4588.57
# grep MemTotal /proc/meminfo MemTotal: 8179900 kB
# emerge hdparm
# hdparm -tT /dev/cciss/c0d0 /dev/cciss/c0d0: Timing cached reads: 2762 MB in 2.00 seconds = 1381.99 MB/sec Timing buffered disk reads: 538 MB in 3.01 seconds = 178.47 MB/sec
inittab sisaldab mõttetuid konsoole, korjame need ära
sed -i -e 's|^c[2-6]:2345:|#&|' /etc/inittab
TCP syncookie ja suured PIDid failis /etc/sysctl.conf
net.ipv4.tcp_syncookies = 1 kernel.pid_max = 999999
Eelinstalleeritud Gentoo liigutamine ühest serverist teise
Vahel võib tekkida süsteemiga ikka juhuseid kui otstarbekam on update hoitud süsteemi mitte uuesti nullist paigaldada ning seadistada vaid hoopis kopeerida ümber
Selleks vajalikud sammud
1 bootida uus masin mõnelt live cd'lt või rescue plaadilt
2 Fdiski abil tekitada partitsoonid, neile omakorda failisüsteemid ja mountida /mnt/boot, /mnt/var ...
3 rsyncida info näiteks sobiks selleks käsk
rsync -av --numeric-ids -d -H --exclude-from=exclude / root@ip:/mnt/boot/
exclude fail sisaldas minul järgnevaid ridu, üldiselt võib sinna kirjutada kõik mounditud failisüsteemid
/var/ /srv/ /proc/ /dev/
4 fstab fail
5 grubi initsialiseerimine, vt ülespoole kus kirjeldus kuidas seda teha
6 mkdir proc ja mkdir dev ja MKDEV käsk, kui kasutatud mitte Gentoo live cd'd siis võib olla dev sisu poolik ning süsteem teatada unable to open initial console, siis aitab
mknod /diskless/192.168.1.21/dev/console c 5 1
Lingid
http://www.yolinux.com/TUTORIALS/LinuxTutorialNetworking.html linuxite võrgundusest