LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: youbest

[原创]第二版 手把手教你如何建立自己的Linux系统(LFS速成手册)

[复制链接]
发表于 2008-10-31 12:37:13 | 显示全部楼层
root:# tar
bash: /tools/bin/tar: No such file or directory
root:/opt/tar/bin# ls -l bash: /tools/bin/tar
ls: cannot access bash:: No such file or directory
-rwxr-xr-x 1 root root 776289 Oct 31 04:13 /tools/bin/tar
进入目标系统后出现这种问题,貌似tar没装好。
只有进入liveCD的主系统,将tar的安装包解压缩,然后编译安装。

root:/bin# cd /opt/tar/bin/   
root:/opt/tar/bin# ln -v tar /bin
`/bin/tar' => `tar'
root:/opt/tar/bin# tar
tar: You must specify one of the `-Acdtrux' options
Try `tar --help' or `tar --usage' for more information.
root:/opt/tar/bin#
现在tar是能用了,但是这一步画蛇添足背离了楼主的教程,我是很笨的新手,很害怕会不会出问题?
回复 支持 反对

使用道具 举报

发表于 2008-10-31 16:31:54 | 显示全部楼层
Post by 可爱的卧底;1901868
root:# tar
bash: /tools/bin/tar: No such file or directory
root:/opt/tar/bin# ls -l bash: /tools/bin/tar
ls: cannot access bash:: No such file or directory
-rwxr-xr-x 1 root root 776289 Oct 31 04:13 /tools/bin/tar
进入目标系统后出现这种问题,貌似tar没装好。
只有进入liveCD的主系统,将tar的安装包解压缩,然后编译安装。

root:/bin# cd /opt/tar/bin/   
root:/opt/tar/bin# ln -v tar /bin
`/bin/tar' => `tar'
root:/opt/tar/bin# tar
tar: You must specify one of the `-Acdtrux' options
Try `tar --help' or `tar --usage' for more information.
root:/opt/tar/bin#
现在tar是能用了,但是这一步画蛇添足背离了楼主的教程,我是很笨的新手,很害怕会不会出问题?

----------
你应该是在前面漏掉了tar的编译和安装
回复 支持 反对

使用道具 举报

发表于 2008-10-31 17:01:37 | 显示全部楼层
拜读楼主大作,结合手册,对新手确实帮助很大。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-31 17:30:39 | 显示全部楼层
Post by 可爱的卧底;1901868
root:# tar
bash: /tools/bin/tar: No such file or directory
root:/opt/tar/bin# ls -l bash: /tools/bin/tar
ls: cannot access bash:: No such file or directory
-rwxr-xr-x 1 root root 776289 Oct 31 04:13 /tools/bin/tar
进入目标系统后出现这种问题,貌似tar没装好。
只有进入liveCD的主系统,将tar的安装包解压缩,然后编译安装。

root:/bin# cd /opt/tar/bin/
root:/opt/tar/bin# ln -v tar /bin
`/bin/tar' => `tar'
root:/opt/tar/bin# tar
tar: You must specify one of the `-Acdtrux' options
Try `tar --help' or `tar --usage' for more information.
root:/opt/tar/bin#
现在tar是能用了,但是这一步画蛇添足背离了楼主的教程,我是很笨的新手,很害怕会不会出问题?

重新进行tar编译的步骤试试。
回复 支持 反对

使用道具 举报

发表于 2008-11-1 01:52:17 | 显示全部楼层
正在作最后的内核编译,忐忑不安,担心出错
基本上按手册做得,只有最后的设置按(7章之后)自己的实际情况做得
内核多编译了一些模块,只要是文件系统xfs,jfs等,看到对ntfs支持,加上了
回复 支持 反对

使用道具 举报

发表于 2008-11-1 02:04:45 | 显示全部楼层
谢谢两位老兄关注我的问题。
我在主系统里已经装过了tar:
tar xvf /lfs-sources/tar-1.18.tar.bz2
cd tar-1.18
./configure --prefix=/tools
make
make install
cd ..
rm -rf tar-1.18
--------------------------------
后来我的做法是用主系统里的tar把TAR的安装包解压成文件夹,因为在$LFS下,进入目标系统以后也可以打开该文件夹,然后在目标系统里对tar进行安装,万幸make已经成功装上了,tar的编译安装也没出错误。
我希望几位高手能给我的这点出轨行为一个肯定的答复或者一个严重的警告!否则现在用着心里不安啊!


同时自嘲一下:
飞豹老哥,看了您的帖子我只能说知道自己基础太差了!里面80%的命令我都认识,但您命令加的那些参数和命令的复合应用我根本见都没见过,还有编译软件时候的各种configure和make后面神鬼莫测的参数,能把我看傻了!
以前觉得好歹在服务器上装过apache、tomcat、oracle什么的挺牛逼,也能算个技术人员了,今天看过您的帖子,才知道什么叫井底之蛙,什么是“贻笑大方”
回复 支持 反对

使用道具 举报

发表于 2008-11-1 03:16:19 | 显示全部楼层
可以启动了,应该说这个lfs6.3算装完了
启动后的问题还是有的:
1、出现一个错误:
/etc/rc.d/rcsysinit.d/S30checkfs:line 69:fsck command not found
2、一个警告
eth0不存在
-----------
应该好解决了,ech0是网卡问题,估计没合适的驱动
那个错误,看看S30checkfs再说了。没装fsck?看看在哪个包里了

------------
整个过程,有几点想说说:
1、关于重新开机回到工作状态的问题。我关机了三次,都没有按照精华贴做,也可以。第5章以前,export $LFS;mount ext3 /dev/hda* $LFS;su - lfs,这三条就可以了。第6章后,除了export $LFS和mount ext3 /dev/hda* $LFS外,还需要mount虚拟文件系统,那些一关机就没有了的。
我在想,为什么第5章就要使用livecd来恢复工作状态。
2、关于gcc测试(6.12),太多的error了,随便看了一段过程,就有127个错误。还好可以继续。
3、6.2和6.3在第6章,有两个包的安装顺序不同,其中一个是Coreutils-5.96,这些包的安装顺序是否不重要?前后应该有依赖关系吧。
4、Coreutils-5.96和bash测试,需要su-tools命令,运行时系统说没有,我就没做这一步了。
5、补丁不能乱打。做gcc编译时,因为错误太多,就先打了补丁gcc-4.1.2-specs-1.patch,然后继续,make -k check根本就过不去,就不敢往下走了。后来取消这个补丁,可以继续了。
6、还有一点,测试很花时间,出了gcc,glibc,Binutils,Linux-2.6.22.5 API Headers,其他的没时间就省了。有几个包,测试的时间是编译时间的好几倍。受不了。
回复 支持 反对

使用道具 举报

发表于 2008-11-2 08:55:46 | 显示全部楼层
支持这些喜欢LFS的人 。。。。。。
回复 支持 反对

使用道具 举报

发表于 2008-11-4 10:23:23 | 显示全部楼层
谢谢LZ 达人!
回复 支持 反对

使用道具 举报

发表于 2008-11-6 21:14:16 | 显示全部楼层
原文讲到:----------------------------------------------------------------------
测试工具链是否被调整成功
echo 'main(){}' > dummy.c
cc dummy.c -v -Wl,--verbose &> dummy.log
readelf -l a.out | grep '/lib'
如果显示[Requesting program interpreter: /lib/ld-linux.so.2]表示调整成功,动态库已经连接到了目标系统的/lib下。
grep -o '/usr/lib.*/crt[1in].*succeeded' dummy.log
应该显示
  /usr/lib/crt1.o succeeded
  /usr/lib/crti.o succeeded
  /usr/lib/crtn.o succeeded
grep -B1 '^ /usr/include' dummy.log
应该显示
  #include <...> search starts here:
   /usr/include
grep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\n|g'
应该显示
  SEARCH_DIR("/tools/i686-pc-linux-gnu/lib")
  SEARCH_DIR("/usr/lib")
  SEARCH_DIR("/lib");
grep "/lib/libc.so.6 " dummy.log
应该显示
  attempt to open /lib/libc.so.6 succeeded
grep found dummy.log
应该显示
  found ld-linux.so.2 at /lib/ld-linux.so.2
如果上面均显示正常,那么表明工具链调整成功,可以删除测试文件了
rm -v dummy.c a.out dummy.log

-------------------------------------------------------------------------------------
连续做了两次,都是做到这里出错,刚开始测试readelf -l a.out | grep '/lib'
时就显示没有a.out文件。
回复 支持 反对

使用道具 举报

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

本版积分规则

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