LinuxSir.cn,穿越时空的Linuxsir!

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

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

[复制链接]
发表于 2009-2-19 15:00:30 | 显示全部楼层
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是能用了,但是这一步画蛇添足背离了楼主的教程,我是很笨的新手,很害怕会不会出问题?



我也有这样的问题,我在执行第六章的第一个linux编译的时候提示make命令找不到,但是到/tools/bin下去真的找不到make这个命令,后来又退回到root下重新编译安装make程序,安装好进来以后发现/tools/bin下有make了,但提示No such file or directory,后来才发现/tools/bin目录挂载有问题,这个tools并非/mnt/lfs/tools,没办法,重新退回到第五章,加载分区,建立工具链连接,建立lfs用户,切换到lfs用户,重新编译安装make,make install的时候发现之前其实make程序根本就没安装成功,提示info目录下没有办法写入,当时没注意,所以也没发现,将lfs/tools/info下目录权限改对以后重新编译安装make程序,然后退出lfs用户,再执行第六步操作即可!
回复 支持 反对

使用道具 举报

发表于 2009-2-19 15:09:00 | 显示全部楼层
to:smallfish01
把我这问题也回了啊.

我发现调整工具连这里很容易出错。不只是什么原因。
GCC_INCLUDEDIR=`dirname $(gcc -print-libgcc-file-name)`/include &&
find ${GCC_INCLUDEDIR}/* -maxdepth 0 -xtype d -exec rm -rvf '{}' \; &&
rm -vf `grep -l "DO NOT EDIT THIS FILE" ${GCC_INCLUDEDIR}/*` &&
unset GCC_INCLUDEDIR
上面这句,一执行,我的/tools/下就被清空了.

echo 'main(){}' > dummy.c
cc dummy.c
readelf -l a.out | grep 'tools'
没任何打印

echo 'main(){}' > dummy.c
cc dummy.c
readelf -l a.out | grep 'ld-linux'
倒是打印了
[Requesting program interpreter: /lib/ld-linux.so.2]
回复 支持 反对

使用道具 举报

发表于 2009-2-19 17:38:28 | 显示全部楼层
我在执行第六章,安装Glibc-2.5.1的时候,在运行../glibc-2.5.1/configure --prefix=/usr \
--disable-profile --enable-add-ons \
--enable-kernel=2.6.0 --libexecdir=/usr/lib/glibc
后提示:
These critical programs are missing or too old: ld
Check the INSTALL file for required versions.

难道是说我ld版本太老?好像也没装过ld啊,不知道该怎么解决?
回复 支持 反对

使用道具 举报

发表于 2009-2-24 14:41:18 | 显示全部楼层
Post by smallfish01;1949722
我在执行第六章,安装Glibc-2.5.1的时候,在运行../glibc-2.5.1/configure --prefix=/usr \
--disable-profile --enable-add-ons \
--enable-kernel=2.6.0 --libexecdir=/usr/lib/glibc
后提示:
These critical programs are missing or too old: ld
Check the INSTALL file for required versions.

难道是说我ld版本太老?好像也没装过ld啊,不知道该怎么解决?


无奈从第二章重新编译总算可以了。
应该是我之前在编译的时候输入有误导致的,看来,要千万小心仔细啊!
回复 支持 反对

使用道具 举报

发表于 2009-3-5 10:25:23 | 显示全部楼层

求教下

在做linux-2.6.22.5的时候当输入make headers_check后出现了
CHK         include/linux/version.h
UPD         include/linux/version.h
HOSTCC  scripts/basic/fixdep
/lib/libc.so.6: file not recognized:File format not recognized
collect2: ld returned 1 exit status
make[1]: *** [scripts/basic/fixdep] Error 1
make: *** [scripts_basic] Error 2
这是怎么回事 求教了
回复 支持 反对

使用道具 举报

发表于 2009-3-5 17:07:27 | 显示全部楼层

请楼主看看不知提的问题对不对

>从现在开始一直到第六章的Stripping Again之前,这个阶段如果你关机或重新启>动,那么重新开机后回到工作状态的步骤是:
>  1.重新启动计算机,并从LiveCD启动
>  2.加载分区
>  export LFS=/mnt/lfs
>  mkdir -pv $LFS
>  mount /dev/hda2 $LFS
>  3.加载交换分区(如果不想用交换分区或者没有交换分区可跳过此步骤)
>  swapon /dev/hda1
>  4.加载必要的文件系统
>  mount -v --bind /dev $LFS/dev
>  mount -vt devpts devpts $LFS/dev/pts
>  mount -vt tmpfs shm $LFS/dev/shm
>  mount -vt proc proc $LFS/proc
>  mount -vt sysfs sysfs $LFS/sys
>  5.Chroot到目标系统下
>  chroot "$LFS" /tools/bin/env -i \
>  HOME=/root TERM="$TERM" PS1='\u:\w\$ ' \
>   PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \
>  /bin/bash --login +h      

请问上一行的 "/bin/bash --login +h" 是不是应该为”/tools/bin/bash --login +h“ ,此时目标系统LFS根目录下只是建立了bin等目录,但还没有开始编译任何程序,bin目录下应为空的,下面才开始目标系统的编译步骤

>  6.进入编译目录
>  cd /sources
>  export LFS=/sources
>
>
>Linux-2.6.22.5
>代码:
>tar xvf $LFS/linux-2.6.22.5.tar.bz2
>cd linux-2.6.22.5
>sed -i '/scsi/d' include/Kbuild
>make mrproper
>make headers_check
>make INSTALL_HDR_PATH=dest headers_install
>cp -rv dest/include/* /usr/include
>cd ..
>rm -rf linux-2.6.22.5
>.........
回复 支持 反对

使用道具 举报

发表于 2009-3-7 21:50:06 | 显示全部楼层
tar -xvf $LFS/glibc-libidn-2.5.1.tar.gz
=>
tar xvf $LFS/glibc-libidn-2.5.1.tar.gz
回复 支持 反对

使用道具 举报

发表于 2009-3-8 12:15:07 | 显示全部楼层
Post by YYljwYY;1957549
tar -xvf $LFS/glibc-libidn-2.5.1.tar.gz
=>
tar xvf $LFS/glibc-libidn-2.5.1.tar.gz


都是一样的。
回复 支持 反对

使用道具 举报

发表于 2009-3-14 12:45:28 | 显示全部楼层
发现一个拼写错误,不影响使用
tar xvf $LFS/iproute2-2.6.20-070313.tar.bz2

在光盘里是 .tar.gz
回复 支持 反对

使用道具 举报

发表于 2009-3-14 13:41:34 | 显示全部楼层
因為新版 tar 已能自動識別,找對應的解包工具去解壓了
回复 支持 反对

使用道具 举报

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

本版积分规则

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