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)
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' ...
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
(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
pacman -S rsync
rsync --daemon rsync: can't load library 'libpopt.so.0'
pacman -S popt
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