<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Комсомольский форум GNU/Linux &mdash; LinuxFromScratch!]]></title>
		<link>http://www.linux.kms.ru/topic/143/</link>
		<description><![CDATA[Недавние сообщения в теме «LinuxFromScratch!».]]></description>
		<lastBuildDate>Tue, 04 Dec 2007 04:59:01 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[LinuxFromScratch!]]></title>
			<link>http://www.linux.kms.ru/post/1289/#p1289</link>
			<description><![CDATA[<p>Угу, вот это и нужно ставить;)</p><p>Начнём-с! <br />Офф. сайт: <a href="http://www.linuxfromscratch.org">http://www.linuxfromscratch.org</a><br />Перевод книги(немного устаревший):http://lfs-ru.nm.ru/lfs/prologue/preface.html<br />Там разберётесь:D</p><p>У меня возникли некоторые прблемы при сборке, но с 23(!) раза она у меня заработала! По-большей части я игрался и проверял разные способы, это доставило мне неописуе... [s]мый геморрой[/s] мое удовольствие;) И я получил дополнительные знания. Это хорошо. Чтобы вам не повторять моих ошибок я опишу процесс установки полностью и заострю внимание на некоторых местах, несовсем ясно описанных в книге.</p><p>Нам понадобится около трёх гигабайт свободного места под исходники и ещё столько-же под саму систему, причем саму систему желательно сразу располагать на отдельном разделе. Цифры конечно завышены, но этого должно хватить и это избавит вас от сложностей при установке. На заметку: я обошёлся где-то гигабайтом суммарно. Так что всё в ваших руках;)</p><p>Зарегистрируемся как суперпользователь(root):</p><p>su root</p><br /><p>Пусть раздел под систему -- /dev/sda3<br />Тогда сделаем так:<br />export LFS=/mnt/lfs<br />mkdir -pv $LFS<br />mount -v /dev/sda3&nbsp; $LFS</p><p>Создадим директорию под исходники(не забываем о свободном месте):<br />mkdir -pv /home/sources<br />chmod -v a+wt /home/sources</p><p>Выполним следующее:<br />mkdir -v $LFS/tools<br />ln -sv $LFS/tools /<br />groupadd lfs<br />useradd -s /bin/bash -g lfs -m -k /dev/null lfs<br />passwd lfs<br />chown -v lfs $LFS/tools<br />chown -v lfs /home/sources<br />su - lfs</p><p>Теперь вы пользователь lfs;)<br />Настроим окружение:<br />cat &gt; ~/.bash_profile &lt;&lt; &quot;EOF&quot;<br />exec env -i HOME=$HOME TERM=$TERM PS1=&#039;\u:\w\$ &#039; /bin/bash<br />EOF</p><br /><p>cat &gt; ~/.bashrc &lt;&lt; &quot;EOF&quot;<br />set +h<br />umask 022<br />LFS=/mnt/lfs<br />LC_ALL=POSIX<br />PATH=/tools/bin:/bin:/usr/bin<br />export LFS LC_ALL PATH<br />EOF</p><p>source ~/.bash_profile</p><p>Введите:</p><p>echo $LFS</p><p>Вывод должен быть типа:<br />LFS=/mnt/lfs</p><p>Если нет, то вы допустили где-то ошибку... заново всё!</p><p>Теперь идём в директорию под исходники и методично всё распаковываем...<br />cd /home/sources<br />tar -xvf /путь/к/исходникам/нужный_пакет.tar.gz <br />Список пакетов описан в части 3.2 книги, но(!) они вам нужны не все! Скачивать скорее всего нет необходимости -- диск вы возьмёте у меня;) там есть всё необходимое:D</p><p>О необходимости пакетов вы будете узнавать по мере установки. </p><p>ВАЖНО! Распаковывать вы ДОЛЖНЫ, от имени пользователя lfs, т.е. не переключая консоль.</p><p>Сделаем так:<br />cd /home/sources<br />tar -xvf /lfs-sources/binutils-2.17.tar.bz2<br />tar -xvf /lfs-sources/gcc-4.1.2.tar.bz2<br />tar -xvf /lfs-sources/linux-2.6.22.5.tar.bz2<br />tar -xvf /lfs-sources/glibc-2.5.1.tar.bz2<br />tar -xvf /lfs-sources/ncurses-5.6.tar.gz<br />tar -xvf /lfs-sources/bash-3.2.tar.gz<br />tar -xvf /lfs-sources/bzip2-1.0.4.tar.gz<br />tar -xvf /lfs-sources/coreutils-6.9.tar.bz2<br />tar -xvf /lfs-sources/diffutils-2.8.1.tar.gz<br />tar -xvf /lfs-sources/findutils-4.2.31.tar.gz<br />tar -xvf /lfs-sources/gawk-3.1.5.tar.bz2<br />tar -xvf /lfs-sources/gettext-0.16.1.tar.gz<br />tar -xvf /lfs-sources/grep-2.5.1a.tar.bz2<br />tar -xvf /lfs-sources/gzip-1.3.12.tar.gz<br />tar -xvf /lfs-sources/make-3.81.tar.bz2<br />tar -xvf /lfs-sources/patch-2.5.4.tar.gz<br />tar -xvf /lfs-sources/perl-5.8.8.tar.bz2<br />tar -xvf /lfs-sources/sed-4.1.5.tar.gz<br />tar -xvf /lfs-sources/tar-1.18.tar.bz2<br />tar -xvf /lfs-sources/texinfo-4.9.tar.bz2<br />tar -xvf /lfs-sources/util-linux-2.12r.tar.bz2</p><p>Вот, распаковались... при распаковке не должно возникнуть ни одной ошибки! Если они возникли, значит вы НЕВНИМАТЕЛЬНО выполнили мои предписания.</p><br /><p>Теперь установка, закроем глаза и наберём в консоле..... что-то наберём....:D<br />Во! Это:<br />cd binutils-2.17<br />mkdir -v ../binutils-build<br />cd ../binutils-build<br />CC=&quot;gcc -B/usr/bin/&quot; ../binutils-2.17/configure \<br />&nbsp; --prefix=/tools --disable-nls --disable-werror <br />make &amp;&amp; make install</p><p>Кстати &quot;\&quot; означает переход на следующую строку, желательно &quot;--prefix=/tools --disable-nls --disable-werror &quot; перенести на предидущую строку, чтобы вся надпись была одной строкой.</p><p>make -C ld clean<br />make -C ld LIB_PATH=/tools/lib<br />cp -v ld/ld-new /tools/bin</p><p>mkdir -v ../gcc-build<br />cd ../gcc-build<br />CC=&quot;gcc -B/usr/bin/&quot; ../gcc-4.1.2/configure --prefix=/tools \<br />&nbsp; &nbsp; --with-local-prefix=/tools --disable-nls --enable-shared \<br />&nbsp; &nbsp; --enable-languages=c</p><p>make bootstrap<br />make install<br />ln -vs gcc /tools/bin/cc</p><p>cd ../linux-2.6.22.5<br />make mrproper<br />make headers_check<br />make INSTALL_HDR_PATH=dest headers_install<br />cp -rv dest/include/* /tools/include</p><p>mkdir -v ../glibc-build<br />cd ../glibc-build</p><p>../glibc-2.5.1/configure --prefix=/tools \<br />&nbsp; &nbsp; --disable-profile --enable-add-ons \<br />&nbsp; &nbsp; --enable-kernel=2.6.0 --with-binutils=/tools/bin \<br />&nbsp; &nbsp; --without-gd --with-headers=/tools/include \<br />&nbsp; &nbsp; --without-selinux</p><p>make<br />mkdir -v /tools/etc<br />touch /tools/etc/ld.so.conf<br />make install</p><p>mv -v /tools/bin/{ld,ld-old}<br />mv -v /tools/$(gcc -dumpmachine)/bin/{ld,ld-old}<br />mv -v /tools/bin/{ld-new,ld}<br />ln -sv /tools/bin/ld /tools/$(gcc -dumpmachine)/bin/ld</p><p>cd /home/sources</p><p>rm -rf /home/sources/{gcc-build,glibc-build,binutils-build}</p><p>GCC_INCLUDEDIR=`dirname $(gcc -print-libgcc-file-name)`/include &amp;&amp;<br />find ${GCC_INCLUDEDIR}/* -maxdepth 0 -xtype d -exec rm -rvf &#039;{}&#039; \; &amp;&amp;<br />rm -vf `grep -l &quot;DO NOT EDIT THIS FILE&quot; ${GCC_INCLUDEDIR}/*` &amp;&amp;<br />unset GCC_INCLUDEDIR</p><p>cd /home/sources/gcc-4.1.2</p><p>cp -v gcc/Makefile.in{,.orig}<br />sed &#039;s@\./fixinc\.sh@-c true@&#039; gcc/Makefile.in.orig &gt; gcc/Makefile.in</p><p>cp -v gcc/Makefile.in{,.tmp}<br />sed &#039;s/^XCFLAGS =$/&amp; -fomit-frame-pointer/&#039; gcc/Makefile.in.tmp \<br />&nbsp; &gt; gcc/Makefile.in</p><p>patch -Np1 -i&nbsp; /lfs-sources/gcc-4.1.2-specs-1.patch</p><p>mkdir -v ../gcc-build<br />cd ../gcc-build</p><p>../gcc-4.1.2/configure --prefix=/tools \<br />&nbsp; &nbsp; --with-local-prefix=/tools --enable-clocale=gnu \<br />&nbsp; &nbsp; --enable-shared --enable-threads=posix \<br />&nbsp; &nbsp; --enable-__cxa_atexit --enable-languages=c,c++ \<br />&nbsp; &nbsp; --disable-libstdcxx-pch</p><p>make &amp;&amp; make install</p><p>mkdir -v ../binutils-build<br />cd ../binutils-build</p><p>../binutils-2.17/configure --prefix=/tools \<br />&nbsp; &nbsp; --disable-nls --with-lib-path=/tools/lib</p><p>make &amp;&amp; make install<br />make -C ld clean<br />make -C ld LIB_PATH=/usr/lib:/lib<br />cp -v ld/ld-new /tools/bin</p><p>cd /home/sources/ncurses-5.6</p><p>./configure --prefix=/tools --with-shared \<br />&nbsp; &nbsp; --without-debug --without-ada --enable-overwrite</p><p>make &amp;&amp; make install</p><p>cd /home/sources/bash-3.2</p><p>patch -Np1 -i /lfs-sources/bash-3.2-fixes-5.patch <br />./configure --prefix=/tools --without-bash-malloc<br />make &amp;&amp; make install<br />ln -vs bash /tools/bin/sh</p><p>ВотЬ... консоль теперь есть:) Кстати рекомендую проверять офф. сайт проекна GNU на наличие новых патчей для bash&#039;а:D</p><p>cd /home/sources/bzip2-1.0.4</p><p>make &amp;&amp; make PREFIX=/tools install</p><p>cd /home/sources/coreutils-6.9 </p><p>./configure --prefix=/tools &amp;&amp; make &amp;&amp; make install &amp;&amp; cp -v src/su /tools/bin/su-tools</p><br /><p>__________________________________________________________<br />|&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |<br />|&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Так! Я есть пошёл:D Скоро приду;)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |<br />|_________________________________________________________|</p>]]></description>
			<author><![CDATA[dummy@example.com (wyldrodney)]]></author>
			<pubDate>Tue, 04 Dec 2007 04:59:01 +0000</pubDate>
			<guid>http://www.linux.kms.ru/post/1289/#p1289</guid>
		</item>
	</channel>
</rss>
