高手从零开始的全定制发行版-Linux from Scratch

在制作Linux发行版中Linux from Scratch可谓是真正的大师级。Linux from Scratch是在线的社区创建的一本电子书,目的是帮助那些根深蒂固的想方设法提高计算机性能的人(tweaker)帮助他们来创建自己毫无争论的独一无二的发行版本。

Linux from Scratch

困难程度:高;时间需求:200分钟;自定义程度:极高

对于想自定义他们的发行版本中所有的东西,从核心驱动的选择到默认文本编辑器是Vi还是Emacs的真正的Linux强者,没有比通过scratch来搭建你自己的核心和每个重要的组件更彻底的方法了。这就是Linux From Scratch的存在的意义。LFS(Linux from Scratch)是在线的社区创建的一本电子书,目的是帮助那些根深蒂固的想方设法提高计算机性能的人(tweaker)帮助他们来创建自己毫无争论的独一无二的发行版本。

电子书本身(在这个月的封面光盘上可以找到)包含了你需要知道的所有的细节,从构建跨平台的编译器到使用chroot来建立你的用户环境。然而,在你创建你的LFS系统的时候仍有许多骗人的把戏(gotchas)需要你注意。但是,我们已经把这些困难的部分提出了,所以你不用担心了。下面是这本电子书的精华LXF,每一条对于每个人来说都意味着大脑充血的,满头大汗的不眠之夜。我们的测试根据LFS6.3,因为这个稳定的live CD包含了我们需要的所有的工具,软件包和补丁,但是如果你想要最新最强大的LFS(我们要出版6.5),那么所有的电子书涵盖了怎样用你的主流的发行版本来搭建LSF系统。无论你选了哪条路,这些提示会帮助你无争议的安装!

Linux from Scratch电子书版格式清晰,并且保证每个阶段准确到位。

分区

当你开始初始化cfdisk的时候,最常见的错误是退出的时候没有保存你的修改(人们然后就想知道为什么mke2fs提示‘dev/hda1 不存在 ‘错误),所以在你提交你的程序之前一定要再一次检查你的分区对于你用户的系统是可用的。

本地源

如果你使用LFS live CD,你所有的工具,源和补丁都被存储在/lfs-sources中。一旦你建立了 ‘lfs‘ 用户,推荐你把这些源拷贝这些到 $LFS/sources ,因为你之后将可以正确的完成大多数阶段而不需要root允许。如果你遇到了任何问题,再一次检查你的工作目录是不是 $LFS/sources。下面的命令将返回 /mnt/lfs :

echo $LFS

引导

你一次你运行GCC构建的时候(使用‘bootstarp‘选项),我们推荐你离开去喝一杯咖啡。然后去喝另一杯,这个特殊的阶段需要花费一些时间,因为你要编译三次GCC,然后把第三次构建和第二次构建比较。这个的要点是检查第二次和第三次构建是否相同,这个可以显示你第一次构建的GCC时候是正确的。

跳过bootstarp是可能的,但是我们不推荐那样做,因为这样有可能会增加奇怪的错误,而且这些错误后边不容易诊断出来。刚刚接触LFS分散的用户在很多论坛里发贴子想要知道为什么GCC要话那么长时间来构建并且问这样是否正常。确实是这样,但是现在足够的耐心,将来出现的问题就会更少。

在对应的主题中,对于搭建过程来说是经常出现的,在你已经决定要花更长时间而不是你短暂的记忆可以记住的那么短的时间来完成你的安装。确认你没有什么忘记做的事,否则稍后就会出现错误,你不得不返回去来修复你的错误。

核心API 总管(hernel API headers)

通常出现的错误是误以为kernel API headers包含在你的软件包里。这个不是问题,你需要提取内核源码包(通常是linux-2.6.x.tar.bz2的格式)然后根据电子书中的步骤移动提取路径。

Shell的古怪举动

在你开始你的LFS搭建之前,了解Bsah的精妙之处是很重要的。你会创建系统链接、写多行命令(这意味你看见了,你需要跟着按回车)。你可以在电子书的格式上发现这个问题。在整个电子书多行的命令中的每一行不会包含 > (尽管你会在终端中看见)。然后,如果你在电子书里看见了 > ,确定你敲命令的时候也输入这个字符。我们可能没有察觉这个意外而这样写:

gcc -dumpspecs | sed ‘[email protected]^/lib/[email protected]/tools&@g‘
> `dirname $(gcc -print-libgcc-file-name)`/specs

这样就会出现奇异的错误状态,文件不存在。第二行应该是这样:

> > `dirname $(gcc -print-libgcc-file-name)`/specs

大量时间和奉献,你可以搭建出像Nutyx一样有用的版本。

不要排版(typos)

如果你使用主流的发行版本作为你的主系统,我们衷心地推荐在shell中使用拷贝和粘贴命令。这主要是因为这样不会出现拼写错误,而拼写错误可能会在后边的过程中引发新的错误(这个问题通常只能使用完全重新构建的方法来解决)。对于那些一定要手动输入或者是使用live CD的人,一定要在你执行命令之前反复检查,反复检查你使用了类型正确的括弧。手动输入在开始的时候会有意义,但是最终你会遭遇这头特殊的野兽命令(beast):

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

我们试着一次性输入全部这些内容,偶然使用了单独的括号,这会使所有抹杀掉所有我们已经做对的事情!你可以通过拷贝和粘贴或者在你看见&&时单独地输入每一行。

别掉以轻心

在GCC第二次通过的时候,配置会变得很简单而且可以通过同样的步骤来安装一系列软件包:

./configure --prefix=/tools
make
make install

然而,这个不是一直都有效,通过工作环境和LFS的补丁你会跟快的命中(hit)软件包,使它们正确的工作。基于这个原因,你必须一有时间就频繁地查阅电子书,这样才能避免奇怪的行为和之后有可能出现的错误。

转移到root

你应该以用户 ‘lfs‘ 来登录系统,但是一旦你执行命令的时候你就应该贴换到root。你可以通过按住Alt和右箭头键(你可以使用有箭头键按钮回到 lfs 用户)。在这个步骤中一定要按电子书中说的做备份。所有的这些可能导致的是在一个错误的路径中执行了一个糟糕的rm命令,这会使你几个小时的辛苦劳动付之东流。你可以通过下面的命令创建一个存档(因此挽救了一些空间):

tar -cvf --file=$LFS/tools/lfs_build.tar $LFS/tools

然后拷贝压缩包到外部存储介质或者是你能轻松恢复系统的地方。即使你没有使用存档备份,将来你也可以使用它迅速地搭建另外的LFS系统。

搭建你梦想的发行版本

Linux From Scratch伴随着电子书,打开超越Linux from Scrach搭建一个可扩展的、自定义的,标准的基于LFS的系统的无限可能的窗户。LFS论述了软件包管理也论述了怎样搭建桌面环境和一般的软件包。

想要看Linux from Scratch到底能做多少,那么你看看Nutyx吧(www.nutyx.org)。这是法语的网站,到现在为止还没有使用英语的选项,但是这个发行版本已经有了全面的桌面和应用程序套装,非常好用。

LFS关键的事是你可以完全掌握哪些补丁和更新可以被应用。所有的都是从源代码编译来的,所以它像闪电一样快。你总是可以选择是否升级内核,哪些软件可以,哪些软件不可以在你的系统上运行。这可能会话费一些时间来完成这种发行版本搭建天堂,之后还学要去维护它,但是结果是值得的。

或者是Gentoo的方式

如果你不能获得有足够自定义潜力的发行版本,那么看一看Gentoo是值得的。和Arch Linux类似,Gentoo支持滚动升级,但是不像Arch,Gentoo给你选用Linux还是BSD作为核心的选择。同时它也包含了300个开发者维护的10,000个软件包的服务,这些软件包通过Gentoo社区要求的,Linux世界中最高级的软件包管理系统来分发(叫做Portage)。

Gentoo从源代码编译所有的软件包,旨在获得稳定的系统,然而Arch Linux安装二进制包旨在成为自由软件开发的尖端。你使用哪个版本是由你的目的和你想控制多少而决定的,但是如果你不能在Arch 和Linux From Scratch中做出选择的话,Gentoo值得你一试。

Gentoo是同样喜欢LFS和Arch Linux的人的一个更好的选择。

时间: 2024-09-30 21:05:36

高手从零开始的全定制发行版-Linux from Scratch的相关文章

从零开始学习hadoop之发行版选择

从零开始学习hadoop之发行版选择 经常会看到这样的问题:零基础学习hadoop难不难?有的人回答说:零基础学习hadoop,没有想象的那么难,也没有想象的那么容易.看到这样的答案不免觉得有些尴尬,这个问题算是白问了,因为这个回答似乎什么也没给出来.这个问题的关键在于"零基础"到底是个什么样的基础? 所谓的零基础大体可以分为两种:第一种是hadoop初学者,有一定的Linux基础.虚拟机和Java基础:第二种是hadoop兴趣爱好者,但缺乏最基本的Linux基础.虚拟机和Java基础

CentOS和Redhat发行版linux内核版本的对应关系

由于Redhat和CentOS的发行版本现在众多,所以我们应该知道CentOS和Redhat及linux内核之间版本的对应关系对维护系统还是很有帮助的.对应的列表如下: Redhat 9.0———————————————2.4.20-8 RHEL 3 Update 8————————————2.4.21-47 RHEL 4 ————————————————2.6.9-5 RHEL 4 Update 1————————————2.6.9-11 RHEL 4 Update 2————————————

2016年如何选择 Linux 发行版

不管是在企业级应用还是在消费者领域,2015 对于 Linux 来说都是极其重要的一年.作为一个从 2005 年就开始使用 Linux 的老用户,我有幸见证了 Linux 过去这 10 年里的重大发展,并且,我相信它在 2016 年里会更加令人激动.在这篇文章里,我会挑选几个将在 2016 年里大放光彩的最佳发行版给大家介绍一下. 强势归来的发行版:openSUSE SUSE 是 openSUSE 发行版背后的公司,同时也是起步最早的 Linux 公司:它在 Linus Torvalds 发布

2016:如何选择 Linux 发行版

不管是在企业级应用还是在消费者领域,2015 对于 Linux 来说都是极其重要的一年.作为一个从 2005 年就开始使用 Linux 的老用户,我有幸见证了 Linux 过去这 10 年里的重大发展,并且,我相信它在 2016 年里会更加令人激动.在这篇文章里,我会挑选几个将在 2016 年里大放光彩的最佳发行版给大家介绍一下. 强势归来的发行版:openSUSE SUSE 是 openSUSE 发行版背后的公司,同时也是起步最早的 Linux 公司:它在 Linus Torvalds 发布

Linux发行版

Linux 发行版(英语:Linux distribution,也被叫做GNU/Linux 发行版),为一般用户预先集成好的Linux操作系统及各种应用软件.一般用户不需要重新编译,在直接安装之后,只需要小幅度更改设置就可以使用,通常以软件包管理系统来进行应用软件的管理.Linux发行版通常包含了包括桌面环境.办公包.媒体播放器.数据库等应用软件.这些操作系统通常由Linux内核.以及来自GNU计划的大量的函数库,和基于X Window的图形界面.有些发行版考虑到容量大小而没有预装 X Wind

linux的发行版

一个典型的linux发行版包括linux内核,一些GNU程序库和工具,命令行shell,图形界面的XWindow系统和相应的桌面环境,如KDE,或GNOME,并包含数量众多的办公套件,编译器,文本编辑器,科学计算工具等应用软件. linux发行版=linux内核+商业软件 linux常见的发行版本: 1.Debian  Debian GNU/linux 不单是个操作系统,也包含一万多个软件包,软件包是一些已经编译过的软件,并   包装成一种容易安装的格式.迄今为止最遵循GNU规范的linux系统

Linux发行版CentOS系列系统的安装过程

Linux系统CentOS发行版的安装流程: 内核空间的引导启动过程:POST(加电自检) --> BootSequence(BIOS) [MBR引导,顺序启动阶段BootSequence]--> BootLoader(GRUB(stage1--stage1_5--stage2))[顺序引导] --> kernel [initramfs|initrd] (devtmpfs,dev,proc,sys)[内核引导,设备加载] -- switched-root(ro) [执行根切换,虚根切换为

linux主要的发行版及其区别和联系

1. 主要发行版 linux主要发行版有3类: (1).Debian (2).Slackware (3).Redhat (1)Debian Ubuntu 针对桌面和服务器 knopix 以安全著称 (2).Slackware 以其分支SUSE及其子分支 S.U.S.E for服务器 OpenSUSE 桌面SUSE (3).Redhat RHEL 每18个月发行一次 Fedora 每6个月发行一次 Centos Community Enterprise OS 2. 联系与区别 联系 (1).所有的

Linux内核版本 uname命令 GNU项目 Linux发行版

1.内核版本由linux内核社区统一编码和发布,格式如下图: major.minor.patch-build.desc 主版本号.次版本号.对次版本号的修订次数-编译次数.当前版本的特殊信息 次版本号有奇数和偶数之分,奇数表示开发版,偶数表示稳定版 desc:常见参数EL(Red Hat企业版Enterprise Linux).pp(Red Hat测试版).fc(Red Hat中Fedorca Core).smp(对称多处理器).rc/r(候选版本,后面的数字越大越接近正式版) 2.uname