====== DeLi(cate) GNU/Linux ======
[[http://delicate-linux.net/ | DeLi(cate) GNU/Linux]] -- это форк (ответвление) проекта DeLi, дистрибутива операционной системы GNU/Linux для старых компьютеров. Поскольку разработчики DeLi GNU/Linux изначально ориентировались на компьютеры десятилетней давности, получалось, что с каждым годом это (целевое) аппаратное обеспечение становилось всё более и более производительным. Так к 2011 году оно достигло уровня Pentium III (которые массово производились в районе 2001 года). Это привело к тому, что в 2011 году разработчики проекта DeLi выпустили новый дистрибутив -- [[http://www.connochaetos.org/wiki/ | ConnochaetOS]], который имел уже несколько более высокие системные требования, и базировался уже на GNU LibC (вместо uClibc, применявшимся в DeLi), а также на ядре linux-2.6 (вместо ветки 2.4 в DeLi). Однако потребность в дистрибутиве для старых машин (вплоть до 386-х) никуда, по сути, не исчезла. Тогда комплектующие зачастую делали на совесть, поэтому работают многие из них и по сей день. Поэтому в том же 2011 году был дан старт новому проекту -- DeLi(cate), из самого названия которого явственно следует его преемственность с DeLi GNU/Linux.
Этот дистрибутив, как и DeLi работает на uClibc и на ядре Linux-2.4.37.11, поэтому оказывается очень "лёгок" в смысле используемых ресурсов. В нём также используется удобная система управления пакетами, заимствованная из ArchLinux -- [[https://wiki.archlinux.org/index.php/Pacman | Pacman]].
Итак, я решил попробовать перейти с DeLi v.0.7.2 на одном из своих старых компьютеров на [[http://delicate-linux.net/0.1/download/iso/delicate-0.1-alpha3-rev2.iso | DeLi(cate) v.0.1alpha3-rev2]] -- последнюю из доступных на данный момент верисий.
===== Установка системы =====
Устанавливаем минимальный дистрибутив DeLi(cate)
==== Установка из ISO-образа ====
mount -o loop /mnt/data/delicate.iso /mnt/iso
mount /dev/sdb2 /mnt/tmp
cd /mnt/tmp
cp /mnt/iso/serial.ins/delibase.tgz.part00 ./delibase.tgz
cat /mnt/iso/serial.ins/delibase.tgz.part01 >> ./delibase.tgz
cat /mnt/iso/serial.ins/delibase.tgz.part02 >> ./delibase.tgz
cat /mnt/iso/serial.ins/delibase.tgz.part03 >> ./delibase.tgz
cat /mnt/iso/serial.ins/delibase.tgz.part04 >> ./delibase.tgz
cat /mnt/iso/serial.ins/delibase.tgz.part05 >> ./delibase.tgz
cat /mnt/iso/serial.ins/delibase.tgz.part06 >> ./delibase.tgz
tar xvf delibase.tgz
mcedit /mnt/tmp/etc/fstab
cp /etc/mtab /mnt/tmp/etc/
mcedit /mnt/tmp/etc/mtab
Редактируем строку, указывающую раздел, подмонтированный в качестве корневого каталога (''/''). Меняем его на тот, куда будем устанавливать GRUB.
mount -o bind /dev/ /mnt/tmp/dev/
mount -t proc none /mnt/tmp/proc
chroot /mnt/tmp
grub-install --no-floppy /dev/sdb
Настраиваем сеть
Подключаем внешний источник пакетов (репозиторий) и обновляем список доступных пакетов
pacman -Sy
Добавляем пакеты:
pacman -S wget mc binutils
==== Установка (обновление) ядра ====
Скачиваем исходники ядра
wget ...
Распаковываем
cd /usr/src
tar -xvf linux-2.4.37.11.tar.bz2
ln -s linux-2.4.37.11.tar.bz2 linux
Конфигурируем ядро:
cd linux
make menuconfig
make dep
time make
~42 min
make modules
~25 min
make modules_install
make install
Поскольку не был установлен загрузчик LiLo, получаем сообщение об ошибке. Зато в корневом каталоге появились файлы System.map и vmlinuz, необходимые для загрузки новособранного ядра. Переносим их вручную в каталог /boot.
mv System.map /boot/System.map-2.4.37.11-mykernel
mv vmlinuz /boot/vmlinuz-2.4.37.11-mykernel
Изменяем ссылки на новые файлы:
ln -s -f System.map-2.4.37.11-mykernel System.map
ln -s -f vmlinuz-2.4.37.11-mykernel vmlinuz
Создаём дополнительные пункты меню загрузчика GRUB:
mcedit /boot/grub/menu.lst
title DeLi(cate)-MyKernel
root (hd0,1)
kernel /boot/vmlinuz-2.4.37.11-mykernel root=/dev/hda2
title DeLi(cate)-old
root (hd0,1)
kernel /boot/vmlinuz-2.4.37.11-ide root=/dev/hda2
==== Правка системной конфигурации ====
Исправляем неверно указанный путь расположения программы 'less':
...
if [ -x /bin/less ]; then
export PAGER='/bin/less'
...
==== Перенос системы на SATA-диск ====
mke2fs -j /dev/sda2
mkdir /mnt/tmp
mount /dev/sda2 /mnt/tmp
cp -r / /mnt/tmp/
mount -o bind /dev /mnt/tmp/dev
mount -t proc none /mnt/tmp/proc
chroot /mnt/tmp
Пользуясь советом, данным [[http://www.linuxquestions.org/questions/linux-software-2/solved-grub-install-dev-hdx-does-not-have-any-corresponding-bios-drive-error-401582/|здесь]],
grub-install --recheck /dev/sda
Редактируем конфигурацию GRUB
mcedit /boot/grub/device.map
(hd0) /dev/scsi/host0/bus0/target0/lun0/disc
grub-install /dev/sda2
Редактируем файл /etc/fstab
/dev/sda2 / ext3 defaults 1 1
/dev/sda3 swap swap defaults 0 0
none /proc proc defaults 0 0
===== Установка сетевых сервисов =====
==== rsync ====
pacman -S rsync
rsync --daemon
rsync: can't load library 'libpopt.so.0'
pacman -S popt
==== HTTP-сервер ====
FIXME
==== FTP-сервер ====
FIXME
==== Torrent-клиент ====
Transmission
Чтобы не устанавливать поддержку графического интерфейса, опускаем установку зависимостей (gtk2, в частности):
pacman -Sd transmission
transmission-daemon
transmission-daemon: can't load library 'libcurl.so.4'
pacman -S curl
pacman -S sudo
Настройка **//sudo//** редактированием файла ///etc/sudoers//
Поскольку доступный пакет **//sudo//** оказался версии 1.6.9p16, т.е. несколько староват (нет поддержки ключа **'-g'**), пришлось собирать пакет для более новой версии.
Версия **//transmission//** оказалась весьма устаревшей, и я решил собрать пакет для более новой версии.
Поскольку пакета **//libevent//** в репозитории также не оказалось, его тоже пришлось собирать.
pacman -S xz
pacman -S pkgconfig
Поскольку пакета **//intltool//** в репозитории также не оказалось, его тоже пришлось собирать.
pacman -S p5-xml-parser
pacman -U transmission-daemon-2.52-1.pkg.tar.gz
FIXME