Linux From Scratch - что лучше?

kruzer25

Какую книжку Linux from Scratch лучше почитать (надо в электронном виде)? И где можно взять все необходимые исходники, чтобы не искать по всему интернету каждую конкретную программу?
Вообще, сейчас имеется Interix из WinXP SP2 (Home, переделана в Pro) + SFU3.5 (со всеми причиналами, начиная от chmod и ksh и кончая make, gcc и x-клиентом хочется попробовать взгромоздить туда X-Server, KDE, Amarok итп (просто не хватает мне амарока в винде ). И ещё, возможно, стандартный линуксовый gcc (насколько я понимаю, они компилируют очень по-разному даже в зависимости от версии? Хочется, чтобы можно было там писать программы для мм - хз, мб для этого и входящий в SFU gcc подойдёт).
ЗЫ: Теоретический вопрос - вот есть платформы Anix и Bnix, с разными форматами бинарников; собираю я на них из одних и тех же исходников gcc, после чего этим свежесобранным gcc компилирую свою программу - откуда gcc узнаёт, что на платформе Anix бинарники в формате FLE, а на платформе Bnix - в формате PZM, если в самих исходниках gcc нет никаких сведений об этих разных платформах? Откуда все компиляторы берут язык бинарников для данной платформы?

evgen5555

в самих исходниках gcc нет никаких сведений об этих разных платформах

Плохо смотришь.

AlexV769

www.gentoo.org
Ставишься по handbook'у начиная со stage1. Будешь настоящим geek'ом.

kruzer25

Плохо смотришь.
Это было только предположение.
То есть, исходники gcc знают про все существующие *nix платформы, а если появится новая, со своим стандартом бинарников - gcc под неё не соберётся

kruzer25

Зачем мне cygwin

kruzer25

Проблема в том, что ставиться всё это будет на безинетный (почти) комп.
Так что хочется получить какой-то список типа "вот это надо скачать", поставить, когда будет интернет, на закачку и радоваться.
А не так, что натыкаемся на "а вот сейчас вам понадобится программа abc, качайте её отсюда" в сотне мест в руководстве...
Так что handbook этот я посмотрю, но вот где скачать исходники всего этого?

kruzer25

Или вот это должно помочь?
А почему там для x86 есть только Minimal CD?
Или для моей цели без разницы, для какой архитектруы брать, потому что мне нужны слишком высокоуровневые исходники, которые о архитектуре ещё ничего не знают?

dgaf

тебе че надо-то?
xorg, kde, amarok под винду собрать или поверх LFS ?
или кто?

kruzer25

xorg, kde, amarok под винду собрать
Да.
или поверх LFS
Что значит "поверх LFS"?
Насколько я понимаю, LFS - это когда мы берём готовый линукс, в нём собираем ядро, компилятор итп для своего, после чего в своём с ядром, компилятором и шеллом собираем всё остальное? Тогда мне как раз нужно сделать то же, что и делают для LFS, только не целиком (потому что ядро, компилятор и шелл уже какие-то есть).

sirius

только не целиком (потому что ядро, компилятор и шелл уже какие-то есть).
Тогда это не LFS.
И при чём здесь винда вообще?

igorpopkoff

LFS - это такой дистрибутив линукса. То, что ты описал, больше на gentoo похоже.

kruzer25

LFS - это такой дистрибутив линукса
Значит, я отстал от жизни - мне казалось, что это скорее идеология и книжка

kruzer25

И при чём здесь винда вообще?
При том, что я никогда раньше ничего не собиралЮ, а сейчас вот захотелось - как мне почти с нуля получить полностью рабочий, например, тот же амарок?

igorpopkoff

Идеология точно(и, скорее всего, книжка тоже) есть у каждого более-менее значимого дистрибутива линукса.
А зачем ты лезешь в это? Чтобы набрать новых фактов, какое линукс глюкавое говно, которые потом использовать в многостраничном флуде?

igorpopkoff

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

krishtaf

пидар-артура второго в блэклист и всем советую

kruzer25

А зачем ты лезешь в это? Чтобы набрать новых фактов, какое линукс глюкавое говно
Нет, чтобы запустить амарок и Pingus под виндой

RomanLeon

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

kruzer25

А я не хочу ждать и под винду, я хочу испытать всю мощь виндовой posix-среды (делать мне сейчас нечего...)

kruzer25

bash уже не ставится...
$ make install
     ***********************************************************
     * *
     * GNU bash, version 3.2.0(1)-release (i586-pc-interix3)
     * *
     ***********************************************************
( cd ./po/ ; make DESTDIR= installdirs )
/bin/sh /dev/fs/D/installs/SFU/Utils/bash-3.2/bash-3.2/./support/mkinstalldirs /usr/local/share
if test "bash" = "gettext-tools"; then /bin/sh /dev/fs/D/installs/SFU/Utils/bash-3.2/bash-3.2/./support/mkins
talldirs /usr/local/share/gettext/po; else : ; fi
/bin/install -c -m 0755 bash /usr/local/bin/bash
/bin/install -c -m 0555 bashbug /usr/local/bin/bashbug
( cd ./doc ; make man1dir=/usr/local/man/man1 man1ext=.1 man3dir=/usr/local/man/man3 man3ext=.3 infodir=/u
sr/local/info htmldir= DESTDIR= install )
/dev/fs/F/SFU//bin/sh ../support/mkinstalldirs /usr/local/man/man1
/dev/fs/F/SFU//bin/sh ../support/mkinstalldirs /usr/local/info
if test -n "" ; then /dev/fs/F/SFU//bin/sh ../support/mkinstalldirs ; fi
/bin/install -c -m 644 ./bash.1 /usr/local/man/man1/bash.1
/bin/install -c -m 644 ./bashbug.1 /usr/local/man/man1/bashbug.1
/bin/install -c -m 644 ./bash.info /usr/local/info/bash.info
if /dev/fs/F/SFU//bin/sh -c 'install-info --version' >/dev/null 2>&1; then install-info --dir-file=/usr/local
/info/dir /usr/local/info/bash.info; else true; fi
if test -n "" ; then /bin/install -c -m 644 ./bash.html ; /bin/install -c -m 644 ./bashref.html ; fi
( cd ./builtins ; make DESTDIR= install )
( cd ./po/ ; make DESTDIR= install )
test -z "quot.gmo boldquot.gmo ru.gmo" || make quot.gmo boldquot.gmo ru.gmo
`quot.gmo' is up to date.
`boldquot.gmo' is up to date.
rm -f ru.gmo && : -c --statistics -o ru.gmo ru.po
mv: rename t-ru.gmo to ru.gmo: No such file or directory
*** Error code 1
Stop.
*** Error code 1
Stop.
*** Error code 1 (ignored)
Точнее, ставится (в /usr/local/bin его бинарники есть но не полностью (например, нет man-страниц...
Понять, где там и что происходит в Makefile, невозможно - ужасный код и ни одного комментария...

shlyumper

убей себя ап стену, LSF не для тебя. Что-то ты раньше не так сделал. Собака порылась вот где:
rm -f ru.gmo && : -c --statistics -o ru.gmo ru.po
Здесь вместо двоеточия должна была стоять какая-то команда, раз ее не стоит - значит ее не нашел configure, и у тебя ее нет.
Понять, где там и что происходит в Makefile, невозможно - ужасный код и ни одного комментария...
Открой для себя autotools (tm). Makefile автоматически сгенеренный. Его читать/править и не предполагается. Читай Makefile.am

kruzer25

Что-то ты раньше не так сделал
Ага, а как понять, что?
Здесь вместо двоеточия должна была стоять какая-то команда,
Просто я не гуру линукса, и мне это было не настолько очевидно.
значит ее не нашел configure, и у тебя ее нет
configure никаких ошибок не выдал.
Makefile автоматически сгенеренный
Ага, мне тоже так показалось...
Читай Makefile.am
В смысле?
В папке, откуда ставил, никакого Makefile.am нет. Есть только Makefile и Makefile.in (чем-то незначительно отличающийся от Makefile).
ЗЫ: Ещё до того поста, пытался найти в Makefile слово gmo - ничего не нашёл...

kruzer25

Да, забыл сказать, гугль на это сообщение ничего не выдаёт.
Как можно понять, чего именно не хватает?

shlyumper

Ага, а как понять, что?
Лучше тебя этого никто не сможет понять - только ты знаешь, что ты делал.
Просто я не гуру линукса, и мне это было не настолько очевидно.
Нахера тебе тогда LFS? Даже многие гуру линукса считают LFS игрушкой и поебенью, если им пользоваться для работы. Это исключительно учебник из серии "как собрать себе свой ``идаельный'' дистрибутив".
configure никаких ошибок не выдал.
Два варианта: или ты эту ошибку пропустил, потому что ты не гуру линукса, или чего-то очевидного не поставил, а в configure забыли наличие этого чего-то очевидного проверить.
В смысле?
В папке, откуда ставил, никакого Makefile.am нет.
"Не верю". Какой версии bash?

kruzer25

только ты знаешь, что ты делал
Ага.
Я скачал bash-3.2.tar.gz с оф.сайта, распаковал, прочитал INSTALL, запустил из его папки ./configure, затем make, затем make install - и получил такую ошибку.
Это исключительно учебник из серии "как собрать себе свой ``идаельный'' дистрибутив"
Есть другие варианты, как получить амарок под Interix?
или ты эту ошибку пропустил, потому что ты не гуру линукса
Ну, насколько я понял, в том, что там мне ./configure выдал на экран, сообщение об этой ошибке среди всего остального должно было быть?
или чего-то очевидного не поставил
Во всяких там README никакого списка зависимостей не нашёл.
ЗЫ: Сейчас почитал doc/FAQ - из этого файла сложилось такое ощущение, что в исходниках всё-таки есть какие-то os-dependent вещи, иначе откуда это?
A5) Will bash run on operating systems other than Unix?
Configuration specifics for Unix-like systems such as QNX and
LynxOS are included in the distribution. Bash-2.05 and later
versions should compile and run on Minix 2.0 (patches were
contributed but I don't believe anyone has built bash-2.x on
earlier Minix versions yet.
Какой версии bash?
3.2
Кстати, в папке po есть три файла - Makefile, Makefile.in и Makefile.in.in (в исходном архиве есть только Makefile.in.in) - не является ли это двойное расширение каким-то глюком? (Тем более, ошибка возникла как раз где-то в районе всех этих po)?

shlyumper

Есть другие варианты, как получить амарок под Interix?
Есть 99.99999% увереноость, что не получится, по крайней мере без очень большого напильника, которого у тебя нет. А если и есть, то ты им скорее себе голову отпилишь, чем то что надо сделаешь.
Сейчас почитал doc/FAQ - из этого файла сложилось такое ощущение, что в исходниках всё-таки есть какие-то os-dependent вещи, иначе откуда это?
Конечно же есть! Кто сказал, что все в этом мире ограничивается POSIX'ом? configure определяет какие именно из OS-dependent вещей надо подключать.
Кстати, в папке po есть три файла - Makefile, Makefile.in, Makefile.in.in
Почитал, Makefile.in действительно нормальный, человеческий, написанный человеком, а не сгенеренный. Чего ты там не понял - не знаю.
Если почитать этот Makefile.in, то можно узнать, что на месте двоеточия, там где у тебя вылезла ошибка, должна быть команда GMSGFMT. Если почитать что это такое, то можно узнать, что это программа msgfmt от библиотеки gettext, которая у тебя либо не стоит, либо стоит криво. Короче, четай учебники, если хочешь трахаться в таком духе.

kruzer25

по крайней мере без очень большого напильника, которого у тебя нет
А может, мне сексом позаниматься хочется
А если и есть, то ты им скорее себе голову отпилишь
Ну это вряд ли...
configure определяет какие именно из OS-dependent вещей надо подключать
А если configure bash-а не знает именно про мою ОС, хотя она и POSIX-совместима - это ему помешает?
Почитал, Makefile.in действительно нормальный, человеческий, написанный человеком, а не сгенеренный
Да, комменты там действительно есть (как и в самом Makefile но от этого легче не становится...
Если почитать этот Makefile.in, то можно узнать, что на месте двоеточия, там где у тебя вылезла ошибка, должна быть команда GMSGFMT
А как именно надо его читать, чтобы понять (и понимать в будущем) такие вещи?
Если почитать что это такое, то можно узнать, что это программа msgfmt от библиотеки gettext, которая у тебя либо не стоит, либо стоит криво.
Сейчас попробую поставить...
Вообще, посмотрел в логи configure - у меня, похоже, ещё и многих заголовков не хватает, например, inttypes.h... хотя непонятно, как это сказывается на компиляции (сам-то bash нормально скомпилировался, по крайней мере, он есть, хоть и какой-то кривоватый)...

kruzer25

Сейчас попробую поставить...
Пипец, она весит 8 метров, в офисе меня распнут
Так что с этим пока что подожду...

yulya

поставь лучше висту

shlyumper

А может, мне сексом позаниматься хочется
Секс - это с людьми. С компьютерами - это мозгоебство и умственный анонизм.
А если configure bash-а не знает именно про мою ОС, хотя она и POSIX-совместима - это ему помешает?
Как повезет. Может соберется с ограниченной функциональностью, может вообще не заработает.
А как именно надо его читать, чтобы понять (и понимать в будущем) такие вещи?
А как учатся программы на (вставь название любого языка программирования) читать? Берут учебник по (вставь название любого языка программирования читают этот учебник, решают упражнения... make - это такой специальный язык программирования. Продолжать, или уже сам догадаешься дальше?
Сейчас попробую поставить...
Вообще, посмотрел в логи configure - у меня, похоже, ещё и многих заголовков не хватает, например, inttypes.h... хотя непонятно, как это сказывается на компиляции (сам-то bash нормально скомпилировался, по крайней мере, он есть, хоть и какой-то кривоватый)...
Блин, вот ты странный. Всем студентам говорю: если видите незнакомую команду, и не знаете, что она делает - запустите ее с опцией --help. В частности, в данном случае можно было бы запустить
./configure --help

откуда прочитать:
  --with-included-gettext use the GNU gettext library included here

после чего запустить configure этой опцией, и, возможно, все заработает.

kruzer25

У меня виста стоит, но на неё SUA не ставится - скорее всего, потому что в висте 5365 подсистему posix ещё не доделали.

kruzer25

Может соберется с ограниченной функциональностью
Ага, как-то уже собрался.
А как учатся программы на (вставь название любого языка программирования) читать? Берут учебник по (вставь название любого языка программирования читают этот учебник, решают упражнения... make - это такой специальный язык программирования. Продолжать, или уже сам догадаешься дальше?
Понял, буду искать.
Всем студентам говорю: если видите незнакомую команду, и не знаете, что она делает - запустите ее с опцией --help. В частности, в данном случае можно было бы запустить
./configure --help
откуда прочитать:
--with-included-gettext use the GNU gettext library included here
после чего запустить configure этой опцией, и, возможно, все заработает.
Проблема в том, что в данном случае, до того, как ты это сказал, не было понятно, что дело именно в gettext.
А всех опций там около сотни.

shlyumper

На будущее: всегда читай --help от configure. Даже если знаешь что "все по умолчанию тебя должно устроить, скорее всего".

kruzer25

всегда читай --help от configure
Всё-таки, в данном случае, без твоей помощи мне этот --help ни о чём бы не сказал.

shlyumper

А ты учебники тоже читай.
P.S. LFS - это не учебник.

buka

а где здесь линукс?

kruzer25

В Scratch-е.
Оставить комментарий
Имя или ник:
Комментарий: