Зміст

DeLi(cate) GNU/Linux

DeLi(cate) GNU/Linux – это форк (ответвление) проекта DeLi, дистрибутива операционной системы GNU/Linux для старых компьютеров. Поскольку разработчики DeLi GNU/Linux изначально ориентировались на компьютеры десятилетней давности, получалось, что с каждым годом это (целевое) аппаратное обеспечение становилось всё более и более производительным. Так к 2011 году оно достигло уровня Pentium III (которые массово производились в районе 2001 года). Это привело к тому, что в 2011 году разработчики проекта DeLi выпустили новый дистрибутив – 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 – Pacman.

Итак, я решил попробовать перейти с DeLi v.0.7.2 на одном из своих старых компьютеров на 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':

/etc/profile
...
   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

Пользуясь советом, данным здесь,

grub-install --recheck /dev/sda

Редактируем конфигурацию GRUB

mcedit /boot/grub/device.map
/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