phaedo 发表于 2006-1-27 01:15:11

第一次成功安装LFS-6.1.1!

经过几天的奋战,终于成功启动了。宿主系统是Gentoo,用了"-O2 -march=athlon-xp -pipe"的优化参数(工具链那几个包除外)。Errata里的两个补丁也打上了:
http://www.linuxfromscratch.org/patches/downloads/perl/perl-5.8.7-sprintf_vulnerability-1.patch
http://www.linuxfromscratch.org/patches/downloads/gcc/gcc-3.4.3-pch-1.patch
遇到的问题不算多,多得Hauser兄的帮忙得以解决,在此表示感谢!

安装过程中,将大部分命令做了些整理,在这儿贴一下第5章的。第6章的比较乱就不贴了。
cd $LFS/sources
######
# 5.3. Binutils-2.15.94.0.2.2 - Pass 1
######
tar xjvf binutils-2.15.94.0.2.2.tar.bz2
cd binutils-2.15.94.0.2.2
patch -Np1 -i ../binutils-2.15.94.0.2.2-gcc4-1.patch
mkdir -v ../binutils-build
cd ../binutils-build
../binutils-2.15.94.0.2.2/configure --prefix=/tools --disable-nls
make && make install
make -C ld clean
make -C ld LIB_PATH=/tools/lib
cd ..
######
# 5.4. GCC-3.4.3 - Pass 1
######
tar xjvf gcc-3.4.3.tar.bz2
cd gcc-3.4.3
patch -Np1 -i ../gcc-3.4.3-pch-1.patch #patch from Errata
mkdir -v ../gcc-build
cd ../gcc-build
../gcc-3.4.3/configure --prefix=/tools \
    --libexecdir=/tools/lib --with-local-prefix=/tools \
    --disable-nls --enable-shared --enable-languages=c
make bootstrap
make install
ln -vs gcc /tools/bin/cc
cd ..
rm -rf gcc-build
rm -rf gcc-3.4.3
######
# 5.5. Linux-Libc-Headers-2.6.11.2
######
tar xjvf linux-libc-headers-2.6.11.2.tar.bz2
cd linux-libc-headers-2.6.11.2
cp -Rv include/asm-i386 /tools/include/asm
cp -Rv include/linux /tools/include
cd ..
rm -rf linux-libc-headers-2.6.11.2
######
# 5.6. Glibc-2.3.4
######
tar xjvf glibc-2.3.4.tar.bz2
cd glibc-2.3.4
patch -Np1 -i ../glibc-2.3.4-fix_test-1.patch
mkdir -v ../glibc-build
cd ../glibc-build
../glibc-2.3.4/configure --prefix=/tools \
    --disable-profile --enable-add-ons \
    --enable-kernel=2.6.0 --with-binutils=/tools/bin \
    --without-gd --with-headers=/tools/include \
    --without-selinux
make
mkdir -v /tools/etc
touch /tools/etc/ld.so.conf
make install
mkdir -pv /tools/lib/locale
localedef -i de_DE -f ISO-8859-1 de_DE
localedef -i de_DE@euro -f ISO-8859-15 de_DE@euro
localedef -i en_HK -f ISO-8859-1 en_HK
localedef -i en_PH -f ISO-8859-1 en_PH
localedef -i en_US -f ISO-8859-1 en_US
localedef -i es_MX -f ISO-8859-1 es_MX
localedef -i fa_IR -f UTF-8 fa_IR
localedef -i fr_FR -f ISO-8859-1 fr_FR
localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro
localedef -i it_IT -f ISO-8859-1 it_IT
localedef -i ja_JP -f EUC-JP ja_JP
cd ..
rm -rf glibc-build
rm -rf glibc-2.3.4
######
# 5.7. Adjusting the Toolchain
######
cd binutils-build
make -C ld install
cd ..
rm -rf binutils-build
rm -rf binutils-2.15.94.0.2.2
SPECFILE=`gcc --print-file specs` &&
sed 's@ /lib/ld-linux.so.2@ /tools/lib/ld-linux.so.2@g' \
    $SPECFILE > tempspecfile &&
mv -f tempspecfile $SPECFILE &&
unset SPECFILE
rm -vf /tools/lib/gcc/*/*/include/{pthread.h,bits/sigthread.h}
#echo 'main(){}' > dummy.c
#cc dummy.c
#readelf -l a.out | grep ': /tools'
#rm -v dummy.c a.out
#######
# 5.8. Tcl-8.4.9
#######
tar xjvf tcl8.4.9-src.tar.bz2
cd tcl8.4.9
cd unix
./configure --prefix=/tools
make && make install
cd ..
export TCLPATH=`pwd`
ln -sv tclsh8.4 /tools/bin/tclsh
cd ..
#######
# 5.9. Expect-5.43.0
#######
tar xjvf expect-5.43.0.tar.bz2
cd expect-5.43
patch -Np1 -i ../expect-5.43.0-spawn-1.patch
./configure --prefix=/tools --with-tcl=/tools/lib \
   --with-tclinclude=$TCLPATH --with-x=no
make && make SCRIPTS="" install
unset TCLPATH
cd ..
rm -rf tcl8.4.9
rm -rf expect-5.43
########
# 5.10. DejaGNU-1.4.4
########
tar xjvf dejagnu-1.4.4.tar.bz2
cd dejagnu-1.4.4
./configure --prefix=/tools
make install
cd ..
rm -rf dejagnu-1.4.4
#########
# 5.11. GCC-3.4.3 - Pass 2
#########
tar xjvf gcc-3.4.3.tar.bz2
cd gcc-3.4.3
#expect -c "spawn ls"
patch -Np1 -i ../gcc-3.4.3-no_fixincludes-1.patch
patch -Np1 -i ../gcc-3.4.3-specs-2.patch
patch -Np1 -i ../gcc-3.4.3-pch-1.patch #patch from Errata
mkdir -v ../gcc-build
cd ../gcc-build
../gcc-3.4.3/configure --prefix=/tools \
    --libexecdir=/tools/lib --with-local-prefix=/tools \
    --enable-clocale=gnu --enable-shared \
    --enable-threads=posix --enable-__cxa_atexit \
    --enable-languages=c,c++ --disable-libstdcxx-pch
make && make install
#echo 'main(){}' > dummy.c
#cc dummy.c
#readelf -l a.out | grep ': /tools'
#rm -v dummy.c a.out
cd ..
rm -rf gcc-build
rm -rf gcc-3.4.3
#########
# 5.12. Binutils-2.15.94.0.2.2 - Pass 2
#########
tar xjvf binutils-2.15.94.0.2.2.tar.bz2
cd binutils-2.15.94.0.2.2
mkdir -v ../binutils-build
cd ../binutils-build
../binutils-2.15.94.0.2.2/configure --prefix=/tools \
    --disable-nls --enable-shared --with-lib-path=/tools/lib
make && make install
make -C ld clean
make -C ld LIB_PATH=/usr/lib:/lib
cd ..
########
# 5.13. Gawk-3.1.4
#######
tar xjvf gawk-3.1.4.tar.bz2
cd gawk-3.1.4
./configure --prefix=/tools
make
#make check
make install
cd ..
rm -rf gawk-3.1.4
########
# 5.14. Coreutils-5.2.1
########
tar xjvf coreutils-5.2.1.tar.bz2
cd coreutils-5.2.1
DEFAULT_POSIX2_VERSION=199209 ./configure --prefix=/tools
make
#make RUN_EXPENSIVE_TESTS=yes check
make install
cd ..
rm -rf coreutils-5.2.1
########
# 5.15. Bzip2-1.0.3
########
tar xjvf bzip2-1.0.3.tar.bz2
cd bzip2-1.0.3
make && make PREFIX=/tools install
cd ..
rm -rf bzip2-1.0.3
#######
# 5.16. Gzip-1.3.5
########
tar xjvf gzip-1.3.5.tar.bz2
cd gzip-1.3.5
./configure --prefix=/tools
make && make install
cd ..
rm -rf gzip-1.3.5
########
# 5.17. Diffutils-2.8.1
########
tar xjvf diffutils-2.8.1.tar.bz2
cd diffutils-2.8.1
./configure --prefix=/tools
make && make install
cd ..
rm -rf diffutils-2.8.1
########
# 5.18. Findutils-4.2.23
########
tar xjvf findutils-4.2.23.tar.bz2
cd findutils-4.2.23
./configure --prefix=/tools
make
#make check
make install
cd ..
rm -rf findutils-4.2.23
#########
# 5.19. Make-3.80
#########
tar xjvf make-3.80.tar.bz2
cd make-3.80
./configure --prefix=/tools
make
#make check
make install
cd ..
rm -rf make-3.80
#########
# 5.20. Grep-2.5.1a
#########
tar xjvf grep-2.5.1a.tar.bz2
cd grep-2.5.1a
./configure --prefix=/tools \
    --disable-perl-regexp
make
#make check
make install
cd ..
rm -rf grep-2.5.1a
#########
# 5.21. Sed-4.1.4
#########
tar xjvf sed-4.1.4.tar.bz2
cd sed-4.1.4
./configure --prefix=/tools
make
#make check
make install
cd ..
rm -rf sed-4.1.4
#########
# 5.22. Gettext-0.14.3
#########
tar xjvf gettext-0.14.3.tar.bz2
cd gettext-0.14.3
./configure --prefix=/tools --disable-libasprintf \
    --without-csharp
make
#make check
make install
cd ..
rm -rf gettext-0.14.3
########
# 5.23. Ncurses-5.4
#########
tar xjvf ncurses-5.4.tar.bz2
cd ncurses-5.4
./configure --prefix=/tools --with-shared \
    --without-debug --without-ada --enable-overwrite
make && make install
cd ..
rm -rf ncurses-5.4
#########
# 5.24. Patch-2.5.4
#########
tar xjvf patch-2.5.4.tar.bz2
cd patch-2.5.4
CPPFLAGS=-D_GNU_SOURCE ./configure --prefix=/tools
make && make install
cd ..
rm -rf patch-2.5.4
#########
# 5.25. Tar-1.15.1
#########
tar xjvf tar-1.15.1.tar.bz2
cd tar-1.15.1
./configure --prefix=/tools
make
#make check
make install
cd ..
rm -rf tar-1.15.1
#########
# 5.26. Texinfo-4.8
#########
tar xjvf texinfo-4.8.tar.bz2
cd texinfo-4.8
./configure --prefix=/tools
make
#make check
make install
cd ..
rm -rf texinfo-4.8
########
# 5.27. Bash-3.0
#######
tar xjvf bash-3.0.tar.bz2
cd bash-3.0
patch -Np1 -i ../bash-3.0-avoid_WCONTINUED-1.patch
./configure --prefix=/tools --without-bash-malloc
make
#make tests
make install
ln -vs bash /tools/bin/sh
cd ..
rm -rf bash-3.0
#########
# 5.28. M4-1.4.3
########
tar xjvf m4-1.4.3.tar.bz2
cd m4-1.4.3
./configure --prefix=/tools
make
#make check
make install
cd ..
rm -rf m4-1.4.3
########
# 5.29. Bison-2.0
#######
tar xjvf bison-2.0.tar.bz2
cd bison-2.0
./configure --prefix=/tools
make
#make check
make install
cd ..
rm -rf bison-2.0
#########
# 5.30. Flex-2.5.31
#########
tar xjvf flex-2.5.31.tar.bz2
cd flex-2.5.31
patch -Np1 -i ../flex-2.5.31-debian_fixes-3.patch
touch doc/flex.1
./configure --prefix=/tools
make
#make check
make install
cd ..
rm -rf flex-2.5.31
##########
# 5.31. Util-linux-2.12q
##########
tar xjvf util-linux-2.12q.tar.bz2
cd util-linux-2.12q
sed -i 's@/usr/include@/tools/include@g' configure
./configure
make -C lib
make -C mount mount umount
make -C text-utils more
cp mount/{,u}mount text-utils/more /tools/bin
cd ..
rm -rf util-linux-2.12q
#########
# 5.32. Perl-5.8.7
#########
tar xjvf perl-5.8.7.tar.bz2
cd perl-5.8.7
patch -Np1 -i ../perl-5.8.7-libc-1.patch
patch -Np1 -i ../perl-5.8.7-sprintf_vulnerability-1.patch #patch from Errata
./configure.gnu --prefix=/tools -Dstatic_ext='IO Fcntl POSIX'
make perl utilities
cp -v perl pod/pod2man /tools/bin
mkdir -pv /tools/lib/perl5/5.8.7
cp -Rv lib/* /tools/lib/perl5/5.8.7
cd ..
rm -rf perl-5.8.7
#########
# 5.33. Stripping
########
strip --strip-debug /tools/lib/*
strip --strip-unneeded /tools/{,s}bin/*
rm -rf /tools/{info,man}
echo "
You have just finished Chapter 5!"

linky_fan 发表于 2006-1-27 10:22:47

恭喜一下先, 预祝blfs成功 :wink:

另: gentoo的gcc默认是打过ssp补丁的, 在lfs里的glibc或gcc的test过程中会出现一些预料之外的error的,不知道楼主兄弟碰到了没有?

phaedo 发表于 2006-1-27 13:07:42

另: gentoo的gcc默认是打过ssp补丁的, 在lfs里的glibc或gcc的test过程中会出现一些预料之外的error的,不知道楼主兄弟碰到了没有?
是看到有点error,不过编译其他包没什么问题,装完了也好象运行蛮好,一切都ok啊。

linky_fan 发表于 2006-1-27 17:51:25


linky_fan 写到:
另: gentoo的gcc默认是打过ssp补丁的, 在lfs里的glibc或gcc的test过程中会出现一些预料之外的error的,不知道楼主兄弟碰到了没有?

是看到有点error,不过编译其他包没什么问题,装完了也好象运行蛮好,一切都ok啊。
_________________

运气不错啊 :P

积木 发表于 2006-2-1 13:28:57

:? 很长时间不blfs了,尤其是手动安装gnome的时候,太痛苦了,太痛苦了。

发表于 2006-2-1 18:15:52

:? 很长时间不blfs了,尤其是手动安装gnome的时候

8O8O

linky_fan 发表于 2006-2-3 19:15:11


很长时间不blfs了,尤其是手动安装gnome的时候,太痛苦了,太痛苦了。
_________________

所以俺gentoo blfs都没make这个东西, 用的fvwm:mrgreen:

muraji 发表于 2006-2-3 23:22:53

... 用的fvwm:mrgreen:
另一个令人痛苦的东西。

linky_fan 发表于 2006-2-6 18:51:20

另一个令人痛苦的东西
呵呵, 我觉得比起kde或gnome巨长得make time来说还是可以接受的。。。。。。。。。。 :wink:

Mikeandmore 发表于 2006-2-6 19:16:21

:? 很长时间不blfs了,尤其是手动安装gnome的时候,太痛苦了,太痛苦了。
还没让你build openoffice呢

linky_fan 发表于 2006-2-6 19:25:22


积木 写到:
很长时间不blfs了,尤其是手动安装gnome的时候,太痛苦了,太痛苦了。

还没让你build openoffice呢

openoffice

Oh,my god :lol:
页: [1]
查看完整版本: 第一次成功安装LFS-6.1.1!