Добыв диски с Gentoo Linux 2004.2 я приступил к установке. В процессе накопилось множество небольших заметок, которые я и объединил в один большой сценарий.
Сценарий обсуждаем - все комментарии приветствуются. По мере накопления вопросов я планирую добавлять комментарии к каждому пункту. Если что не понятно - спрашивайте.
Для начала несколько замечаний: Gentoo ставится на Celeron-533, без принтера, сканера и локальной сети, с обычным CD ROM Drive. Видеокарта - GeForce2. Есть модем и flash-drive. Первый раздел жесткого диска зарезервирован для Win. Далее три раздела - boot, swap и основной linux раздел в reiserfs. Ставятся ядра Gentoo linux 2.4 и 2.6. Основной род занятий - разработка ПО на PHP, возня с Linux и печатная машинка. Поэтому из дополнительных пакетов ставится vim и OpenOffice. Локаль - en_US.utf8.
Недостатки этого документа (в общем, TODO list): Ссылка на /usr/src/linux не меняется автоматически во время загрузки соответствующего ядра. Еще планируется добавить пару строчек о добавлении проверки русской орфографии в OpenOffice и установке англо-русского словаря. Также наблюдаются небольшие проблемы с использованием текущей версии /etc/fstab с ядром 2.6 - при монтировании пользователем /dev/sda1 права на файлы выставляются не так, как хотелось-бы.
Ну да это я знаю как решить. А вот то, что не знаю: в процессе работы KDE в .xsession-errors появляется множество ошибок вида "QPixmap: Cannot create a QPixmap when no GUI is being used" и "kdecore (KIconLoader): WARNING: Icon directory ... not valid". На работе KDE это не сказывается, но хотелось бы исправить :-).
Для тех, кто уже работал с Gentoo прошлых версий и сомневается, ставить или нет - несколько замечаний о изменениях 2004, с которыми я столкнулся непосредственно во время установки.
- Вместо XFree86 используется X.org.
- В gpm исправленна столь надоедающая мне бага со сбоем работы мышки после переключения из X.
- Нормальная работа скриптов загрузки с linux 2.6.
- Исправлена бага, из-за которой приходилось ровнять init cкрипт очищения tmp (xargs: environment too large).
Как видно, грабель поубирали много. Новых, конечно понаделали, но пока они не очень заметны.
Итак, этап первый - загрузка и установка системы.
Вставляем загрузочный universal CD и грузимся. После загрузки:
# passwd root // enter password // go to vc/5 // login as root # links /mnt/cdrom/docs/html/index.html // go to vc/1 # mkswap /dev/hda3 # swapon /dev/hda3 # mount /dev/hda4 /mnt/gentoo # mount /dev/hda2 /mnt/gentoo/boot # mount -t proc none /mnt/gentoo/proc # cd /mnt/gentoo # for i in bin dev etc home lib mnt opt root sbin sys tmp usr var do mv 1 backup/system3 done # tar -xjpf /mnt/cdrom/stages/stage3-i686-2004.2.tar.bz2 # tar -xjf /mnt/cdrom/snapshots/portage-20040710.tar.bz2 -C /mnt/gentoo/usr # mkdir /mnt/gentoo/usr/portage/distfiles # cp /mnt/cdrom/distfiles/* /mnt/gentoo/usr/portage/distfiles/ # vim /mnt/gentoo/etc/make.conf CFLAGS="-O2 -pipe -mcpu=i686 -fomit-frame-pointer" MAKEOPTS="-j2" # chroot /mnt/gentoo /bin/bash # env-update # source /etc/profile # ln -sf /usr/share/zoneinfo/Europe/Simferopol /etc/localtime # USE="-doc" emerge gentoo-dev-sources # cd /usr/src/linux # make menuconfig link to my config # make && make modules_install # cp arch/i386/boot/bzImage /boot/kernel-2.6.7-gentoo-r11 # cp System.map /boot/System.map-2.6.7-gentoo-r11 # cp .config /boot/config-2.6.7-gentoo-r11 # emerge nvidia-kernel # emerge gentoo-sources # cd /usr/src && rm linux && ln -s linux-2.4.26-gentoo-r6 linux && cd linux # make menuconfig link to my config # make dep && make bzImage modules modules_install # cp arch/i386/boot/bzImage /boot/kernel-2.4.26-gentoo-r6 # cp System.map /boot/System.map-2.4.26-gentoo-r6 # cp .config /boot/config-2.4.26-gentoo-r6 # emerge nvidia-kernel # cd /usr/src && rm linux && ln -s linux-2.6.7-gentoo-r11 linux # nano -w /etc/fstab /dev/hda2 /boot ext2 noauto,noatime 1 1 /dev/hda4 / reiserfs noatime,notail 0 0 /dev/hda3 none swap sw 0 0 /dev/cdroms/cdrom0 /mnt/cdrom iso9660 noauto,ro,user 0 0 /dev/hda1 /mnt/win ntfs noauto,user,ro,noexec,nosuid,nodev,uid=alex 0 0 /dev/sda1 /mnt/flash vfat iocharset=utf8,noauto,user,rw,noexec,nosuid,nodev,dmask=777,fmask=666 0 0 /dev/fd0 /mnt/floppy auto noauto,user 0 0 # echo home > /etc/hostname # echo homenetwork > /etc/dnsdomainname # rc-update add domainname default # nano -w /etc/rc.conf CLOCK="local" # emerge grub # grub root (hd0,1) setup (hd0) quit # nano -w /boot/grub/grub.conf default 1 timeout 10 splashimage=(hd0,1)/boot/grub/splash.xpm.gz title=Gentoo Linux (2.6.7-gentoo-r11) root (hd0,1) kernel (hd0,1)/boot/kernel-2.6.7-gentoo-r11 root=/dev/hda4 vga=0x305 acpi=force title=Gentoo Linux (2.4.26-gentoo-r6) root (hd0,1) kernel (hd0,1)/boot/kernel-2.4.26-gentoo-r6 root=/dev/hda4 vga=0x305 acpi=force title=Windows 2000 root (hd0,0) chainloader (hd0,0)+1 # cd / # emerge vixie-cron # rc-update add vixie-cron default # emerge reiserfsprogs # passwd // enter the root password # useradd alex -m -G users,wheel,audio,tty -s /bin/bash # passwd alex // enter the password # exit # cd / # umount /mnt/gentoo/boot /mnt/gentoo/proc /mnt/gentoo # reboot
Этап второй - установка нужных и не очень программ
// login # emerge gpm # nano -w /etc/env.d/gpm MOUSE=imps2 MOUSEDEV=/dev/psaux # USE="bindist" emerge --usepkg kde # find /etc -iname `._cfg????_*` # mv /etc/fonts/._cfg0000_fonts.conf /etc/fonts/fonts.conf # ebuild /var/db/pkg/dev-db/mysql-4.0.20/mysql-4.0.20.ebuild config # /etc/init.d/mysql start # /usr/bin/mysqladmin -u root password `******` # nano -w ~/.xpdfrc include /etc/xpdfrc t1libControl high freetypeControl high # /usr/X11R6/bin/xorgconfig # nano -w /etc/rc.conf DISPLAYMANAGER="kdm" XSESSION="kde-3.2" # rc-update add xdm default # USE="bindist" emerge -K vim # vim /etc/X11/xorg.conf uncomment glx module add `Option "ZAxisMapping" "4 5"` into the InputDevice sectio for mouse Option "XkbLayout" "us,ru(winkeys)" Option "XkbOptions" "grp:alt_shift_toggle,grp_led:scroll,altwin:menu" PS/2 to IMPS/2 # cd /usr/share/fonts/ # mkdir WinTTF # mkdir /mnt/win && mount /mnt/win # cp /mnt/win/WINNT/Fonts/*.ttf /usr/share/fonts/WinTTF # cd WinTTF # chmod 444 * # ttmkfdir > fonts.scale # mkfontdir # vim /etc/X11/xorg.conf FontPath "/usr/share/fonts/WinTTF/" $ xset fp rehash $ oopadmin add fonts from /usr/share/fonts/WinTTF/ # emerge rp-pppoe Modem initialization string: AT *NC25 Z # emerge -K apache # rc-update add apache2 default # vim /etc/apache2/conf/apache2.conf ServerName localhost # vim /etc/hosts 127.0.0.1 home 127.0.0.1 lh # ln -s /usr/doc/apache-2.0.50/manual /var/www/localhost/htdocs/manual # vim /etc/env.d/02locale LC_ALL="" LANG="en_US.utf8" # env-update # vim /etc/rc.conf SET_WINDOWKEYS="yes" #CONSOLEFONT="ter-c14f" CONSOLEFONT="LatArCyrHeb-14" KEYMAP="-u ru" CLOCK="local" EDITOR="/usr/bin/vim" // Взято со странички http://dev.gentoo.org/~sergey/unicode-guide.html // Создаем файл baselayout_utf.patch ========================================== --- /etc/init.d/keymaps.orig 2004-06-27 19:13:33.000000000 +0300 +++ /etc/init.d/keymaps 2004-06-27 19:20:24.000000000 +0300 @@ -43,6 +43,11 @@ /bin/loadkeys -q \ >/dev/null + + if [ -n "" ] + then + dumpkeys -c "" | loadkeys -u > /dev/null + fi else eend 1 "loadkeys executable not found" return 1 --- /etc/init.d/consolefont.orig 2004-06-27 19:22:42.000000000 +0300 +++ /etc/init.d/consolefont 2004-06-27 19:49:31.000000000 +0300 @@ -65,15 +65,21 @@ if [ "" -eq 0 ] then + loc_switch="\033(K" + if [ -n "" ] && [ "" == "yes" ] + then + loc_switch="\033%G" + fi + for x in $(seq 1 "") do # Using DEVFS ? if [ -e /dev/.devfsd ] || \ [ -e /dev/.udev -a -d /dev/vc ] then - echo -ne "\033(K" >/dev/vc/ + echo -ne >/dev/vc/ else - echo -ne "\033(K" >/dev/tty + echo -ne >/dev/tty fi done fi --- /etc/rc.conf.orig 2004-06-27 19:52:34.000000000 +0300 +++ /etc/rc.conf 2004-06-27 19:49:14.000000000 +0300 @@ -7,6 +7,14 @@ KEYMAP="-u ru-yawerty" +# If you want to use in UTF locale a keymap created for different locale then it +# needs to be converted. Set this variable to value of the encding fo desired keymap. +KEYMAP_ENCODING="KOI8-R" + + +# Set this variable to "yes" if you are using UTF-8 locale. +UTF8="yes" + # Should we first load the `windowkeys` console keymap? Most x86 users will # say "yes" here. Note that non-x86 users should leave it as "no". ========================================== # patch -p0 < baselayout_utf.patch # /etc/init.d/keymaps restart # /etc/init.d/consolefont restart # cp /backup/system3/usr/portage/distfiles/other/php-5.0.0.tar.bz2 /usr/portage/distfiles/ # md5sum /usr/portage/distfiles/php-5.0.0.tar.bz2 562b7ad1e903248bbe77884cb904b8b7 php-5.0.0.tar.bz2 # ls -al php-5.0.0.tar.bz2 -rwxr--r-- 1 root root 4554054 Aug 8 12:31 /usr/portage/distfiles/php-5.0.0.tar.bz2 # vim /usr/portage/dev-php/mod_php/files/digest-mod_php-5.0.0 MD5 562b7ad1e903248bbe77884cb904b8b7 php-5.0.0.tar.bz2 4554054 # vim /usr/portage/dev-php/php/files/digest-php-5.0.0 MD5 562b7ad1e903248bbe77884cb904b8b7 php-5.0.0.tar.bz2 4554054 # vim /usr/portage/dev-php/mod_php/mod_php-5.0.0.ebuild // remove RC3 # USE="bindist" emerge -K curl # USE="-gdbm -truetype -spell xsl -mysql mysqli -imap -crypt -tidy" emerge /usr/portage/dev-php/mod_php/mod_php-5.0.0.ebuild # vim /etc/conf.d/apache2 APACHE2_OPTS="-D PHP5" # rc-update add apache2 default # vim /usr/lib/apache2/conf/modules.d/70_mod_php5.conf replace extramodules with modules # emerge /usr/portage/dev-php/PEAR-PhpDocumentor/PEAR-PhpDocumentor-1.3.0_rc3.ebuild # emerge ccache
Усе! Если дошли до этого момента - поздравляю. Теперь у Вас есть замечательная система. Если я что забыл - пишите - добавлю.