====== 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