LINUX.ORG.RU

Linux From Scratch 6.0


0

0

Сообщество Linux From Scratch радо объявить о выпуске релиза LFS 6.0. Издание шестое, переработанное и дополненное, включает в себя достаточно много обновленного софта, в том числе GCC 3.4.x, Linux kernel 2.6.8.1, и пакет Udev, позволяющий динамически создавать файлы устройств. Текст книги был значительно переписан для улучшения "читабельности".

>>> Анонс на freshmeat

★★★★★

Проверено: Demetrio ()

Хочу попробовать собрать свой Линукс.

anonymous
()

Русский перевод уже есть?

Linux From Scratch -- самый лучший учебник Linux.

anonymous
()

а что ядро несвежее?

у меня например были траблы с USB2 пока на 2.6.10 не перешел

anonymous
()
Ответ на: комментарий от anonymuoz

>Когда и где можно будет скачать русский перевод ? :)

В ту пору, когда появится русский перевод LFS-6.0, актуальна уже будет версия эдак 9.x, бо сейчас на сайте лежит русская трансляция четвёртой версии.

И вообще, переводы подобных вещей есть зло, ИМХО.

ak47
()

Также есть большой смысл использовать патчи от lfs community. Добавляют прямоты кое-каким софтварям.

ak47
()

У меня уже месяц как собран похожий по книге 5.1.1 со своим напильником. Сейчас глянем как сильно я ошибался :)

Lumi ★★★★★
()

А где же релиз? Ткните носом, стэйбл у них -- 5.1.1 по прежнему, а шестёрка в тесте :(

Lumi ★★★★★
()

Главное отличие этой версии LFS от предыдущей - переход на ядро 2.6.x. При этом рекомендуется устанавливать glibc-kernelheaders. Я проводил эксперименты с LFS и заметил,что при использовании glibc-kernelheaders некоторые пакеты не собираются - при компиляции выдают ошибку, связанную с различными *.h файлами(по моему даже иксы ругались). При просмотре этих файлов видно, что эта ошибка в них и написана. Приходилось менять эти файлы на аналогичные из ядра. Если использовать заголовки из ядра, как в предыдущей версии LFS с ядром 2.4.x, то не собирается alsa-lib и соответственно вся остальная alsa. В последнем эксперименте, который я начал 2 недели назад, я использовал заголовки из ядра кроме одной из поддиректорий в asm(название точно не помню - сейчас на работе), в которой всего 5-6 файлов(в названии некоторых по моему есть слова indian или что-то похожее). Эту поддиректорию я взял из glibc-kernelheaders. При этом alsa стала собираться без проблем и другие пакеты тоже перестали ругаться при сборке. Иногда для сборки некоторых пакетов нужен linux/autoconf.h - ну так создал его, а потом убрал - и никаких проблем. Сейчас уже собрал иксы - пока проблем не заметил. А вообще я всю эту LFS завел в один скрипт и теперь достаточно поменять 1-2 строчки и все. Сборка LFS на 1ГГц дюроне занимает около 1.5 часа.

anonymous
()
Ответ на: комментарий от anonymous

>А вообще я всю эту LFS завел в один скрипт и теперь достаточно поменять 1-2 строчки и все.

Скрипт в студию,плз !..

Renso ★★
()

И кому такой LFS нужен? Список известных багов:

1) Запись компакт-дисков с данными возможна только от root

2) Запись аудиодисков упирается в утечку памяти в ядре

3) Сборка программ на C++, напрямую использующих pthread.h и mutexes, завершается с ошибкой. Даже обновление до gcc 4.0 prerelease не получается.

4) Если сделать strip -g на /usr/lib/libc.a (как они сами рекомендуют в конце) то будет невозможно линковать программы статически

5) В локали it_IT команда "sed --help" вылетает с segmentation fault

6) Обычные здесь жалобы на udev обойдены рекомендацией собирать ядро без модулей и хитрым проядком выполнения init-скриптов: modules и уже потом udev.

7) Стабильной версии BLFS, совместимой с LFS 6.0, все еще нет.

И ведь они ничего из (1) - (5) не почннят, они вообще не исправляют ошибки в "стабильных" релизах! Нафиг они ("стабильные" релизы) тогда вообще нужны?

Исправления:

1) и 2) "лечатся" обновлением ядра до 2.6.9 + http://www.kernel.org/pub/linux/kernel/v2.6/testing/cset/cset-axboe%40suse.de[to rvalds]|ChangeSet|20041104154725|45958.txt (правда, тогда появляются баги с firmware loader и OOM killer)

Если кому не хочется рисковать и получать новые глюки от ядра 2.6.9, можно для исправления (1) взять просто файлы drivers/block/scsi_ioctl.c и include/linux/cdrom.h от 2.6.10-rc3 и положить в 2.6.8.1. Не исключено, что gentoo-шники придумали что-то более умное. Для исправления (2) без увеличения версии ядра: ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.8.1/2.6.8.1... и (поверх этого) ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.8.1/2.6.8.1...

3) лечится таким патчем для glibc: http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/nptl/sysdeps/pthread/pthrea...

4) патч для binutils вырезаем из этого сообщения: http://sources.redhat.com/ml/binutils/2004-11/msg00332.html

5) патч для sed берем здесь: http://archives.linuxfromscratch.org/mail-archives/patches/2004-November/0018...

anonymous
()
Ответ на: комментарий от anonymous

Это anonymus(09.12.2004 14:59:04)со скриптом. У меня их 2: 1 - для сборки статической системы, 2 - для сборки основной. Завтра постараюсь принести. Скажите, куда скинуть - скину. Во втором скрипте оставлял только en,ru,ua локализации пакетов - все отстальные выкидал. Использовал pkgtool и вместо grub lilo. За мои личные предпочтения и качество скрипта прошу не пинать.

anonymous
()
Ответ на: комментарий от anonymous

Это опять anonymous(09.12.2004 14:59:04). Я в конце автоматом устанавливал МС-4.1.40-pre9, в котором есть глючек в одном из файлов(не помню в каком). Для автосборки я сначала(давно) исправил его и пересжал в новый исходник и теперь пользую без проблем. Там надо поставить ; в конце строки, на которой будет ругаться. Об этом тут уже говорили при выходе этой версии МС.

anonymous
()
Ответ на: комментарий от anonymous

Угу. Но этот гемор присущ и всем остальным дистрам. Другой вопрос - что лучше: знать о наличии определенных проблем, или же пребывать в блаженном неведении относительно них. Вопрос стыковки всех компонентов взятых as is далеко не так прост, как кажется на первый взгляд. Любой дистрибут - это более или менее удачная попытка вышеобозначенного действа 8). То что by LFS это производится явно - нисколько не умаляет его достоинств.

PS. Вообще-то вызывает "легкое" недоумение скорость внесения пачей в основную ветку. Например, coreutils-5.2.1 доводятся до "ума" до сих пор пачами, многие из которых были сделаны для sh-utils,fileutils,textutils... Мдэ.

V0ID ★★★
()
Ответ на: комментарий от anonymous

PS: За ссылку разумеется спасибо :)

Lumi ★★★★★
()
Ответ на: комментарий от anonymous

Спасибо. Вы HLFS не пробовали собирать? Если собирали, что можете сказать о нем?

Lumi ★★★★★
()
Ответ на: комментарий от Lumi

> С UTF8 нормально?

Они явно отрицают поддержку UTF-8:

Because of the various problems that arise due to application programmers making assumptions that break in such locales, LFS should not be used in locales that utilize multibyte character sets (including UTF-8) or right-to-left writing order.

anonymous
()
Ответ на: комментарий от Lumi

Если ты по поводу ссылки на хинт по UTF-8, то тебе неверно сдается, просто интересовался вопросом привинчивания уникода ....

anonymous
()

По ходу ... Кто чем мониторит пакаджи ? ИМХО самый больной вопрос! Поскольку идея мониторить через инстлог - слабовата, через "снимок" ФС - одновременно собираться может не более одного пакета, и руками трогать от сборки до сборки тоже ничего нельзя, иначе почта может загреметь в какой нить uninst.sh. Собирать все в local - тоже вилы, хотя уже можно ковырять руками... и по-памяти. Собирать каждый пакет под отдельного юзера - утопия. Предложения какие нибудь есть ?

anonymous
()
Ответ на: комментарий от anonymous

Ошибся значит, но дело было по другому. Догадка мелькнула после этого -- http://archives.linuxfromscratch.org/mail-archives/patches/2004-November/0018...

Врятли, кто будет из русскоговорящих так озабочен итальянской локалью при сборке. Поэтому и был задан вопрос про UTF8 :)

Оказалось, что LFS-ников немного больше, чем я думал :)

Есть ли русскоязычная тусовка в инете по LFS? Надоело вариться в собственном соку. А то в Тамбове не то, что с LFS, вообще с Linux такая тоска, что волком завоешь. :)

Lumi ★★★★★
()
Ответ на: комментарий от Lumi

Насколько сам смотрел русскоязычных - нет. Но в принципе и англоязычных хватает, хотя может и не нужны они... ЛФС штука жутко кустомизабельная тут на ЛОРе 5-6 дистрибутивов не на шутку воюют на тему у кого шурше, толще, волосастей, а представь возможность выбирать и перекраивать не только дистр а каждую тулзу в отдельности ?

anonymous
()
Ответ на: комментарий от Lumi

Сам делал простую сборку в /tmp/ Но собирать список файлов таким макаром - стремновато. В принципе подошел бы аналог гентушных ебилдов, вроде как система обмена скриптами сборки со списком создаваемых файлов. Только не настолько сумасшедшая как в генту.

anonymous
()
Ответ на: комментарий от anonymous

Думаю LFS-ники воевать таким образом никогда не будут, просто в силу неких личных особенностей, даже по этому треду видно -- из шалунов только один пришёл, да и ему здесь быстро надоело. А возможность перекраивать тулзы под себя есть и в пакетных дистрибутивах -- сиди и спеки ковыряй, никто же не запрещает. :)

Lumi ★★★★★
()
Ответ на: комментарий от Lumi

> Думаю LFS-ники воевать таким образом никогда не будут

Согласен, но надобность ресурса все-таки пока сомнительна, хотя все может быть... может и не сегодня, но рано или поздно если будет острая необходимость - появится. Пока как альтернатива - только рассылки ...

anonymous
()
Ответ на: комментарий от VladimirP

Paco эффективен, только с пакаджами которые выдают на stdin make-log, и абсолютно неэффективен с теми в которых make install подымает собственный инсталер, а это поти все проекты не проработанные automake/autoconf. Хотя может я и ошибаюсь...

anonymous
()

Тут пару человек просили мой скрипт - я принес. Куда выложить в общий доступ? По поводу менеджеров пакетов - я использую pkgtool от слаки, но для автосборки подправил в нем немного - чтоб не ждал 5 секунд при tar версии > 1.3(кажись) и чтоб паковал с фиксированными параметрами не задавая вопросов (принести забыл). А вообще вместо make install делал make DESTDIR=/куда-надо-временно install или make prefix=/куда-надо-временно install, а уже потом собирай чем хочеш. Во втором случае иногда надо создавать нужные подкаталоги за указанным prefix. Только некоторые програмулины ставятся при make install не при помощи install, а при помощи ср. В LFS таких всего несколько.

anonymous
()
Ответ на: комментарий от anonymous

> В LFS таких всего несколько.

Возможно. Но make DESTDIR не везде, а make prefix= вообще неприятная штука когда вроде все пучком, а потом начинается /tmp/etc/епрст.конф not found. Хотя по большому счету херня-война... один черт если жутко хочется узнать откуда привалила либа или эльф достаточно напрячь память ;))))

А вот куда кидать скрипт ??? Вот тут-то и пригодился бы ресурс ;). В принципе если не очень здоровый - может прямо в пост ?

anonymous
()
Ответ на: комментарий от anonymous

>Тут пару человек просили мой скрипт - я принес. Куда выложить в общий доступ?

О, спасибо... Если не шибко большой ,то можешь прямо сюда запостить ;)
или на мыло если не в падлу скинь : rencoroso(at)yandex.ru

>По поводу менеджеров пакетов - я использую pkgtool от слаки

Мне так каатся, шо для LFS может stow подойти...
http://www.gnu.org/software/stow/

Renso ★★
()
Ответ на: комментарий от anonymous

неплохо бы сделать что то типа superLFS где будут учитываться и иксы и все последующие утилиты, так необходимые в работе - но это уже наверное gentoo получится - хотя LFS конечно по скорости работы и по тем знаниям которые вы получаете при сборке рулит безусловно. что бы стать линукс спецом, соберите линукс руками и живите в этой среде

vm ★★
()
Ответ на: комментарий от unsaid

Не знаю, как у тебя там 13 килобайт скрипт, но у меня он без архива 1781 килобайт. Всего минимум:
#!/bin/sh
CS="\033[38m"
CE="\033[00m"

fsckend()
{
returned=$?
test $returned -eq 0 || ( test $returned -eq 1 && echo -e \ \ \ ${CS}Filesystem errors corrected${CE} || ( test $returned -eq 2 && reboot -f ${CS} ||sulogin ) )
}

start()
{
echo -e ${CS}Booting system...${CE}

echo -e ${CS}- Exporting needed environment variables${CE}
export PATH=/bin:/sbin:/usr/bin:/usr/sbin

echo -e ${CS}- Checking filesystems...${CE}
fsck -C -T -A -a

echo -e ${CS}- Mounting /proc...${CE}
mount -n /proc

echo -e ${CS}- Mounting all filesystems...${CE}
mount -n -a
mount -o remount /

echo -e ${CS}- Enabling swap...${CE}
swapon -a

echo -e ${CS}- Updating utmp...${CE}
> /var/log/wtmp
halt -w
cp /var/log/wtmp /var/run/utmp

mkdir -m 1777 /var/tmp/.{ICE,X11}-unix > /dev/null 2>&1

echo -e ${CS}- Bringing lo up...${CE}
ifconfig lo 127.0.0.1 up
echo -e ${CS}- Setting hostname to home...${CE}
hostname home
echo -e ${CS}- Starting DHCP client daemon...${CE}
dhcpcd -L /var/run eth0

echo -e ${CS}- Starting GPM...${CE}
gpm -m /dev/psaux -t ps2

echo -e ${CS}- Initializing kernel modules...${CE}
modprobe nvidia > /dev/null 2>&1
insmod svgalib_helper > /dev/null 2>&1
}

workend()
{
echo -e ${CS}- Killing GPM...${CE}
kill `cat /var/run/gpm.pid`
echo -e ${CS}- Killing DHCP client daemon...${CE}
kill `cat /var/run/dhcpcd-eth0.pid`
echo -e ${CS}- Disabling swap...${CE}
swapoff -a
echo -e ${CS}- Updating wtmp...${CE}
> /var/log/wtmp
halt -w
cp /var/log/wtmp /var/run/utmp
echo -e ${CS}- Remounting filesystems in read-only mode...${CE}
for d in `gawk -F' ' '{ print $2 }' /proc/mounts` ; do test $d != "/proc" && mount -o remount,ro $d ; done
}

case $1 in
start)
start
;;
reboot)
workend
reboot -f
;;
shutdown)
workend
poweroff -f
;;
esac
Всё это грузится уже в ранлевеле, потому что я только третий использую, а sysinit мне не нужен.

drish ★★
()
Ответ на: комментарий от unsaid

Нет, я просто ответил на твоё сообщение, чтоб второй раз не искать. :) Я думал, что о стартапе. Но и для сборки у меня скрипт есть, правда он ОЧЕНЬ не рациональный и большой, так что писать не буду. Была мысль сделать что-нибудь вроде emerge на bash, но мне это не слишком надо.

drish ★★
()
Ответ на: комментарий от drish

> правда он ОЧЕНЬ не рациональный и большой

Ничего. Я вообще каждый раз руками молочу - каждый раз обещаю себе накрошить скрипт, но как правило после сборки уже мотивации послабее :) В принципе четыре часа уходит в одной консоли сборка, во второй лфс-бук в третьей какая нить мурзилка на отвлеченные темы. Главное после каждого инстала говорить wall "Валяй дальше!" ;)

unsaid
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.