从LFS到BLFS轻松上手
从LFS到BLFS轻松上手
——关于编译LFS/BLFS的可行性报告
青 铜 镜
严正声明:本贴可能含有危险成份,未满18岁的网友,为了您的身体健康、思想健康和机器健康着想,请勿阅读!
严重警告:如果您决定继续阅读下去,那么表明您愿意承担因阅读本贴后所产生的不可预知的后果!
版权声明:本水贴部分为唐师父口述,部分引自BLFS官方文档,青铜镜执笔!一般人我不告诉他!
引 言
LFS/BLFS是一个浩大的软件编译安装工程,耗时耗精力。而且,有好多朋友辛辛苦苦花了几天甚至是几个星期的时间编译安装LFS,到了结束时还不一定 能够顺利启动系统,最后只好放弃,实在是让人不爽。本贴的目的,就是让喜欢LFS的朋友能够简单、快速、有效地完成从LFS到BLFS的艰巨任务,让 LINUX在机器上流畅地运行起来。
唐师父说:世界是美好的,生命是珍贵的!不要在折腾电脑上消耗太多的精力!在电脑面前呆得太久了,这样不好!电脑只是一种工具,而不要把它当成玩具!这样妈妈会不放心的!请问:你妈贵姓?
本水贴共分三集,即上集、下集和续集。唐师父说:青铜镜,你这样写贴,难道就不能一个就写完?这样写贴,你还有时间晒衣服吗?青铜镜答:根据内容不同分为 三集来写,主要是为了方便查阅。上集主要是介绍编译安装LFS,下集主要是介绍BLFS,编译方向是KDE桌面。续集则是对编译KDE桌面多媒体功能的补 充介绍。再说了,人家琼瑶老太太写《还珠格格》,都连续写了三部,俺为何就不能写三集?唐师父说:打雷啦,下雨收衣服啊!
小平同志说过:不管黑猫白猫,抓得到老鼠的就是好猫。
青铜镜模仿着说:不管用啥方法,能够装上LFS/BLFS的就是管用的方法!
唐师父读易经:乾以易知,坤以简能。易则易知,简则易从。易知则有亲,易从则有功。有亲则可久,有功则可大。可久则贤人之德,可大则贤人之业。易简,而天下之理得矣;天下之理得,而成位乎其中矣。
哈哈哈!上 集 轻松搞定LFS
第一章 启 动
到www.linuxfromscratch.org下载LiveCD,刻成光盘。俺青铜镜当时下载的LiveCD的版本号是6.2-1。不同版本号的LiveCD是有区别的。请各位看官注意!将LFS的LiveCD放将光驱,从光驱启动,将会看到以下按系列号顺序出现的步骤:
01.01
boot:
按F1将会出现帮助画面。
可以设置显示屏的显示配置:
引用:
795=1280*1024*24 |
可以在boot后输入
linux vga=792或是其他数字以设置屏幕显示的配置。
也可以输入
引用:
TZ=Asia/Shanghai |
设置时区。
01.02
Configure System Clock
配置系统时钟
02.01 Asia/Shanghai
02.02 localtime
01.03
Regional setting
Choose your locale
中文有以下各项:
引用:
03.01 Chinese Traditional BIG5 |
俺青铜镜选的是Chinese Simplified UTF-8这一项。这样,当LiveCD启动startx以后,X的界面就是中文的,很清爽啊!
01.04
Configrm/edit Setting
这里显示默认的自动配置是:
引用:
locale: zh_CN.UTF8 |
01.05
Press Enter to activate this virtual console
出现以上提示时,按回车进入控制台。至此,LiveCD算是正式启动完成了。
01.06
进入控制台以后,先对硬盘进行分区,输入cfdisk命令进行分区。具体的分区方法很简单,这里就省了。
以下是我的分区:
引用:
Name PartType FS Type Size(MB) |
01.07
格式化分区:
mke2fs -jv /dev/hda1 (这是俺的硬盘分区设备号,俺只分一个区,后面fstab文件要用到!)
格式化交换分区,同时启动它:
引用:
mkswap /dev/hda2 |
01.08
启动X,进入的是XFce桌面管理器:
startx
01.09
Xfce的下面是控制台,控制台有“终端防真程序”,点击一下,启动它。还有一部手册,图标是一个救生圈。打开手册后,将地址指到: //usr/share/LFS-BOOK-6.2-HTML找到indel.html,打开LFS手册。这样,你就可以一边看着手册,一边输入命令了。 哈哈哈。青铜镜的意见和建议:一般情况下,如果命令相对比较短而且容易记住,推荐用手工输入;如果命令比较长而且复杂,甚至是容易出错的,建议用复制的方 法输入命令!要不到了最后系统收工时,因为其中的命令出错而让人前功尽弃,那才是让人不爽!比如下面这条命令:
引用:
GCC_INCLUDEDIR=`dirname $(gcc -print-libgcc-file-name)`/include && |
飞豹大侠的作法是,不管命令长短,一般都是手工输入……太长的,用脚工,据说是佛山无影脚。哈哈哈。对于飞豹大侠过于个性化或是偏执的行为, 青铜镜的看法是:不支持、不赞成、不提倡、不反对、不关注。反正是萝卜青菜,各有所爱嘛,更何况LFS是个性化很强的东西,飞豹大侠爱咋折腾,我们只管看 热闹就是了。没事还可以冲他泼冷水,恶搞一下下也好。
据唐师父所掌握的可靠消息,近来江湖人才紧缺啊!为了缓解江湖人才紧缺的问题,飞豹大侠作出了一个伟大的、具有划时代意义的决定:他准备要出书了!此乃青 铜镜的独家新闻!希望广大LINUX粉丝支持飞豹大侠具有里程碑意义的决定!有部戏叫做《拿什么来拯救你,我的爱人》,青铜镜想来想去,正确的答案是: 钱!当然是得拿钱!我们要支持飞豹大侠,当然得拿出点钱意来呀!为此,青铜镜决定赞助飞豹大侠人民币一块钱,一块钱可以买一个葱油大饼,当飞豹大侠写书到 半夜时,肚子饿了,可以买一个葱油大饼吃!当然,要是飞豹大侠拿青铜镜赞助的一块钱去买一个鸡蛋的话,那样的话前景就更加美好了:鸡蛋里孵出小鸡,小鸡又 生下一堆鸡蛋,又孵出一群小鸡,子子孙孙生生不息,飞豹大侠就可以开个养鸡场了。呵呵…… 还有,江湖传闻天花大侠在修炼《葵花宝典2007》,飞豹大侠您老人家得赶紧写书稿呀,要不等你的书出来时,天花大侠的武功早炼好了,那时天花大侠就可以 千秋万载,一统江湖了……
01.10
转到“终端防真程序”,开始LFS的制作历程。剩下的工作,如果你是新手或者是比较懒,只要将手册中的命令选中,然后转到“终端防真程序”里面粘贴、回车就行了。第二章 配 置
青铜镜下载的LiveCD是6.2-1版本的,LiveCD中的jhalfs是1.0,这个jhalfs-1.0比较爽啊,只要稍做配置一下,就可以让电 脑自动给俺们编译LFS了,实在是方便呀!当然,也有人反对说,我们做LFS的目的就是学习,还是手工输入一条一条命令比较好。其实青铜镜在前面说过了, 俺想简单、快速、有效地完成从LFS到BLFS的艰巨任务,俺要学习LFS,俺已将LFS的手册打印出来了,拿在手上,天天都可以拜读,当然啦,俺这也是 一种学习方法,你要一条一条命令输入,青铜镜坚决不拦着你,还在精神上支持你哦!唐师父说:我佛慈悲!大伙要爱惜身体呀!
02.01
创建分区好了以后挂载目录
引用:
export LFS=/mnt/lfs |
02.02
配置jhalfs文件。点开“终端防真程序”,当前的目录就是root,里面就有jhalfs-1.0这个文件夹,先进入jhalfs-1.0这目录在里面编辑配置文件。
02.02.01
修改LFS/config,输入命令:
cd jhalfs-1.0
vi LFS/config
下面是LFS/config文件的全部内容及编辑说明:
引用:
#### # Get the kernel package and patches even if no configutation file #--- Book's sources directory #==== INTERNAL VARIABLES ==== #--- Extra files that need be copied to $JHALFSDIR #--- Default stylesheet #--- Book version #--- Name of the makefile |
修改好上面的配置以后,保存退出。(唐师父说:按esc键,接着输入冒号:,在冒号后面输入wq,回车退去。)
02.02.02
修改common/config,输入命令:
vi common/config
下面是common/config文件的全部内容及编辑说明:
引用:
##### declare -r SVN="svn://svn.linuxfromscratch.org" #--- Mount point for the build # Create SBU and disk usage report 0(no)/1(yes) #=== Getting packages === #--- The local repository for packages/file # --- Server used if the file isn't found in SRC_ARCHIVE. SERVER=ftp://ftp.lfs-matrix.net #--- Optimize the build [0-2] #--- Run test suites [0-3] #--- Run the stripping phases 0(no)/1(yes) #--- page definition for groff letter/A4 #--- set default timezone. #--- install the optional vim-lang package 0(no)/1(yes) #--- Language information in /etc/profile See <locale -a> for values #--- Include the keymap in the kernel if defined. Path to the #=== Variables needed by iterative comparison analysis === #--- The number of final stage builds to create and compare, min. 2, max. 5 #--- Run ICA testing 0(no)/1(yes) #--- Run farce testing 0(no)/1(yes) #==== INTERNAL VARIABLES ==== #--- File listing package contents (from where package sources dir is extracted) #--- ICA report log directory #--- farce report log directory |
02.03
修改optimize/opt_config.d/O3pipe_march,输入命令:
vi optimize/opt_config.d/O3pipe_march
下面是optimize/opt_config.d/O3pipe_march文件的全部内容:
引用:
##### # Inherit optimizations from O3pipe CFLAGS_O3pipe_march=$CFLAGS_O3pipe" -march=pentium4" OTHER_CFLAGS_O3pipe_march=$CFLAGS_O3pipe" -march=pentium4" |
说明:青铜镜的CPU是AMD Althon XP 2000+,俺在这里将-march=pentium4全部改为-march=athlon-xp。
02.04
设定环境变量,代码:
export SRC_ARCHIVE=/lfs-sources
配置至此,差不多可以运行jhalfs啦!输入命令export看看一下设置。
02.05
好戏来了,执行以下命令:
time ./lfs -G -M
其间系统会有相应的提示,它会问你,你对刚刚的设置是不是很爽啊?爽的鸟语是不是happy?接下来将是考验你耐心的时刻!如果你的机器性能强劲、速度飞快,估计用不了多长时间,你的LFS半成品就可新鲜出炉了。第三章 收 工
当你看到屏幕上有这些鸟语时,也就是你的jhalfs打完收工了:
……
-set-up the boot loader, except if building CLFS with METHOO=boot, You can set-up the host bootloader or the new boot-loader installed on the new system.
If the last, you must to mount the virtual file system, re-enter the chroot and be sure that /dev is populated with the required devices before configure the boot-loader. When ready, exit from the chroot and umount the file systems.
If you are an experienced LFS user, several of those steps can be skipped or done in a different way. But then, that is something that you already know and there is no need to discuss it here.
……
Have a nice day:-)
done
Goodbye and thank you for choosing <jhalfs>
TIME
real 192m39.637s
user 153m2.200s
sys 28m39.990s
(机器配置:Athlon XP 2000+ DDR400 256M*2双通道 SWAP:403.04M)
刚刚青铜镜说了,至此,你的LFS半成品就可新鲜出炉了。我们还得进行最后的收尾工作!
03.01
设定系统配置文件
03.01.01
挂载并填充 /dev 目录
引用:
mount --bind /dev $LFS/dev |
03.01.02
挂载虚拟内核文件系统
引用:
mount -vt devpts devpts $LFS/dev/pts |
03.01.03
进入chroot环境
引用:
chroot "$LFS" /usr/bin/env -i \ |
03.01.04
设定root password
引用:
passwd root |
03.01.05
编辑/etc/sysconfig/clock
引用:
# Begin /etc/sysconfig/clock UTC=1 (注:青铜镜一般将这里改为0) # End /etc/sysconfig/clock |
03.01.06
运行下面的命令创建 /etc/sysconfig/network 文件并设置主机名:
引用:
echo "HOSTNAME=<lfs>" > /etc/sysconfig/network |
<lfs> 请用您的计算机名替换 [lfs] ,哈哈,青铜镜建议大伙用自己名字的拼音,这样很有成就感,可以大大满足了自己的虚荣心!不要在这里输入全限定域名(Fully Qualified Domain Name),FQDN 的信息稍后将放在 /etc/hosts 文件里。
03.01.07
编辑 /etc/hosts 文件:
引用:
# Begin /etc/hosts (network card version) 127.0.0.1 localhost # End /etc/hosts (network card version) |
把 [192.168.1.1] 和 [<HOSTNAME>.example.org] 更改为特定用户或特别要求所需要的值(如果这台机器要连入一个已存在的网络,并且网络/系统管理员已经给您分配了一个 IP 地址)。 如果您不打算配置网卡,可以采用下面的方式:
引用:
# Begin /etc/hosts (no network card version) 127.0.0.1 <HOSTNAME.example.org> <HOSTNAME> localhost # End /etc/hosts (no network card version) |
03.01.08
编辑/etc/sysconfig/network-devices/ifconfig.eth0/ipv4文件:
引用:
ONBOOT=yes |
03.01.09
编辑/etc/resolv.conf文件:
引用:
# Begin /etc/resolv.conf domain {<域名>} # End /etc/resolv.conf |
03.01.10
编辑/etc/fstab文件。如果你在前面已经做好这个文件,并配置到jhalfs里面,那么这里就可以省略了。
引用:
# Begin /etc/fstab # file system mount-point type options dump fsck /dev/hda1 / ext3 defaults 1 1 |
(请注意硬盘设备号!一定要按照自己的分区设置,不要照抄青铜镜的!要不你的系统会起不来了!)
03.02
安装内核和grub
03.02.01
安裝kernel(如果你已备好.config文件并写入jhalfs的设定路径,则内核早安装好了!)
引用:
cd /sources |
03.02.02
安裝grub
运行 grub shell:
引用:
grub |
创建一个 "显示菜单"文件定义 GRUB 的启动菜单:
引用:
cat > /boot/grub/menu.lst << "EOF" # By default boot the first menu entry. # Allow 30 seconds before booting the default. # Use prettier colors. # The first entry is for LFS. |
FHS 规定 GRUB 的 menu.lst 文件必须链接到 /etc/grub/menu.lst。为了符合这个规定,可以用下面的命令:
引用:
mkdir -v /etc/grub && |
03.03
完成,重启系统!
首先,退出 chroot 环境:
引用:
logout |
卸载虚拟文件系统:
引用:
umount -v $LFS/dev/pts |
卸载 LFS 自己的文件系统:
引用:
umount -v $LFS |
重启系统:
引用:
shutdown -r now |
至此,我们的LFS算是完美收工了。省心,省事,少麻烦……特点是:方便快捷。好了,好话我就不多说了,下面请出我们伟大的、光荣的、正确的唐师父致闭幕 词!唐师父激动了一阵子,忘词了,说:“悟空,看看……”怎么样?够简单、快速、有效吧?如果你耐心看到这里,你曾经受到LFS长时间编译的折腾,一定会 对上面的介绍方法心动了,心动不如行动,还不赶紧回去试试!有什么动静回来跟贴……
什么?你还在手工输入命令?那你一定是飞豹大侠的铁杆粉丝!你看上面4楼的那位大哥,飞豹大侠一定是到过你的心里,并在你的心里面留下一滴眼泪吧?突然想 起齐天大圣一个跟斗云翻到五指山后,想证明自己曾经到过五指山,于是便题词:齐天大圣,至此一游。还顺便撒了一泡尿……呵呵,孙大圣这个习惯不好啊!
号外:你想知道飞豹大侠的书叫什么名字吗?
据《江湖小报》非著名记者青铜镜和《八卦周刊》资深记者金步国共同掌握的可靠消息,可以给大伙一个小小的提示:倪萍出了一本书叫做《日子》,白云大妈也出 了一本书叫做《月子》……下面,大家应该知道我们飞豹大侠的书名了吧?就是《星子》!啥?星子?白天见星星,跌倒……这不晕了吗?呵呵……
下 集 轻松搞定BLFS
第一次LFS收工后正确无误启动时,着实让青铜镜激动了老一阵子,太有成就感了!连盖着被子都想偷笑,太不容易了。后来,听说飞豹大侠编译LFS的次数竟 然达到了108次!而且每一次几乎都是手工完成的。顿时,俺的成就感一下了消失得无影无踪,好象白天见星星,那些星星竟然在偶面前飘来飘去……
引用:
下面是《江湖小报》非著名记者青铜镜独家专访飞豹大侠的报导: |
下面是广告时间:
引用:
小郭拖地,忽然闪到腰,扶腰呼痛。 |
广告之后,欢迎回来!
其实,LFS只是一个基本系统而已,还不能跟我们平时安装、使用的LINUX发行版那样,只要装上就可以使用了。我们还得装上相应的工具软件,装上桌面管 理软件,才能够让LFS满足我们的日常工作、学习、娱乐等应用。下面,我们就在已经完美收工的LFS上继续BLFS,朝着KDE轻松出发!当然啦,青铜镜 的方法跟比较简单,容易做得到,只要照着下面的步骤慢慢做,就可以很快装上KDE了。说白了,青铜镜在这里放一个葫芦,大伙可以照着这个葫芦慢慢画。
引用:
画自己的瓢,让别人说去吧…… |
此乃武林密笈,传男不传不女!小心记好了:
引用:
1、把下面所有列出来的软件包先都下载好。 |
这样,机器就自动给你安装软件包了!要注意软件包的版本号!包的安装顺序是排好的。当然,俺还是喜欢这样做:
./01libpng-1.2.12 && ./02expat-2.0.0 && ./03freetype-2.1.10 && 厖
哈哈,这种方法,老少皆宜!童叟无欺!下面是需要下载的软件包和相关脚本文件。
从LFS到BLFS轻松上手相关推荐
- linux 6.4 安装dns,Linux 轻松上手 架设 CentOS 6.4 DNS+FTP ndash;(六)、安装设定vsftp
8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? Linux 轻松上手 架设 CentOS 6.4 DNS+FTP –(六).安装设定vsftp 1.安装vsftp yu ...
- LFS、BLFS、ALFS、HLFS的区别
2019独角兽企业重金招聘Python工程师标准>>> Linux From Scratch (LFS) 及其后代代表一种新方法,向用户揭示 Linux 操作系统是如何工作的.LFS ...
- 公开课 | 如何轻松上手华为最新开源框架MindSpore?
人工智能广泛应用在各个行业,相应开发者群体也变得丰富多样.他们往往来自不同专业,在不同领域不同场景下进行开发实践,这也造成了 AI 开发者人才的学习成本很高,在专业技能的学习之外还需要理解产业需求和应 ...
- 轻松上手系列教程java_小白也能轻松上手的Prometheus教程
这篇文章将承接此前关于使用Prometheus配置自定义告警规则的文章.在本文中,我们将demo安装Prometheus的过程以及配置Alertmanager,使其能够在触发告警时能发送邮件,但我们将 ...
- LFS、BLFS、ALFS、HLFS的区别详解
Linux From Scratch (LFS) 及其后代代表一种新方法,向用户揭示 Linux 操作系统是如何工作的.LFS 基于这样的假设,即一部分一部分地编译完整的操作系统不仅能够揭示操作系统是 ...
- 实时计算轻松上手,阿里云DataWorks Stream Studio正式发布
2019独角兽企业重金招聘Python工程师标准>>> Stream Studio是DataWorks旗下重磅推出的全新子产品.已于2019年4月18日正式对外开放使用.Stream ...
- 从入门到入土:Python爬虫学习|Selenium自动化模块学习|简单入门|轻松上手|自动操作浏览器进行处理|chrome|PART01
此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...
- 轻松上手,设计无忧,三款在线图片编辑器必不可少
随着疫情渐渐的离开,紧张激烈的工作也随之而来,新媒体运营小编,又开始为了各种运营文案,公众号推广文章,网站banner进行设计和更换,想要快速的完成的工作,那么小编觉得以下的三款在线图片编辑器http ...
- Excel读写合集:Excel读写小白从不知所措到轻松上手
可以住高楼,无惧在深沟.光万丈亦可,一身锈何妨. 有目录,不迷路 前言 干货 Excel写入篇 Excel读取篇 Excel进阶篇 前言 本篇博客总结了下最近自己写的excel读写系列,看完之后应该可 ...
最新文章
- 只要可能,就缓存数据和页输出
- 《Akka应用模式:分布式应用程序设计实践指南》读书笔记1
- 关于xilinx fir use reloadable coefficient的用法
- oracle json 搜索,oracle 正则查询json返回报文中某个字段的值
- 智能实验室-全能优化(Guardio) 4.92.0.812
- 数组字典_VBA数组与字典解决方案第1讲:函数,公式,数组,数组公式的概念...
- 修改Header方法
- Spring Boot 2.x基础教程:Swagger静态文档的生成
- IE6/7兼容问题:巧用label去除submit按钮的黑框线
- rsync+sersync大数据T级以上进行同步方法
- 在linux下做源码免杀,Cobaltstrike免杀从源码级到落地思维转变
- 【MySQL】mysql死锁以及死锁日志分析
- 实战ReactNative 从入门到精通 重要技术解析,5分钟搭建iOS, Android App 实战一
- 百旺智能编码_百旺税控盘如何增加商品编码?
- web前端课程设计源码大全(HTML+CSS+JS)
- 数据结构——二叉树相关练习题
- 云上解锁Web3.0 阿里云XR平台助力彼真科技呈现沉浸式演唱会
- python arcgis 批量裁剪栅格文件
- springMVC实现jsonp的跨域请求
- Java建立长链接的方式_java http长链接(keep-alive)导致的问题