LinuxSir.cn,穿越时空的Linuxsir!

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

[中止]直播,LFS 6.4 rc1

[复制链接]
发表于 2008-11-15 18:40:49 | 显示全部楼层 |阅读模式
采用 lfs-6.3-r2160 的ISO作host,把 6.4-r1的包,Patch全下载回来,整过去,然后开始.
参照handbook一步步来.
1.cfdisk
我分了两个区,/dev/hda1 -ext3 /dev/hda2 -swap
然后
  1. mke2fs -jv /dev/hda1
  2. mkswap /dev/hda2
  3. swapon /dev/hda2
复制代码


接下来加载分区,创建用户环境

  1. export LFS=/mnt/lfs
  2. mkdir -pv $LFS
  3. mount -v -t ext3 /dev/hda1 $LFS
  4. mkdir -v $LFS/sources
  5. chmod -v a+wt $LFS/sources
  6. mkdir -v $LFS/tools
  7. export LFS=/mnt/lfs
  8. ln -sv $LFS/tools /
  9. groupadd lfs
  10. useradd -s /bin/bash -g lfs -m -k /dev/null lfs
  11. chown -v lfs $LFS/tools
  12. chown -v lfs $LFS/sources
复制代码

然后切换到lfs用户去工作,因为没设lfs的密码,所以这里就不用密码了.

  1. su - lfs
复制代码


设定用户环境.

  1. cat > ~/.bash_profile << "EOF"
  2. exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash
  3. EOF
  4. cat > ~/.bashrc << "EOF"
  5. set +h
  6. umask 022
  7. LFS=/mnt/lfs
  8. LC_ALL=POSIX
  9. PATH=/tools/bin:/bin:/usr/bin
  10. export LFS LC_ALL PATH
  11. EOF
  12. source ~/.bash_profile
复制代码

接下来开始制作临时系统.
发表于 2008-11-15 18:42:23 | 显示全部楼层
加油吧 :)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-15 19:45:46 | 显示全部楼层

5.4. Binutils-2.18 - Pass 1

切换自己的工作文件夹到 $LFS/sources 下来.
然后找到并解开 binutils-2.18.tar.bz2 到 $LFS/sources 下面.

  1. tar xvf /mnt/cd/lfs-sources/binutils-2.18.tar.bz2
复制代码

然后进入 binutils-2.18 中,打补丁.

  1. cd binutils-2.18
  2. patch -Np1 -i /mnt/cd/lfs-sources/binutils-2.18-configure-1.patch
复制代码

/mnt/cd/lfs-sources/是我的包的位置.

注意是Np壹,不是NpL,是数字1
然后再建一个binutils-build,用一个单独的文件夹进行编译

  1. mkdir -v ../binutils-build
  2. cd ../binutils-build
  3. CC="gcc -B/usr/bin/" ../binutils-2.18/configure   \
  4.   --prefix=/tools --disable-nls --disable-werror
  5. make
  6. make install
  7. make -C ld clean
  8. make -C ld LIB_PATH=/tools/lib
  9. cp -v ld/ld-new /tools/bin
复制代码

最后照例是删除掉不需要的东西.

  1. cd ..
  2. rm -rf binutils-build
  3. rm -rf binutils-2.18
复制代码

完成.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-15 19:53:40 | 显示全部楼层

5.5. GCC-4.3.2 - Pass 1

这里,照6.4 的handbook,要做一些以前没做过的,上代码

  1. tar xvf  /mnt/cd/lfs-sources/gcc-4.3.2.tar.bz2
  2. cd gcc-4.3.2

  3. tar -jxf /mnt/cd/lfs-sources/mpfr-2.3.2.tar.bz2
  4. mv mpfr-2.3.2 mpfr
  5. tar -jxf /mnt/cd/lfs-sources/gmp-4.2.4.tar.bz2
  6. mv gmp-4.2.4 gmp

复制代码

同样,再来一个 gcc-build 用于编译文件夹.

  1. mkdir -v ../gcc-build
  2. cd ../gcc-build
复制代码


然后是配置.

  1. CC="gcc -B/usr/bin/" ../gcc-4.3.2/configure --prefix=/tools \
  2.     --with-local-prefix=/tools --disable-nls --disable-shared --disable-libssp \
  3.     --enable-languages=c
复制代码

注意一点,如果前面那两个 mpfr ,  gmp  没有到正确的位置,会提示找不到这两份内容而生不成了Makefile,最终导致接下来的make 提示没有 target

接下来进行编译

  1. make
  2. make install
复制代码


接下来连接

  1. ln -vs libgcc.a `gcc -print-libgcc-file-name | \
  2.     sed 's/libgcc/&_eh/'`
  3. ln -vs gcc /tools/bin/cc
复制代码


我就犯过一次错误,mpfr,gmp路径不对,导致没有 Makefile ,

这里讲一个 BSD里的笑话.
在BSD 执行一个命令,make love
会报.
Make : Do not know how to make love
报的结果不记得清楚,但这确实是一个大家调侃的话题.

最后,照例把 gcc-build 和gcc-4.3.2文件夹删掉
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-15 22:18:50 | 显示全部楼层
cpu 100%了,到现在还没有编译完 gcc ,宣告中止.
回复 支持 反对

使用道具 举报

发表于 2008-11-15 23:15:55 | 显示全部楼层
6.4和6.3差别大不?
回复 支持 反对

使用道具 举报

发表于 2008-11-16 07:51:40 | 显示全部楼层
Post by qufo;1909104
cpu 100%了,到现在还没有编译完 gcc ,宣告中止.
是临时终止直播,还是终止制作?

不是打算半途而废吧?
回复 支持 反对

使用道具 举报

发表于 2008-11-16 07:55:08 | 显示全部楼层
Post by 情灭缘尽;1909157
6.4和6.3差别大不?
看从哪个角度来看,方法差别不大,主要是 Toolchain 的 gcc 升为 4.3.2 後加入了相关依赖,其余的主要是软件升版了
回复 支持 反对

使用道具 举报

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

本版积分规则

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