LFS编译过程必备辅助手册(一)

作者: PHILO 米油 译者:

| 2014-07-18 10:36:00   评论: 0

很多人对Linux进行了一定的学习之后,都会有一种自己从头搭建一套Linux的想法,在这方面LFS和Gentoo都是不错的起点。不过虽然它们已经尽量提供详细文档了,但对于初学者来说还是存在一定的困难的。

因此本站特邀 PHILO (@看见微软我就跑)和 米油 两位同学将他们自己学习LFS的经验分享给大家,也希望大家一起来参与到LFS之旅中。

前言

LFS(Linux from scratch)是从源代码开始编译Linux操作系统。如果需要深度定制Linux操作系统或者需要更加深入学习Linux的学习者可以从这里开始您的旅途。这份意义的深渊不必多说。 同时也希望您能加入我们一起开始这段旅程: →加入我们←

从7月初开始我们团队里面两个人为了更加深入的学习Linux方面的知识。也为了瞻仰LFS大神们的光辉。 开始了LFS的旅程,因为LFS官方文档写的虽然非常具体,但是多多少少对于一些Linux新手来说造成很多困扰。

因此我们团队做完LFS之后写了这篇辅助性质的说明,对新手遇到问题的时候提供帮助。

进行LFS旅程的前提条件

  1. 比较熟悉Linux操作
  2. 有一定Linux开发基础
  3. 在LFS之前有过从源码编译软件的经验。
  4. 有一定的英文基本功,除了看手册之外,有的时候抛出错误的时候应该有google查找并解决错误的能力。

文档使用方法:

  1. 首先对本辅助文档完整的浏览一遍,这样有助于理解LFS的整个过程做什么
  2. 然后扫一遍LFS官方文档的目录,这样至少知道每个章节的目的。
  3. 当你进行到LFS某一步时,遇到问题后可以对应上本辅助手册的具体问题的解决方案

LFS全过程概括

  1. 对磁盘的准备和用户的准备
  2. 建立temp系统
  3. 编译LFS系统
  4. 最后调整

LFS 编译完成的成果

LFS在编译完成的最后除了Linux基础内核目录结构(bin etc lib proc dev等等这些)还有一个tools这个目录(过程概括中的第2部分),它的存在是为了编译LFS整个系统的。所以在第五章这一部分中,就是利用ubuntu或centos主机系统的编译环境(称之为HOST)来编译出tools这个目录下的编译环境。

提示:其实制作LFS所有用到的工具链接,就是在ubuntu或centos下编译出一个新的交叉编译器(就是/tools目录下的所有工具),而这个新的交叉编译器在编译出来后,就不会依赖于现有操作系统编译器和库文件(ubuntu or centos),此时我们就可以利用这个全新的交叉编译工具(/tools目录下的所有工具)制造属于我们自己的Linux了,利用这个新的工具,从源码开始编译出所有我们需要的软件和库,最后编译Linux内核,设置bash脚本,启动脚本,tmpfs文件系统需要的配置文件,整个LFS的过程就结束了。

A: Linux发行版本的选择

  1. CentOS 6.3 (虚拟机双硬盘)
  2. Ubuntu 14.04 with GCC4.4(64bit) (笔记本电脑+双硬盘+LFS系统构建在SSD硬盘上)
  3. 在以上两种Linux发行版上分别进行编译运行,且最终都取得成功。
  4. 使用LFS官网上LFS7.5的源码进行编译制作

B:前四章的内容:硬盘分区、用户准备篇

主机所用操作系统的准备工作: (ubuntu14.04 64位下需要安装的软件)

1.在ubunt下安装bison(ubuntu下默认没有安装)

sudo apt-get install bison 
#LFS 手册要求

2.不能用gcc4.8,需要换成gcc4.4(ubuntu14.04默认gcc4.8)

 sudo apt-get install gcc-4.4 g++-4.4
 sudo rm `which gcc`
 sudo rm  `which g++`
 sudo ln -sv /usr/bin/gcc-4.4  /usr/bin/gcc
 sudo ln -sv /usr/bin/g++-4.4  /usr/bin/g++

这里CentOS没有什么特别要说的。主要因为全部都用默认的,就可以了。各种依赖C6-Media就可以解决

3.到LFS官网上下载LFS7.5的所有源码: ftp://ftp.lfs-matrix.net/pub/lfs/lfs-packages/

1.磁盘分区准备

  1. plan: 准备一个10到20GB的分区,这一步请谨慎操作
  2. action: 创建分区(表)并格式化。创建分区表请使用fdisk , 如果需要图形界面下的请使用GPartion,如果这两种工具都不会请到windows下分区(无需格式化)
#格式化分区
sudo mkfs -v -t ext4  /dev/sdaX #这里的X是填上自己的分区号

PS:因为现在计算机的内存都比较大,所以可以不需要swap分区。(第一次进行LFS,一个根“/”分区就够了,等以后有经验了,在进行多分区的操作)

2.用户准备

直接参考手册上的来就行了。

小建议:

PS1='[[\e[32m]###[\e[31m]\u@[\e[36m]\h \w]\$[\e[m]'

PS1修改成这个变量看着能舒服点。

注意:每次开机,或是重启后,在进入lfs用户前,都要对 LFS变量进行检查,查看LFS=/mnt/lfs变量是否存在,然后对lfs使用的分区进行挂载

前四章的小结:

  1. 这一部分没有什么难点,准备硬盘分区是因为要让LFS作为独立的硬盘来启动。新建分区、格式化分区、准备lfs用户是Linux操作的基础素质。 注意 :为了下面的编译过程能更快,可以在输入make命令时在后面加入-j4,使用4个进程进行同时编译,在多核处理器上编译的速度有明显提升


最新评论


友情链接
返回顶部