重走LFS之路:(一) 环境准备

    xiaoxiao2024-08-01  96

    重走LFS之路:(一) 环境准备

    自从大学二年级的寒假没日没夜地用了整整两个月的时间编译了LFS之后,就再也没做过。这两天在Linux中国的微信公众号上看到LFS都升级到7.7了,故而觉得是时候重新再编译一遍的时候了。

    诚然LFS是Linux学习和深入理解的终南捷径,每个真心希望了解Linux的人都建议去做一遍LFS,因为每做一次就会获得新的知识,对Linux有更多更深入的理解。

    (题图来自: techradar.com)

    貌似LFS官网(http://www.linuxfromscratch.org)不再提供LiveCD了,好吧好吧,那我就从虚拟机装个宿主系统,依然是Debian。说句题外话,对于自己用得惯的OS,真心应该最小安装到虚拟机一份,再有需要的时候,直接复制一下改个名,省心又省力。

    此时我把Debian更新到了最新,并且为了使用显卡驱动让它能够在我的显示器上全屏显示,就用tasksel装上了Debian desktop environment。

    1-Tasksel-DebianDesktopEnv

    我在自己的Home目录中新建了一个目录lfs,用于整个工程的存储。这时候我在~/lfs/中新建了一个checkscript目录,用于存储事前的环境检查脚本。

    我们来编写第一个检查脚本,这个脚本会检查各个需要的工具及内核版本号,看看是否符合lfs7.7的列表要求,如果没有,会报not found。

    cd ~/lfs/checkscriptvi check_env.sh

     

    #/bin/shexport LC_ALL=Cbash version | head -n1 | cut -d -f2-4echo “/bin/sh -> `readlink -f /bin/sh`echo -n Binutils: “; ld version | head -n1 | cut -d -f3-bison version | head -n1if [ -h /usr/bin/yacc ]; thenecho “/usr/bin/yacc -> `readlink -f /usr/bin/yacc`”;elif [ -x /usr/bin/yacc ]; thenecho yacc is `/usr/bin/yacc –version | head -n1`elseecho yacc not foundfibzip2 version 2>&1 < /dev/null | head -n1 | cut -d -f1,6-echo -n Coreutils: “; chown version | head -n1 | cut -d”)” -f2diff version | head -n1find version | head -n1gawk version | head -n1if [ -h /usr/bin/awk ]; thenecho “/usr/bin/awk -> `readlink -f /usr/bin/awk`”;elif [ -x /usr/bin/awk ]; thenecho yacc is `/usr/bin/awk –version | head -n1`elseecho awk not foundfigcc version | head -n1g++ version | head -n1ldd version | head -n1 | cut -d -f2- # glibc versiongrep version | head -n1gzip version | head -n1cat /proc/versionm4 version | head -n1make version | head -n1patch version | head -n1echo Perl `perl -V:version`sed version | head -n1tar version | head -n1makeinfo version | head -n1xz version | head -n1echo main(){}’ > dummy.c && g++ -o dummy dummy.cif [ -x dummy ]; thenecho g++ compilation OK”;elseecho g++ compilation failed”;firm -f dummy.c dummy

    2-CheckScript-check_env.sh

    此时的脚本是不能直接执行的,需要加执行权限,也就是x权限

    chmod +x check_env.sh

    现在可以执行脚本了

    3-CheckScript-check_env.run

    从检查结果中可以看到,我的Debian太干净了,缺了好几样东西,bison gawk g++,所以我用aptitude装上他们就好了。

    4-CheckScript-install

    5-CheckScript-check_env-OK

    此时环境检查没有报错信息了,需要的工具也已经正确显示了版本号。

    下面检查需要用到的库,一共有三个,gmp, mpfr和mpc

    cd ~/lfs/checkscriptvi check_lib.sh

     

    #!/bin/bashfor lib in lib{gmp,mpfr,mpc}.la; doecho $lib: $(if find /usr/lib* -name $lib | grep -q $lib; then:;elseecho not;fi) founddoneunset lib

    6-CheckScript-check_lib.sh

    7-CheckScript-check_lib.run

    从检查结果来看,三个库目前都不具备,不过没关系,现在还用不到这三个货,先把脚本写好。

    原文发布时间:2015-04-02

    本文来自云栖合作伙伴“linux中国”

    相关资源:jd_seckill京东抢茅台插件最新版【京东飞天茅台1499抢购】Python脚本的完整安装 使用教程
    最新回复(0)