LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1358|回复: 2

终于成功安装了LFS-6.1.1!

[复制链接]
发表于 2006-1-27 01:25:50 | 显示全部楼层 |阅读模式
经过几天的奋战,终于成功启动了。宿主系统是Gentoo,用了"-O2 -march=athlon-xp -pipe"的优化参数(工具链那几个包除外)。Errata里的两个补丁也打上了:
http://www.linuxfromscratch.org/ ... lnerability-1.patch
http://www.linuxfromscratch.org/ ... c-3.4.3-pch-1.patch
遇到的问题不算多,多得公社那边Hauser兄的帮忙得以解决,感激不尽!

安装过程中,将大部分命令做了些整理,在这儿贴一下第5章的。第6章的比较乱就不贴了。
  1. cd $LFS/sources
  2. ######
  3. # 5.3. Binutils-2.15.94.0.2.2 - Pass 1
  4. ######
  5. tar xjvf binutils-2.15.94.0.2.2.tar.bz2
  6. cd binutils-2.15.94.0.2.2
  7. patch -Np1 -i ../binutils-2.15.94.0.2.2-gcc4-1.patch
  8. mkdir -v ../binutils-build
  9. cd ../binutils-build
  10. ../binutils-2.15.94.0.2.2/configure --prefix=/tools --disable-nls
  11. make && make install
  12. make -C ld clean
  13. make -C ld LIB_PATH=/tools/lib
  14. cd ..
  15. ######
  16. # 5.4. GCC-3.4.3 - Pass 1
  17. ######
  18. tar xjvf gcc-3.4.3.tar.bz2
  19. cd gcc-3.4.3
  20. patch -Np1 -i ../gcc-3.4.3-pch-1.patch #patch from Errata
  21. mkdir -v ../gcc-build
  22. cd ../gcc-build
  23. ../gcc-3.4.3/configure --prefix=/tools \
  24.     --libexecdir=/tools/lib --with-local-prefix=/tools \
  25.     --disable-nls --enable-shared --enable-languages=c
  26. make bootstrap
  27. make install
  28. ln -vs gcc /tools/bin/cc
  29. cd ..
  30. rm -rf gcc-build
  31. rm -rf gcc-3.4.3
  32. ######
  33. # 5.5. Linux-Libc-Headers-2.6.11.2
  34. ######
  35. tar xjvf linux-libc-headers-2.6.11.2.tar.bz2
  36. cd linux-libc-headers-2.6.11.2
  37. cp -Rv include/asm-i386 /tools/include/asm
  38. cp -Rv include/linux /tools/include
  39. cd ..
  40. rm -rf linux-libc-headers-2.6.11.2
  41. ######
  42. # 5.6. Glibc-2.3.4
  43. ######
  44. tar xjvf glibc-2.3.4.tar.bz2
  45. cd glibc-2.3.4
  46. patch -Np1 -i ../glibc-2.3.4-fix_test-1.patch
  47. mkdir -v ../glibc-build
  48. cd ../glibc-build
  49. ../glibc-2.3.4/configure --prefix=/tools \
  50.     --disable-profile --enable-add-ons \
  51.     --enable-kernel=2.6.0 --with-binutils=/tools/bin \
  52.     --without-gd --with-headers=/tools/include \
  53.     --without-selinux
  54. make
  55. mkdir -v /tools/etc
  56. touch /tools/etc/ld.so.conf
  57. make install
  58. mkdir -pv /tools/lib/locale
  59. localedef -i de_DE -f ISO-8859-1 de_DE
  60. localedef -i de_DE@euro -f ISO-8859-15 de_DE@euro
  61. localedef -i en_HK -f ISO-8859-1 en_HK
  62. localedef -i en_PH -f ISO-8859-1 en_PH
  63. localedef -i en_US -f ISO-8859-1 en_US
  64. localedef -i es_MX -f ISO-8859-1 es_MX
  65. localedef -i fa_IR -f UTF-8 fa_IR
  66. localedef -i fr_FR -f ISO-8859-1 fr_FR
  67. localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro
  68. localedef -i it_IT -f ISO-8859-1 it_IT
  69. localedef -i ja_JP -f EUC-JP ja_JP
  70. cd ..
  71. rm -rf glibc-build
  72. rm -rf glibc-2.3.4
  73. ######
  74. # 5.7. Adjusting the Toolchain
  75. ######
  76. cd binutils-build
  77. make -C ld install
  78. cd ..
  79. rm -rf binutils-build
  80. rm -rf binutils-2.15.94.0.2.2
  81. SPECFILE=`gcc --print-file specs` &&
  82. sed 's@ /lib/ld-linux.so.2@ /tools/lib/ld-linux.so.2@g' \
  83.     $SPECFILE > tempspecfile &&
  84. mv -f tempspecfile $SPECFILE &&
  85. unset SPECFILE
  86. rm -vf /tools/lib/gcc/*/*/include/{pthread.h,bits/sigthread.h}
  87. #echo 'main(){}' > dummy.c
  88. #cc dummy.c
  89. #readelf -l a.out | grep ': /tools'
  90. #rm -v dummy.c a.out
  91. #######
  92. # 5.8. Tcl-8.4.9
  93. #######
  94. tar xjvf tcl8.4.9-src.tar.bz2
  95. cd tcl8.4.9
  96. cd unix
  97. ./configure --prefix=/tools
  98. make && make install
  99. cd ..
  100. export TCLPATH=`pwd`
  101. ln -sv tclsh8.4 /tools/bin/tclsh
  102. cd ..
  103. #######
  104. # 5.9. Expect-5.43.0
  105. #######
  106. tar xjvf expect-5.43.0.tar.bz2
  107. cd expect-5.43
  108. patch -Np1 -i ../expect-5.43.0-spawn-1.patch
  109. ./configure --prefix=/tools --with-tcl=/tools/lib \
  110.    --with-tclinclude=$TCLPATH --with-x=no
  111. make && make SCRIPTS="" install
  112. unset TCLPATH
  113. cd ..
  114. rm -rf tcl8.4.9
  115. rm -rf expect-5.43
  116. ########
  117. # 5.10. DejaGNU-1.4.4
  118. ########
  119. tar xjvf dejagnu-1.4.4.tar.bz2
  120. cd dejagnu-1.4.4
  121. ./configure --prefix=/tools
  122. make install
  123. cd ..
  124. rm -rf dejagnu-1.4.4
  125. #########
  126. # 5.11. GCC-3.4.3 - Pass 2
  127. #########
  128. tar xjvf gcc-3.4.3.tar.bz2
  129. cd gcc-3.4.3
  130. #expect -c "spawn ls"
  131. patch -Np1 -i ../gcc-3.4.3-no_fixincludes-1.patch
  132. patch -Np1 -i ../gcc-3.4.3-specs-2.patch
  133. patch -Np1 -i ../gcc-3.4.3-pch-1.patch #patch from Errata
  134. mkdir -v ../gcc-build
  135. cd ../gcc-build
  136. ../gcc-3.4.3/configure --prefix=/tools \
  137.     --libexecdir=/tools/lib --with-local-prefix=/tools \
  138.     --enable-clocale=gnu --enable-shared \
  139.     --enable-threads=posix --enable-__cxa_atexit \
  140.     --enable-languages=c,c++ --disable-libstdcxx-pch
  141. make && make install
  142. #echo 'main(){}' > dummy.c
  143. #cc dummy.c
  144. #readelf -l a.out | grep ': /tools'
  145. #rm -v dummy.c a.out
  146. cd ..
  147. rm -rf gcc-build
  148. rm -rf gcc-3.4.3
  149. #########
  150. # 5.12. Binutils-2.15.94.0.2.2 - Pass 2
  151. #########
  152. tar xjvf binutils-2.15.94.0.2.2.tar.bz2
  153. cd binutils-2.15.94.0.2.2
  154. mkdir -v ../binutils-build
  155. cd ../binutils-build
  156. ../binutils-2.15.94.0.2.2/configure --prefix=/tools \
  157.     --disable-nls --enable-shared --with-lib-path=/tools/lib
  158. make && make install
  159. make -C ld clean
  160. make -C ld LIB_PATH=/usr/lib:/lib
  161. cd ..
  162. ########
  163. # 5.13. Gawk-3.1.4
  164. #######
  165. tar xjvf gawk-3.1.4.tar.bz2
  166. cd gawk-3.1.4
  167. ./configure --prefix=/tools
  168. make
  169. #make check
  170. make install
  171. cd ..
  172. rm -rf gawk-3.1.4
  173. ########
  174. # 5.14. Coreutils-5.2.1
  175. ########
  176. tar xjvf coreutils-5.2.1.tar.bz2
  177. cd coreutils-5.2.1
  178. DEFAULT_POSIX2_VERSION=199209 ./configure --prefix=/tools
  179. make
  180. #make RUN_EXPENSIVE_TESTS=yes check
  181. make install
  182. cd ..
  183. rm -rf coreutils-5.2.1
  184. ########
  185. # 5.15. Bzip2-1.0.3
  186. ########
  187. tar xjvf bzip2-1.0.3.tar.bz2
  188. cd bzip2-1.0.3
  189. make && make PREFIX=/tools install
  190. cd ..
  191. rm -rf bzip2-1.0.3
  192. #######
  193. # 5.16. Gzip-1.3.5
  194. ########
  195. tar xjvf gzip-1.3.5.tar.bz2
  196. cd gzip-1.3.5
  197. ./configure --prefix=/tools
  198. make && make install
  199. cd ..
  200. rm -rf gzip-1.3.5
  201. ########
  202. # 5.17. Diffutils-2.8.1
  203. ########
  204. tar xjvf diffutils-2.8.1.tar.bz2
  205. cd diffutils-2.8.1
  206. ./configure --prefix=/tools
  207. make && make install
  208. cd ..
  209. rm -rf diffutils-2.8.1
  210. ########
  211. # 5.18. Findutils-4.2.23
  212. ########
  213. tar xjvf findutils-4.2.23.tar.bz2
  214. cd findutils-4.2.23
  215. ./configure --prefix=/tools
  216. make
  217. #make check
  218. make install
  219. cd ..
  220. rm -rf findutils-4.2.23
  221. #########
  222. # 5.19. Make-3.80
  223. #########
  224. tar xjvf make-3.80.tar.bz2
  225. cd make-3.80
  226. ./configure --prefix=/tools
  227. make
  228. #make check
  229. make install
  230. cd ..
  231. rm -rf make-3.80
  232. #########
  233. # 5.20. Grep-2.5.1a
  234. #########
  235. tar xjvf grep-2.5.1a.tar.bz2
  236. cd grep-2.5.1a
  237. ./configure --prefix=/tools \
  238.     --disable-perl-regexp
  239. make
  240. #make check
  241. make install
  242. cd ..
  243. rm -rf grep-2.5.1a
  244. #########
  245. # 5.21. Sed-4.1.4
  246. #########
  247. tar xjvf sed-4.1.4.tar.bz2
  248. cd sed-4.1.4
  249. ./configure --prefix=/tools
  250. make
  251. #make check
  252. make install
  253. cd ..
  254. rm -rf sed-4.1.4
  255. #########
  256. # 5.22. Gettext-0.14.3
  257. #########
  258. tar xjvf gettext-0.14.3.tar.bz2
  259. cd gettext-0.14.3
  260. ./configure --prefix=/tools --disable-libasprintf \
  261.     --without-csharp
  262. make
  263. #make check
  264. make install
  265. cd ..
  266. rm -rf gettext-0.14.3
  267. ########
  268. # 5.23. Ncurses-5.4
  269. #########
  270. tar xjvf ncurses-5.4.tar.bz2
  271. cd ncurses-5.4
  272. ./configure --prefix=/tools --with-shared \
  273.     --without-debug --without-ada --enable-overwrite
  274. make && make install
  275. cd ..
  276. rm -rf ncurses-5.4
  277. #########
  278. # 5.24. Patch-2.5.4
  279. #########
  280. tar xjvf patch-2.5.4.tar.bz2
  281. cd patch-2.5.4
  282. CPPFLAGS=-D_GNU_SOURCE ./configure --prefix=/tools
  283. make && make install
  284. cd ..
  285. rm -rf patch-2.5.4
  286. #########
  287. # 5.25. Tar-1.15.1
  288. #########
  289. tar xjvf tar-1.15.1.tar.bz2
  290. cd tar-1.15.1
  291. ./configure --prefix=/tools
  292. make
  293. #make check
  294. make install
  295. cd ..
  296. rm -rf tar-1.15.1
  297. #########
  298. # 5.26. Texinfo-4.8
  299. #########
  300. tar xjvf texinfo-4.8.tar.bz2
  301. cd texinfo-4.8
  302. ./configure --prefix=/tools
  303. make
  304. #make check
  305. make install
  306. cd ..
  307. rm -rf texinfo-4.8
  308. ########
  309. # 5.27. Bash-3.0
  310. #######
  311. tar xjvf bash-3.0.tar.bz2
  312. cd bash-3.0
  313. patch -Np1 -i ../bash-3.0-avoid_WCONTINUED-1.patch
  314. ./configure --prefix=/tools --without-bash-malloc
  315. make
  316. #make tests
  317. make install
  318. ln -vs bash /tools/bin/sh
  319. cd ..
  320. rm -rf bash-3.0
  321. #########
  322. # 5.28. M4-1.4.3
  323. ########
  324. tar xjvf m4-1.4.3.tar.bz2
  325. cd m4-1.4.3
  326. ./configure --prefix=/tools
  327. make
  328. #make check
  329. make install
  330. cd ..
  331. rm -rf m4-1.4.3
  332. ########
  333. # 5.29. Bison-2.0
  334. #######
  335. tar xjvf bison-2.0.tar.bz2
  336. cd bison-2.0
  337. ./configure --prefix=/tools
  338. make
  339. #make check
  340. make install
  341. cd ..
  342. rm -rf bison-2.0
  343. #########
  344. # 5.30. Flex-2.5.31
  345. #########
  346. tar xjvf flex-2.5.31.tar.bz2
  347. cd flex-2.5.31
  348. patch -Np1 -i ../flex-2.5.31-debian_fixes-3.patch
  349. touch doc/flex.1
  350. ./configure --prefix=/tools
  351. make
  352. #make check
  353. make install
  354. cd ..
  355. rm -rf flex-2.5.31
  356. ##########
  357. # 5.31. Util-linux-2.12q
  358. ##########
  359. tar xjvf util-linux-2.12q.tar.bz2
  360. cd util-linux-2.12q
  361. sed -i 's@/usr/include@/tools/include@g' configure
  362. ./configure
  363. make -C lib
  364. make -C mount mount umount
  365. make -C text-utils more
  366. cp mount/{,u}mount text-utils/more /tools/bin
  367. cd ..
  368. rm -rf util-linux-2.12q
  369. #########
  370. # 5.32. Perl-5.8.7
  371. #########
  372. tar xjvf perl-5.8.7.tar.bz2
  373. cd perl-5.8.7
  374. patch -Np1 -i ../perl-5.8.7-libc-1.patch
  375. patch -Np1 -i ../perl-5.8.7-sprintf_vulnerability-1.patch #patch from Errata
  376. ./configure.gnu --prefix=/tools -Dstatic_ext='IO Fcntl POSIX'
  377. make perl utilities
  378. cp -v perl pod/pod2man /tools/bin
  379. mkdir -pv /tools/lib/perl5/5.8.7
  380. cp -Rv lib/* /tools/lib/perl5/5.8.7
  381. cd ..
  382. rm -rf perl-5.8.7
  383. #########
  384. # 5.33. Stripping
  385. ########
  386. strip --strip-debug /tools/lib/*
  387. strip --strip-unneeded /tools/{,s}bin/*
  388. rm -rf /tools/{info,man}
  389. echo "
  390. You have just finished Chapter 5!"
复制代码
发表于 2006-1-27 07:19:15 | 显示全部楼层
恭喜。:)。
回复 支持 反对

使用道具 举报

发表于 2006-1-28 14:30:22 | 显示全部楼层
小弟有个问题想请教一下,我在安装LFS6.1.1的时候,宿主系统是SUSE10。在第5章安装Binutils-2.15.94.0.2.2的时候,也是先打了补丁,然后再编译、安装,为什么编译还有错误呢?make的最后一行输出是make:***[all-binutils]Error 2.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表