从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
794=1280*1024*16
792=1024*768*24
791=1024*768*16
789=800*600*24
788=800*600*16

可以在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
03.02 Chinese Traditional UTF8
03.03 Chinese Traditional EUC-TW
03.04 Chinese Simplified GB2312
03.05 Chinese Simplified GB18030
03.06 Chinese Simplified GBK
03.07 Chinese Simplified UTF-8

俺青铜镜选的是Chinese Simplified UTF-8这一项。这样,当LiveCD启动startx以后,X的界面就是中文的,很清爽啊!

01.04
Configrm/edit Setting
这里显示默认的自动配置是:

引用:

locale: zh_CN.UTF8
Console keymap: defkeymap
Console font: default8*16
autoconverted from charset:
X keymap: us

01.05
Press Enter to activate this virtual console
出现以上提示时,按回车进入控制台。至此,LiveCD算是正式启动完成了。

01.06
进入控制台以后,先对硬盘进行分区,输入cfdisk命令进行分区。具体的分区方法很简单,这里就省了。
以下是我的分区:

引用:

Name PartType FS Type Size(MB) 
hda1 Primary linux ext3 3960.95
hda2 Primary linux swap/solaris 403.04

01.07
格式化分区:
mke2fs -jv /dev/hda1 (这是俺的硬盘分区设备号,俺只分一个区,后面fstab文件要用到!)
格式化交换分区,同时启动它:

引用:

mkswap /dev/hda2
swapon /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 &&
find ${GCC_INCLUDEDIR}/* -maxdepth 0 -xtype d -exec rm -rvf '{}' \; &&
rm -vf `grep -l "DO NOT EDIT THIS FILE" ${GCC_INCLUDEDIR}/*` &&
unset GCC_INCLUDEDIR

飞豹大侠的作法是,不管命令长短,一般都是手工输入……太长的,用脚工,据说是佛山无影脚。哈哈哈。对于飞豹大侠过于个性化或是偏执的行为, 青铜镜的看法是:不支持、不赞成、不提倡、不反对、不关注。反正是萝卜青菜,各有所爱嘛,更何况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
mkdir -pv $LFS
mount -v -t ext3 /dev/hda1 $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文件的全部内容及编辑说明:

引用:

####
#
# Configuration file for the LFS module
#
# $Id: config 2822 2006-07-16 10:06:03Z manuel $
#
#####
#--- Location of fstab file (if empty, a template is created)
FSTAB= (注:留空!我们也可以先将fstab写好以后,放到指定位置并在这里填上fstab的路径。)
#--- Fully qualified path to a kernel config file
# If no config file is specified the kernel is NOT compiled
CONFIG= (注:留空!我们也可以先行将编译内核的.config放到指定位置并在这里填上路径。)

# Get the kernel package and patches even if no configutation file
# has been supplied? 0(no)/1(yes)
GETKERNEL=1 (注:修改这里,将原来的0改为1)

#--- Book's sources directory
# If you have previously checked out the book from the repository
BOOK=/usr/share/LFS-BOOK-6.2-XML(注:这里原来是空的,将手册的路径写到这里!)

#==== INTERNAL VARIABLES ====
# Don't edit it unless you know what you are doing

#--- Extra files that need be copied to $JHALFSDIR
FILES=""

#--- Default stylesheet
XSL=lfs.xsl

#--- Book version
LFSVRS=development
TREE=trunk/BOOK

#--- Name of the makefile
MKFILE=$JHALFSDIR/Makefile

修改好上面的配置以后,保存退出。(唐师父说:按esc键,接着输入冒号:,在冒号后面输入wq,回车退去。)

02.02.02
修改common/config,输入命令:
vi common/config
下面是common/config文件的全部内容及编辑说明:

引用:

#####
#
# common configuration file
#
# $Id: config 2799 2006-06-20 23:43:07Z georgeb $
#####

declare -r SVN="svn://svn.linuxfromscratch.org"
declare -r LOG=000-masterscript.log

#--- Mount point for the build
BUILDDIR=/mnt/lfs (注:这里原来是build_dir,改为lfs。)

# Create SBU and disk usage report 0(no)/1(yes)
# NOTE: requires to have bc installed on the host
REPORT=1

#=== Getting packages ===
# Files will be retrieved from the local archive SRC_ARCHIVE
# (if defined) or the 'net and will be stored in $BUILDDIR/sources
#--- Download the source packages 0(no)/1(yes)
GETPKG=0

#--- The local repository for packages/file
# Used only if GETPKG = 1
# Any missing file will be downloaded and archived here,
# if the user has the right priviledges.
SRC_ARCHIVE=$SRC_ARCHIVE

# --- Server used if the file isn't found in SRC_ARCHIVE.
# As a last resort, the file will dowloaded from upstream, if possible.

SERVER=ftp://ftp.lfs-matrix.net
#=== Build options ===
#--- Automatically run the makefile once it has been created 0(no)/1(yes)
RUNMAKE=0

#--- Optimize the build [0-2]
# 0 = no optimization
# 1 = optimize final system only
# 2 = optimize both temporary tools and final system
# Optimization values are set in optimize/* files
OPTIMIZE=0

#--- Run test suites [0-3]
# 0 = none
# 1 = only chapter06 Glibc, GCC and Binutils testsuites
# 2 = all chapter06 testsuites
# 3 = all chapter05 and chapter06 testsuites
# (in CLFS, alias to 2)
TEST=1(如果在编译安装过程中你需要测试,那么这里不用修改。俺从来都不test,因此俺将这里修改为0。)

#--- Run the stripping phases 0(no)/1(yes)
STRIP=1

#--- page definition for groff letter/A4
PAGE=letter (我国公文习惯使用的纸张尺寸标准是A4,这里改为A4。)

#--- set default timezone.
TIMEZONE=${TZ:-GMT}(注:这里是时区。青铜镜一直填写Asia/Shanghai,晨想姐姐推荐我们中华人民共和国的时区。)

#--- install the optional vim-lang package 0(no)/1(yes)
VIMLANG=1

#--- Language information in /etc/profile See <locale -a> for values
LANG=$LANG (注:这里是系统语言。推荐en_US.UTF8。有一次,青铜镜在前面第一章第三小节选的是Chinese Simplified UTF-8这一项,这里没有修改,导致jhalfs运行到第六章的6.45. Man-DB-2.4.3时停止了,没办法,只得手工继续编译安装,很不爽!其实,刚刚装好的LFS都是满屏鸟语的,想汉化,还得到后来装上KDE时才方 便呀!)
LC_ALL=$LC_ALL # (not used in LFS)

#--- Include the keymap in the kernel if defined. Path to the
# keymap file relative to /usr/share/kbd/keymaps/
# (e.g., i386/qwerty/us.map.gz) or "none"
# Not used in LFS
KEYMAP=none

#=== Variables needed by iterative comparison analysis ===
#--- Should some iterative comparison analysis by made? 0(no)/1(yes)
COMPARE=0

#--- The number of final stage builds to create and compare, min. 2, max. 5
ITERATIONS=3

#--- Run ICA testing 0(no)/1(yes)
RUN_ICA=0

#--- Run farce testing 0(no)/1(yes)
RUN_FARCE=0

#==== INTERNAL VARIABLES ====
# Don't edit it unless you know what you are doing
#--- Working directories
SCRIPT_ROOT=jhalfs
JHALFSDIR=$BUILDDIR/$SCRIPT_ROOT
LOGDIR=$JHALFSDIR/logs
TESTLOGDIR=$JHALFSDIR/test-logs

#--- File listing package contents (from where package sources dir is extracted)
PKG_LST=unpacked

#--- ICA report log directory
ICALOGDIR=$LOGDIR/ICA

#--- farce report log directory
FARCELOGDIR=$LOGDIR/farce

02.03
修改optimize/opt_config.d/O3pipe_march,输入命令:
vi optimize/opt_config.d/O3pipe_march
下面是optimize/opt_config.d/O3pipe_march文件的全部内容:

引用:

#####
#
# $Id: O3pipe_march 2677 2006-05-11 20:21:14Z manuel $
#
#####
#
# MODE O3pipe_march configuration
#
# Usage: - Apply optimization string to each variable
# - "unset" will cause the variable to be not set
# instead of just set to null.
#
# Use this as an example for modeA_modeB combined modes
#
#####

# Inherit optimizations from O3pipe
source optimize/opt_config.d/O3pipe

CFLAGS_O3pipe_march=$CFLAGS_O3pipe" -march=pentium4"
CXXFLAGS_O3pipe_march=$CFLAGS_O3pipe" -march=pentium4"
LDFLAGS_O3pipe_march=$LDFLAGS_O3pipe

OTHER_CFLAGS_O3pipe_march=$CFLAGS_O3pipe" -march=pentium4"
OTHER_CXXFLAGS_O3pipe_march=$CXXFLAGS_O3pipe" -march=pentium4"
OTHER_LDFLAGS_O3pipe_march=$LDFLAGS_O3pipe

说明:青铜镜的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
mount -vt tmpfs shm $LFS/dev/shm
mount -vt proc proc $LFS/proc
mount -vt sysfs sysfs $LFS/sys

03.01.03
进入chroot环境

引用:

chroot "$LFS" /usr/bin/env -i \
HOME=/root TERM="$TERM" PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/sbin:/usr/sbin \
/bin/bash --login

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
<192.168.1.1><HOSTNAME.example.org> [alias1] [alias2 ...]

# 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
SERVICE=ipv4-static
IP=192.168.1.1
GATEWAY=192.168.1.2
PREFIX=24
BROADCAST=192.168.1.255

03.01.09
编辑/etc/resolv.conf文件:

引用:

# Begin /etc/resolv.conf

domain {<域名>}
nameserver <主域名服务器IP地址>
nameserver <副域名服务器IP地址>

# End /etc/resolv.conf

03.01.10
编辑/etc/fstab文件。如果你在前面已经做好这个文件,并配置到jhalfs里面,那么这里就可以省略了。

引用:

# Begin /etc/fstab

# file system mount-point type options dump fsck
# order

/dev/hda1 / ext3 defaults 1 1
/dev/hda2 swap swap pri=1 0 0
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
devpts /dev/pts devpts gid=4,mode=620 0 0
shm /dev/shm tmpfs defaults 0 0
# End /etc/fstab

(请注意硬盘设备号!一定要按照自己的分区设置,不要照抄青铜镜的!要不你的系统会起不来了!)

03.02
安装内核和grub
03.02.01
安裝kernel(如果你已备好.config文件并写入jhalfs的设定路径,则内核早安装好了!)

引用:

cd /sources
tar -jxvf linux-2.6.16.27.tar.bz2
cd linux-2.6.16.27.tar.bz2
patch -Np1 -i ../linux-2.6.16.27-utf8_input-1.patch
make mrproper
make menuconfig
make
make modules_install
cp -v arch/i386/boot/bzImage /boot/lfskernel-2.6.16.27
cp -v System.map /boot/System.map-2.6.16.27
cp -v .config /boot/config-2.6.16.27
install -d /usr/share/doc/linux-2.6.16.27 &&
cp -r Documentation/* /usr/share/doc/linux-2.6.16.27
cd ..
rm -rf linux-2.6.16.27.tar.bz2

03.02.02
安裝grub
运行 grub shell:

引用:

grub
root (hd0,0) (注意分区设备号!)
setup (hd0)
quit

创建一个 "显示菜单"文件定义 GRUB 的启动菜单:

引用:

cat > /boot/grub/menu.lst << "EOF"
# Begin /boot/grub/menu.lst

# By default boot the first menu entry.
default 0

# Allow 30 seconds before booting the default.
timeout 30

# Use prettier colors.
color green/black light-green/black

# The first entry is for LFS.
title LFS 6.2
root (hd0,0) (注意硬盘分区设备号!)
kernel /boot/lfskernel-2.6.16.27 root=/dev/hda1 (注意你自己的硬盘分区设备号!)
EOF

FHS 规定 GRUB 的 menu.lst 文件必须链接到 /etc/grub/menu.lst。为了符合这个规定,可以用下面的命令:

引用:

mkdir -v /etc/grub &&
ln -sv /boot/grub/menu.lst /etc/grub

03.03
完成,重启系统!
首先,退出 chroot 环境:

引用:

logout

卸载虚拟文件系统:

引用:

umount -v $LFS/dev/pts
umount -v $LFS/dev/shm
umount -v $LFS/dev
umount -v $LFS/proc
umount -v $LFS/sys

卸载 LFS 自己的文件系统:

引用:

umount -v $LFS

重启系统:

引用:

shutdown -r now

至此,我们的LFS算是完美收工了。省心,省事,少麻烦……特点是:方便快捷。好了,好话我就不多说了,下面请出我们伟大的、光荣的、正确的唐师父致闭幕 词!唐师父激动了一阵子,忘词了,说:“悟空,看看……”怎么样?够简单、快速、有效吧?如果你耐心看到这里,你曾经受到LFS长时间编译的折腾,一定会 对上面的介绍方法心动了,心动不如行动,还不赶紧回去试试!有什么动静回来跟贴……

什么?你还在手工输入命令?那你一定是飞豹大侠的铁杆粉丝!你看上面4楼的那位大哥,飞豹大侠一定是到过你的心里,并在你的心里面留下一滴眼泪吧?突然想 起齐天大圣一个跟斗云翻到五指山后,想证明自己曾经到过五指山,于是便题词:齐天大圣,至此一游。还顺便撒了一泡尿……呵呵,孙大圣这个习惯不好啊!

号外:你想知道飞豹大侠的书叫什么名字吗?
据《江湖小报》非著名记者青铜镜和《八卦周刊》资深记者金步国共同掌握的可靠消息,可以给大伙一个小小的提示:倪萍出了一本书叫做《日子》,白云大妈也出 了一本书叫做《月子》……下面,大家应该知道我们飞豹大侠的书名了吧?就是《星子》!啥?星子?白天见星星,跌倒……这不晕了吗?呵呵……

下 集 轻松搞定BLFS

第一次LFS收工后正确无误启动时,着实让青铜镜激动了老一阵子,太有成就感了!连盖着被子都想偷笑,太不容易了。后来,听说飞豹大侠编译LFS的次数竟 然达到了108次!而且每一次几乎都是手工完成的。顿时,俺的成就感一下了消失得无影无踪,好象白天见星星,那些星星竟然在偶面前飘来飘去……

引用:

下面是《江湖小报》非著名记者青铜镜独家专访飞豹大侠的报导:
青铜镜:飞豹大侠您好!我是《江湖小报》的记者青铜镜,非常感谢您老人家能在百忙之中抽出时间接受我们的专访。
飞豹大侠:你好!(我们俩握手,入座。)只要不涉及个人隐私问题,我一定如实回答你的提问。请大家多多支持我!
青铜镜:请问,飞豹大侠您做LFS的时间有多少年了?
飞豹大侠数数手指脚趾:我做LFS已好多年……(画外音乐轻轻响起:我不做大哥好多年……谁在唱反调?)
青铜镜:请问你做LFS的次数有没有100次?请问你做LFS是不是个人爱好?请问你做LFS的目的是什么?请问是不是为了全世界广大劳苦人民得解放?请 问你做了多少次BLFS?请问你做BLFS是不是编译KDE?请问你喜欢KDE还是GNOME?请问你有没有从做LFS中得到过好处?请问你每次做LFS 都是手工输入命令吗?请问你做LFS时使用的脚工是什么门派的?请问你是不是使用佛山无影脚?请问你能不能教我?……
(下面请出我们的嘉宾主持人唐师父!唐师父闪亮登场!由唐师父继续访问飞豹大侠。)
唐师父:请问你喜欢什么颜色?请问你喜欢什么水果?为何你起名叫飞豹呢?飞豹这个名字太平常了,建议你改名金钱豹!金钱豹,多好听的名字,多吉祥,多喜 庆。想想都让人感受到如沐春风呀!而且呢,这个金钱呀,实在是太好用了。王朔说过,金钱不是万能的,但没有钱是万万不能D。你要是改了名啊,那你就鸟生鱼 汤,玉树临风,千秋万载,一统江湖了@#$%&*
咋不见了飞豹大侠呢?一看地下,飞豹大侠不省人事,崩溃了……哈哈哈!

下面是广告时间:

引用:

小郭拖地,忽然闪到腰,扶腰呼痛。 
祝无双:怎么啦?又闪到腰了? 
郭芙蓉:老啦,看来不服老是不行喽。 
祝无双:年纪大了,骨质疏松,身体提醒你,缺钙啦(展示)白驼山壮骨粉,北宋欧阳锋独家秘方,专为武林中人研制。 
郭芙蓉:可我已经退出江湖啦! 
祝无双:一样用得上,俗话说人在江湖飘,谁能不挨刀?白驼山壮骨粉,内用外服均有奇效。挨了刀,涂一包,还想再挨第二刀,闪了腰,吃一包,二百多岁不显老。 
祝/郭:白驼山壮骨粉,青春的粉,友谊的粉白驼山壮骨粉,北宋欧阳锋独家秘制,看着很像面粉,吃着更像面粉! 
白展堂:华山论剑指定营养品,本镇各大药铺医馆均有销售,购买时,请认准黑蛤蟆防伪标志。无双、芙蓉:呱呱~~

广告之后,欢迎回来!
其实,LFS只是一个基本系统而已,还不能跟我们平时安装、使用的LINUX发行版那样,只要装上就可以使用了。我们还得装上相应的工具软件,装上桌面管 理软件,才能够让LFS满足我们的日常工作、学习、娱乐等应用。下面,我们就在已经完美收工的LFS上继续BLFS,朝着KDE轻松出发!当然啦,青铜镜 的方法跟比较简单,容易做得到,只要照着下面的步骤慢慢做,就可以很快装上KDE了。说白了,青铜镜在这里放一个葫芦,大伙可以照着这个葫芦慢慢画。

引用:

画自己的瓢,让别人说去吧……

此乃武林密笈,传男不传不女!小心记好了:

引用:

1、把下面所有列出来的软件包先都下载好。
2、按照编号顺序写好脚本文件。
3、将脚本文件和软件包分组放在文件夹里面。
4、利用LiveCD将所有下载好的软件包和脚本文件加载进入LFS系统。
5、退出LiveCD,重新进入LFS,转到存放软件包和脚本的目录里。
6、将所有脚本的属性设置为可执行,例如:chmod +x 01libpng-1.2.12。
7、按编号先后顺序执行脚本文件。

这样,机器就自动给你安装软件包了!要注意软件包的版本号!包的安装顺序是排好的。当然,俺还是喜欢这样做:
./01libpng-1.2.12 && ./02expat-2.0.0 && ./03freetype-2.1.10 && 厖
哈哈,这种方法,老少皆宜!童叟无欺!下面是需要下载的软件包和相关脚本文件。

从LFS到BLFS轻松上手相关推荐

  1. linux 6.4 安装dns,Linux 轻松上手 架设 CentOS 6.4 DNS+FTP ndash;(六)、安装设定vsftp

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? Linux 轻松上手 架设 CentOS 6.4 DNS+FTP –(六).安装设定vsftp 1.安装vsftp yu ...

  2. LFS、BLFS、ALFS、HLFS的区别

    2019独角兽企业重金招聘Python工程师标准>>> Linux From Scratch (LFS) 及其后代代表一种新方法,向用户揭示 Linux 操作系统是如何工作的.LFS ...

  3. 公开课 | 如何轻松上手华为最新开源框架MindSpore?

    人工智能广泛应用在各个行业,相应开发者群体也变得丰富多样.他们往往来自不同专业,在不同领域不同场景下进行开发实践,这也造成了 AI 开发者人才的学习成本很高,在专业技能的学习之外还需要理解产业需求和应 ...

  4. 轻松上手系列教程java_小白也能轻松上手的Prometheus教程

    这篇文章将承接此前关于使用Prometheus配置自定义告警规则的文章.在本文中,我们将demo安装Prometheus的过程以及配置Alertmanager,使其能够在触发告警时能发送邮件,但我们将 ...

  5. LFS、BLFS、ALFS、HLFS的区别详解

    Linux From Scratch (LFS) 及其后代代表一种新方法,向用户揭示 Linux 操作系统是如何工作的.LFS 基于这样的假设,即一部分一部分地编译完整的操作系统不仅能够揭示操作系统是 ...

  6. 实时计算轻松上手,阿里云DataWorks Stream Studio正式发布

    2019独角兽企业重金招聘Python工程师标准>>> Stream Studio是DataWorks旗下重磅推出的全新子产品.已于2019年4月18日正式对外开放使用.Stream ...

  7. 从入门到入土:Python爬虫学习|Selenium自动化模块学习|简单入门|轻松上手|自动操作浏览器进行处理|chrome|PART01

    此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...

  8. 轻松上手,设计无忧,三款在线图片编辑器必不可少

    随着疫情渐渐的离开,紧张激烈的工作也随之而来,新媒体运营小编,又开始为了各种运营文案,公众号推广文章,网站banner进行设计和更换,想要快速的完成的工作,那么小编觉得以下的三款在线图片编辑器http ...

  9. Excel读写合集:Excel读写小白从不知所措到轻松上手

    可以住高楼,无惧在深沟.光万丈亦可,一身锈何妨. 有目录,不迷路 前言 干货 Excel写入篇 Excel读取篇 Excel进阶篇 前言 本篇博客总结了下最近自己写的excel读写系列,看完之后应该可 ...

最新文章

  1. 只要可能,就缓存数据和页输出
  2. 《Akka应用模式:分布式应用程序设计实践指南》读书笔记1
  3. 关于xilinx fir use reloadable coefficient的用法
  4. oracle json 搜索,oracle 正则查询json返回报文中某个字段的值
  5. 智能实验室-全能优化(Guardio) 4.92.0.812
  6. 数组字典_VBA数组与字典解决方案第1讲:函数,公式,数组,数组公式的概念...
  7. 修改Header方法
  8. Spring Boot 2.x基础教程:Swagger静态文档的生成
  9. IE6/7兼容问题:巧用label去除submit按钮的黑框线
  10. rsync+sersync大数据T级以上进行同步方法
  11. 在linux下做源码免杀,Cobaltstrike免杀从源码级到落地思维转变
  12. 【MySQL】mysql死锁以及死锁日志分析
  13. 实战ReactNative 从入门到精通 重要技术解析,5分钟搭建iOS, Android App 实战一
  14. 百旺智能编码_百旺税控盘如何增加商品编码?
  15. web前端课程设计源码大全(HTML+CSS+JS)
  16. 数据结构——二叉树相关练习题
  17. 云上解锁Web3.0 阿里云XR平台助力彼真科技呈现沉浸式演唱会
  18. python arcgis 批量裁剪栅格文件
  19. springMVC实现jsonp的跨域请求
  20. Java建立长链接的方式_java http长链接(keep-alive)导致的问题

热门文章

  1. (b)液晶屏是LVDS接口如何实现点屏?
  2. 重构数据基础设施,打造金融“新基建”
  3. 接收支付宝的POST异步通知(回调)
  4. windows内存映射文件【学习笔记】
  5. iPhone12和华为mate40哪个好?看看网友们怎么说
  6. 【转】查看 Linux 发行版名称和版本号的 8 种方法
  7. 保护网络安全的IPsec,怎么配置?配置步骤和参考命令奉上
  8. 什么是源,什么是镜像
  9. 攻击篇--网络扫描(三)漏洞扫描
  10. 冬季使用笔记本电脑五大禁忌