LinuxFromScratchv62中文版合译.docx
- 文档编号:10055563
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:16
- 大小:23.99KB
LinuxFromScratchv62中文版合译.docx
《LinuxFromScratchv62中文版合译.docx》由会员分享,可在线阅读,更多相关《LinuxFromScratchv62中文版合译.docx(16页珍藏版)》请在冰豆网上搜索。
LinuxFromScratchv62中文版合译
LinuxFromScratch-版本6.2
谨以本书献给以及所有热爱Linux的人们。
译者:
(0-5章)ipconfigme(6-7章)bobkey(8-9章)
发布日期:
2008年3月1日[最终正式版]
[致谢]感谢之前的LFS5.0和6.0翻译小组,没有他们之前辛勤工作积累的资料单靠我们3个人是不可能完成这项工作的。
同样也要感谢所有指出预览版中错误的朋友以及对中译本提出建议与期望的朋友(随机顺序):
fisowRobot5tonytopcnhnlnyoubestleivd00m3dasdmusiccrandyworldjuwen_zhong晨想alexlee1216sonic_yqkikiwarmshooterx_crdjnilpttlinlin911911,是你们让中文版更加完美。
[译者声明]本手册虽然不是软件,但是本着GPL的精神发布。
任何人都可以自由使用、分发、转载,包括对本文档进行各种商业性或是非商业性的复制和再分发,但必须保留译者署名,亦不得对声明中的任何条款作任何形式的修改,也不得附加任何其它条件。
您可以自由链接、下载、传播此文档,或者放置在您的网站上,甚至作为产品的一部分发行,但前提是必须保证全文完整转载,包括完整的版权信息和作译者声明。
这里"完整"的含义是指不能进行任何删除/增添/注解。
若有删除/增添/注解,必须逐段明确声明那些部分并非本文档的一部分。
[题外话]大部分LFSer都认为学习LFS需要有熟练使用Linux的基础,并且大部分听说过LFS的人都有一个印象:
那是高手的玩具,不是我等菜鸟玩得了的……我不完全赞同,我认为基础如何并非关键,契而不舍的精神和强烈的求知欲才更加重要。
想想自己接触Linux一个月左右的时候就有了和Gerard一样的想法,因为在学习RedHat/Fedora/Debian甚至是Gentoo的时候,我感觉到自己并不是在学习Linux而是在学习这些发行版各自的专有特性,他们把Linux本来的面貌层层包裹起来,让我不能深入理解背后的机制。
并且这些版本各自有自己的优点和缺点,不能完全满足我的要求。
其实那时候我的Linux水平仅仅限于会在控制台上敲几个ls之类的命令,从未编译过软件,连make都没听说过呢。
但是我迫切想知道如何定制一个完全适合自己的Linux系统,问了好多Linuxer,把Google搜了个底朝天,也未能得到完整性的答案,唯一让我印象深刻的就是能够容纳在一张软盘上的babyLinux,但是它显然太简单,不能满足我的要求。
一直郁闷了很久,好不容易机缘巧合,Qoo兄弟叫我来LinuxSir.Org论坛的LFS版看看,当时论坛上只有一份不完整的LFS6.0中文版,看完序言后,我激动的跳了起来,欢呼不已!
这就是我梦寐以求的东西啊!
于是在尚未安装过LFS的情况下,静下心来花了十多天时间先完整的翻译了LFS6.1,又花了5-6天时间,一行命令一行命令地完成了LFS的全过程。
在学习LFS的20天里,我对Linux的理解发生了质的飞跃。
大约没有人赞同学习Linux可以从LFS开始,这确实有一定的道理,但是LFS教给你的都是真正的Linux"基础知识",并且这些知识可以为将来的进一步学习打下绝对扎实的基础。
所以我要用自己的亲身经历鼓励那些刚刚接触Linux的新生牛犊勇敢的从LFS开始:
没有基础不要紧,缺什么补什么!
当你把LFS做完了,也就脱离"菜鸟"的行列了,用LFS给你的强大翅膀,勇敢地继续飞翔吧!
译者十分愿意与他人共享劳动成果,如果你对我的其他翻译作品或者技术文章有兴趣,可以在如下位置查看现有作品的列表:
∙
∙序言
o
o
o
o
o
o
o
∙I.简介
o1.简介
▪
▪
▪
▪
▪
∙II.构建前的准备工作
o2.准备一个新分区
▪
▪
▪
▪
o3.软件包和补丁
▪
▪
▪
o4.最后的准备工作
▪
▪
▪
▪
▪
▪
o5.构建临时编译环境
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
∙III.构建LFS系统
o第六章安装系统基础软件
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
o7.配置系统启动脚本
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
o8.使LFS系统能够启动
▪
▪
▪
▪
o9.结束
▪
▪
▪
▪
∙IV.附录
o
o
o
∙
序言
i.前言
我在linux上的冒险始于1998年,那时我下载并安装了我的第一个发行版。
在用它工作了一段时间之后,我发现了很多我认为需要改进的问题。
例如,我不喜欢启动脚本的排列顺序、某些程序的默认设置。
我尝试过许多不同的发行版来解决这些问题,但是每个发行版都有各自的优点和缺点。
最终,我意识到如果我想对我的Linux系统完全满意,我必须从头构建我自己的系统。
这是什么意思呢?
我决心不用任何预先编译好的软件包,也不用可以安装基本系统的CD-ROM或启动盘。
我将使用现有的Linux系统来开发自己定制的系统。
这个"完美的"Linux系统将拥有各种发行版的优点而没有它们的缺点。
开始的时候,这个想法看起来是困难到令人感到畏惧的,但是我仍坚持这个想法,一个符合我特定需求的系统是可以构建起来的,并且不会建立一个标准却不符合我需求的系统。
在处理好诸如循环依赖和编译错误等各种问题之后,我创建了一个定制的Linux系统,这个系统功能完整并且适合我个人的需求。
这个过程也使得我可以建立精简而紧凑的Linux系统,这样的系统比传统的发行版速度更快而且占用的空间更少。
我称之为LinuxFromScratch系统,或简称为LFS系统。
当我把我的目标和经验与Linux社区的其他成员分享的时候,很显然别人也有同样的想法。
这样定制的LFS系统不仅可以满足用户的规范和需求,而且也给程序员和系统管理员们提供一了个理想的提高他们Linux技能的机会。
由于有这样广泛的兴趣和需求,LinuxFromScratch项目诞生了。
这本LinuxFromScratch指导书给读者提供了设计并构建自定义的Linux系统的背景知识和过程指导。
本书的重点是LinuxFromScratch这个项目以及使用LFS系统带来的好处。
用户可以控制系统的所有特征,包括目录布局、脚本设置和安全设置等等。
最终的系统将从源代码直接编译生成,用户可以指定在哪里安装、为什么安装以及怎样安装每一个程序。
本书使得读者可以完全按照自己的需求定制他们的Linux系统,而且使用户对他们的系统有更多的控制权。
希望您在自己的LFS系统上工作愉快,享受真正属于你自己的系统所带来的各种好处。
[译者注]"FromScratch"是一个词组,它的意思是"从零做起,白手起家,从无到有"的意思,因此"LinuxFromScratch"本质上不应当理解为一个发行版名称。
它最贴切的含义应当是一种"方法/思想":
一切从源代码开始的方法/思想。
ii.目标读者
为什么要读这本书呢?
有许多原因,最主要的原因是可以学习如何直接从源代码安装一个linux系统。
许多人也许会问:
"当你可以下载和安装一个现成的linux系统时,为什么要如此麻烦地从源代码开始手动构建一个linux系统呢?
"这是一个好问题,也是本书存在本节的原因。
LFS存在的一个重要原因是可以帮助人们学习linux系统内部是如何工作的。
构建一个LFS系统会帮助演示是什么使linux运转,各种组件如何在一起互相依赖的工作。
最好的事情之一通过这种学习可以获得完全根据自己的需求定制linux系统的能力。
LFS的一个关键的好处是它让用户对于系统有更多的控制,而不是依赖于他人的linux实现。
在LFS的世界里,你自己坐在司机的位置,掌控系统的每一个细节,比如目录布局和启动脚本配置等等。
你也能掌控在哪里、为何、以及怎样安装每一个程序。
LFS的另一个好处是可以创建一个非常小巧的linux系统。
当安装一个常规的发行版时,人们经常要被迫安装一些可能永远不会用到的程序。
这些程序浪费宝贵的磁盘空间,或更糟的是占用CPU资源。
要构建一个少于100兆(MB)的LFS系统并不困难,这比目前大多数的发行版要小很多。
这听起来是不是仍然占用太多空间?
我们中的一些人专注于创建非常小的嵌入式LFS系统。
我们成功的构建了一个只运行Apache服务器的系统,大约占8MB磁盘空间。
进一步的缩减能够减至5MB或更少。
你用一个常规的发行版试试?
!
这也只是设计你自己的linux所带来的好处之一。
[译者注]关于如何构建这样的Apache服务器系统的详情,请参见youbest兄的两篇大作"[5M]"和"[600K]"。
此外,本文译者金步国也有一篇文章,详细讲述了如果从源代码编译一个既实用又小巧的Linux+Apache+PHP+PostgreSQL+OpenSSH+Iptables服务器,如果你对服务器情有独钟,也很值得参考。
我们可以拿linux发行版与快餐店出售的汉堡打比喻,你不能决定自己正在吃的是什么。
相反,LFS没有给您一个汉堡。
而是给您一张制作汉堡的配方。
用户可以查阅配方,减掉不想要的配料,增加你自己的配料以增强汉堡的口味。
当你对配方满意时,开始去制作它,您可以采用任何你喜欢的方式:
或烤、或烘、或炸、或焙。
另外一个比方是把LFS与建筑房子比较。
LFS提供房子的框架蓝图,但是需要您自己去建筑它。
LFS包含了在这过程中调整计划的自由以及定制满足用户需求的参考。
自己定制linux系统的另一个好处是安全性。
通过从源码编译整个系统,您能够审查任何东西,打上所有的安全补丁,而不需要等待别人编译好修补安全漏洞的二进制包。
除非是您发现并制作的补丁,否则您无法确保新的二进制包一定被正确编译并修正了问题。
LinuxFromScratch的目标是构建一个完整的、可以使用的基础系统。
不想构建自己的linux系统的读者,不会从本书中获益[译者不太赞同这句话,借用d00m3d的一句忠告:
"對任何想深入了解的Linux愛好者,不論你現用哪個發行版,最少都應該做一次LFS,一定會終身受用的。
"]。
如果您仅仅想了解计算机启动的时候做了什么,我们推荐您查看"FromPowerUpToBashPrompt"HOWTO文档,中文版位于,英文原版位于或者linux文档工程(TLDP)网站。
那个HOWTO构建了一个类似本书的系统,但是它的焦点仅仅限制在创建一个能够启动并进入到BASH提示符的系统。
想想您的目标,如果您想构建一个实用的linux系统并通过这种方式进行学习,那么本书是您的最佳选择。
构建您自己的LFS系统的若干原因以上都列出来了。
本节只是冰山一角。
随着您LFS经验的增长,您将会发现LFS真正带给您的信息和知识的力量。
iii.先决条件
创建LFS系统并不是一项非常简单的任务。
它需要有一定的Linux系统管理知识,以便能够解决问题和正确执行命令。
作为最低要求,读者必须具备使用命令行(shell)来运行cp,mv,ls,cd等命令的能力。
我们还希望读者具备使用和安装Linux软件的基本知识[非必须]。
这里有一篇,可以帮助你理解下面的"Software-Building-HOWTO"。
因为本书假定读者至少具备了上述技能,各个LFS论坛也不太可能涉及上述基础知识,你可能会发现关于上述基础知识的问题在这些论坛中无人理睬,或者仅仅得到一个指向下述LFS预备知识的连接。
在构建一个LFS系统之前,我们推荐您先阅读下列HOWTO[看英文吃力的读者不看也没关系]:
∙Software-Building-HOWTO
这是一份详尽的关于在Linux下编译安装"一般的"Unix软件的指南。
∙TheLinuxUsers'Guide
这份指南涵盖了各类Linux软件的用法。
∙TheEssentialPre-ReadingHint
这是一份专为Linux新手而写的LFS提示,包括一份链接列表,这些链接的信息源包含的主题非常广泛而且内容很棒。
任何想安装LFS的人都应该对这份提示里的许多主题有所了解。
∙LFS初学者注意事项
这是LinuxSir.Org上LFS版主"终极幻想"专为LFS新手而写的注意事项,中文的哦!
iv.对宿主系统的要求
你的宿主系统应当安装了下列软件,并且不低于指定的版本号。
这些要求对于大部分现在的Linux发行版来说不成问题。
另外要注意的是许多发行版会将软件的头文件额外单独打包存放,常见的名称为"<包名称>-devel"或"<包名称>-dev"。
如果你的发行版提供了这些包请务必确保已经安装了它们。
∙Bash-2.05a
∙Binutils-2.12(不推荐使用大于2.16.1的版本,因为尚未经过测试)
∙Bzip2-1.0.2
∙Coreutils-5.0(或者Sh-Utils-2.0,Textutils-2.0,和Fileutils-4.1)
∙Diffutils-2.8
∙Findutils-
∙Gawk-3.0
∙Gcc-2.95.3(不推荐使用大于4.0.3的版本,因为尚未经过测试)
∙Glibc-2.2.5(不推荐使用大于2.3.6的版本,因为尚未经过测试)
∙Grep-2.5
∙Gzip-1.2.4
∙LinuxKernel-2.6.x(必须是GCC-3.0以上版本编译的)
对内核版本的这两个要求是因为:
如果宿主系统的内核版本低于2.6.2或者不是用GCC-3.0以上版本编译的,那么Binutils将不能支持线程本地存储(thread-localstorage),同时NPTL(本地POSIX线程库)的测试程序也会出现段错误。
如果宿主系统的内核版本低于2.6.2或者不是用GCC-3.0以上版本编译的,您需要安装一个符合上述条件的新内核,然后用该新内核启动宿主系统。
有两种方法可以解决这个问题。
第一,如果你的Linux供应商提供这样的内核,你可以直接安装它;第二,如果你的Linux供应商不提供这样的内核或者你不想安装他们提供的内核,你可以自己编译一个内核。
关于编译内核和配置引导管理器(假定宿主系统使用GRUB)的指导,请查看。
∙Make-3.79.1
∙Patch-2.5.4
∙Sed-3.0.2
∙Tar-1.14
为了确定宿主系统是否满足上述要求,运行下面的命令进行查看:
cat>version-check.sh<<"EOF"
#!
/bin/bash
#Simplescripttolistversionnumbersofcriticaldevelopmenttools
bash--version|head-n1|cut-d""-f2-4
echo-n"Binutils:
";ld--version|head-n1|cut-d""-f3-4
bzip2--version2>&1
echo-n"Coreutils:
";chown--version|head-n1|cut-d")"-f2
diff--version|head-n1
find--version|head-n1
gawk--version|head-n1
gcc--version|head-n1
/lib/libc.so.6|head-n1|cut-d""-f1-7
grep--version|head-n1
gzip--version|head-n1
cat/proc/version|head-n1|cut-d""-f1-3,5-7
make--version|head-n1
patch--version|head-n1
sed--version|head-n1
tar--version|head-n1
EOF
bashversion-check.sh
v.排版约定
为了易于理解和使用,一些排版约定在本书中通篇使用,本节包含其中一些排版格式的例子。
./configure--prefix=/usr
这种样式的文本表明应该按照所看到的内容完整无误的输入,除非有另外的说明。
这种样式也用在解释部分,来表明引用了哪些命令。
install-info:
unknownoption'--dir-file=/mnt/lfs/usr/info/dir'
这种样式(固定宽度的文本)的文本表明它们是屏幕上输出的内容,可能是命令运行的结果,也有可能用来显示文件名,例如:
/etc/。
强调
这种样式的文本在本书中有几种用途,但主要是用来强调重点。
这种样式用来显示超链接,不管链接的是LFS社区内部还是外部的页面,包括HOWTO、下载链接和网站。
cat>$LFS/etc/group<<"EOF"
root:
x:
0:
bin:
x:
1:
......
EOF
创建配置文件的时候使用这种样式,第一个命令让系统创建$LFS/etc/group文件,内容是接下来输入的每一行直到文件结束符(EOF)为止。
因此,一般就是按照看到的内容整段输入。
<替代文本>
这种样式用来显示那些需要输入替代内容的文本或者是复制粘贴的内容。
[可选文本]
这种格式用来封装可选的文本。
passwd(5)
这种格式用来指向一个特定的手册页(以下简称"man")。
括号中的数字指定man中特定的章节。
例如,passwd有两个man页,按照LFS安装指令,分别位于/usr/share/man/man1/passwd.1和/usr/share/man/man5/passwd.5,这两个手册页的内容并不相同。
本书中使用passwd(5)指代/usr/share/man/man5/passwd.5。
manpasswd将会显示第一个匹配"passwd"的man页,也就是/usr/share/man/man1/passwd.1。
在这个例子中,你可能需要运行man5passwd命令来指定你想要的man页。
不过需要提醒一下的是大多数man页并不存在多个页面,也就是说man<程序名>通常就足够了。
vi.本书的组织结构
本书分为以下几个部分:
PartI-简介
PartI解释了一些安装LFS过程中需要注意的重要事项,这部分还提供了本书的一些要点信息。
PartII-构建前的准备工作
PartII描述了安装前的准备工作:
准备一个新的分区、下载软件包和建立临时编译工具链。
PartIII-构建LFS系统
PartIII引导读者逐步建立整个LFS系统:
一个一个编译安装全部的软件包,配置启动脚本并安装内核。
然后,可以在这个Linux基本系统上,根据需要编译安装其它软件包来扩展系统。
本书的结尾,是一份易用的参考,列出了所有安装了的程序、库和重要的文件,另外还有一份软件包之间的依赖关系列表。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LinuxFromScratchv62 中文版
![提示](https://static.bdocx.com/images/bang_tan.gif)