Хорошо, когда хорошо зарекомендовавшая себя команда разработчиков не теряет темпа и продолжает выпускать новые версии своего продукта. Я говорю о Gentoo Linux - замечательном Linux дистрибутиве, который с одной стороны принуждает разобраться в настройках системы, что очень интересно, а с другой - позволяет без лишних усилий установить все необходимые приложения.
Добыв диски с 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
Усе! Если дошли до этого момента - поздравляю. Теперь у Вас есть замечательная система. Если я что забыл - пишите - добавлю.