Patch-2.5.4
tar xvf /lfs-sources/patch-2.5.4.tar.gz cd patch-2.5.4 ./configure --prefix=/tools make make install cd .. rm -rf patch-2.5.4
Perl-5.8.8
tar xvf /lfs-sources/perl-5.8.8.tar.bz2 cd perl-5.8.8 patch -Np1 -i /lfs-sources/perl-5.8.8-libc-2.patch ./configure.gnu --prefix=/tools -Dstatic_ext='Data/Dumper Fcntl IO POSIX' make perl utilities cp -v perl pod/pod2man /tools/bin mkdir -pv /tools/lib/perl5/5.8.8 cp -Rv lib/* /tools/lib/perl5/5.8.8 cd .. rm -rf perl-5.8.8
Sed-4.1.5
tar xvf /lfs-sources/sed-4.1.5.tar.gz cd sed-4.1.5 ./configure --prefix=/tools make make install cd .. rm -rf sed-4.1.5
Tar-1.18
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
Texinfo-4.9
tar xvf /lfs-sources/texinfo-4.9.tar.bz2 cd texinfo-4.9 ./configure --prefix=/tools make make install cd .. rm -rf texinfo-4.9
Util-linux-2.12r
tar xvf /lfs-sources/util-linux-2.12r.tar.bz2 cd util-linux-2.12r sed -i 's@/usr/include@/tools/include@g' configure ./configure make -C lib make -C mount mount umount make -C text-utils more cp -v mount/{,u}mount text-utils/more /tools/bin cd .. rm -rf util-linux-2.12r
Stripping
这步是可有可无的,如果你打算今后还要用/tools里面的东西,那么可以strip一下来减少占用的磁盘空间,但如果做完目标系统后就删除了,不Strip也可以,反正最后也是要删掉的。
这步是可有可无的,如果你打算今后还要用/tools里面的东西,那么可以strip一下来减少占用的磁盘空间,但如果做完目标系统后就删除了,不Strip也可以,反正最后也是要删掉的。
strip --strip-debug /tools/lib/* strip --strip-unneeded /tools/{,s}bin/*
info和man里面的内容在制作过程中没什么用处,所以删掉也没啥关系。
rm -rf /tools/{info,man}
退出lfs用户(这步不要少了)
到目前为止,工具链已经制作完成,接着就要开始制作真正的目标系统
如果你到目前为止没出什么问题,那么恭喜你成功的通过了一关,不过接着还有相当长的路。
现在你应该是处于root用户状态的,看看你的命令行提示符是不是回到了#。
从现在开始不在需要lfs用户来制作系统了,因此我们用
重新设置目录权限,便于后面的工作。
创建三个重要目录
创建两个目标系统所必须的设备文件
这个时候也许你想睡觉关机了,那么重新开机后回到工作状态的步骤是:
1.重新启动计算机,并从LiveCD启动
2.加载分区
1.重新启动计算机,并从LiveCD启动
2.加载分区
3.加载交换分区(如果不想用交换分区或者没有交换分区可跳过此步骤)
相关知识点:
这时候已经制作好了工具链,因此可以不需要建立根目录下的tools链接了。
这时候已经制作好了工具链,因此可以不需要建立根目录下的tools链接了。
利用主系统加载几个重要的文件系统,请注意这个步骤对于后面的工作极其重要。
相关知识点:
mount命令加载的分区在重新启动后就失效了,所以在这其中重新启动则需要重新加载。
mount命令加载的分区在重新启动后就失效了,所以在这其中重新启动则需要重新加载。
这里为了方便使用源码包,我将光盘加载到目标系统里
这个步骤不是必须的,如果你想使用,那么在重新启动后进入工作状态的步骤中在相应的位置上加入。
这里有一个更简单的办法,将lfs-sources里面所有源码包复制到$LFS/sources目录中,这步对于后面在第六章使用源代码将非常方便。
这里有一个更简单的办法,将lfs-sources里面所有源码包复制到$LFS/sources目录中,这步对于后面在第六章使用源代码将非常方便。
Chroot到目标系统的目录下,以便不受主系统的影响来制作目标系统
注意:这个时候你的提示符会是“I have no name!”,没有关系继续我们的工作很快就可以正常了。
这个时候如果你关机或重新启动,那么重新开机后回到工作状态的步骤是:
1.重新启动计算机,并从LiveCD启动
2.加载分区
1.重新启动计算机,并从LiveCD启动
2.加载分区
3.加载交换分区(如果不想用交换分区或者没有交换分区可跳过此步骤)
4.加载必要的文件系统
5.Chroot到目标系统下
建立目标系统的目录结构
创建几个必要的链接,因为在目标系统的编译过程中,部分编译程序会用绝对路径来寻找命令或文件。
创建root及nobody用户和必要的组
重新加载bash,以使root用户起效,这样前面的提示符就不会是“I have no name!”
创建和设置几个临时文件和日志文件。
到目前为止,创建目标系统的准备工作已基本完成,下面就要开始目标系统基础软件包的安装
首先进入到源码目录下。
(此前已经将LFS需要的源码包加载到了/cdrom下,因此后面的命令将从/cdrom/lfs-sources目录下解出,如果你将源码包直接复制到了sources目录下或别的什么目录下,则要相应的修改下面的命令)
如果之前是将所有源码包复制到sources下的,则执行
从现在开始一直到第六章的Stripping Again之前,这个阶段如果你关机或重新启动,那么重新开机后回到工作状态的步骤是:
1.重新启动计算机,并从LiveCD启动
2.加载分区
1.重新启动计算机,并从LiveCD启动
2.加载分区
3.加载交换分区(如果不想用交换分区或者没有交换分区可跳过此步骤)
4.加载必要的文件系统
5.Chroot到目标系统下
6.进入编译目录
Linux-2.6.22.5
Man-pages-2.63
man-pages的版本可以使用更新的版本。
Glibc-2.5.1
在进行之前请检查一下是否glibc-2.5.1和glibc-build这两个目录已经被删除,如果没有删除请删除后在继续。
在进行之前请检查一下是否glibc-2.5.1和glibc-build这两个目录已经被删除,如果没有删除请删除后在继续。
make localedata/install-locales将安装全部的locale,如果你不想装这么多locale的话就用localedef命令来安装,LFS手册上有例子,如果仅想加入中文的locale,就用
建立几个重要文件:
删除编译目录
相关知识:
glibc的测试比较容易出现错误,比如机器慢就有可能出现超时的错误,还有一些能引起错误的LFS手册上有所提及,像超时这种错误有时候很难避免,就跳过去吧。
glibc的测试比较容易出现错误,比如机器慢就有可能出现超时的错误,还有一些能引起错误的LFS手册上有所提及,像超时这种错误有时候很难避免,就跳过去吧。
调整工具链
调整specs文件:
测试工具链是否被调整成功
如果显示[Requesting program interpreter: /lib/ld-linux.so.2]表示调整成功,动态库已经连接到了目标系统的/lib下。
应该显示
应该显示
应该显示
应该显示
应该显示
如果上面均显示正常,那么表明工具链调整成功,可以删除测试文件了
转载于:https://blog.51cto.com/negiup/490020