openKylin论坛

 找回密码

LFS简介与编包 [复制链接]

一、什么是LFS
LFS 是Linux From Scratch的缩写。"From Scratch"是一个词组,它的意思是"从零做起,白手起家,从无到有"的意思,因此"Linux From Scratch"本质上不应当理解为一个Linux发行版名称。它最贴切的含义应当是一种"方法/思想":一切从源代码开始的方法/思想。如果把 LFS 比作建筑房子,那么LFS 提供房子的框架蓝图,但是需要你自己建造它。
二、LFS的构造
要基于源代码的方式来编译整个系统,那首先要解决的就是工具链的问题,即需要一个编译环境。所以构造LFS系统分两大步:一是构造一个临时的编译环境;二是构建LFS系统。
    注:以下列表基于LFS-7.6整理
2.1、构造临时的编译环境
临时编译环境其实也相当于一个小的 Linux 系统。只不过这个系统将仅包含必要的工具,能够构建最终的LFS系统。构建这个小系统分两步进行,第一步是构建一个新的不依赖于宿主系统的工具链(编译器、汇编器、连接器、库文件以及一些有用的软件),第二个步骤是利用这个工具链去构建其它基本的工具。
在工具链中最基本的是:Binutils、GCC和Glibc。Binutils 是一组开发工具,包括连接器,汇编器和其它用于目标文件和档案的工具。GCC 软件包包含 GNU 编译器,其中有 C 和 C++ 编译器。Glibc 包含了主要的C库。这个库提供了基本的例程,用于分配内存、搜索目录、打开关闭文件、读写文件、字串处理、模式匹配、数学计算等等。其它的工具必须在他们的基础上建立。编包顺序依次如下表所示:





    由上表发现binutils和gcc编译了两次。原因第一遍是编译独立的环境,第二遍是用编好的环境编译独立的系统,一切只为了与宿主系统脱离关系。

2.2、构造LFS系统
chroot到一个新环境,使用上面构建的临时编译环境开始编译真正的系统。编包顺序如下:






   
三、kylin编包     
    沿用2.1中的编包顺序,将2.2里2.1中未涉及的包追加

binutils
gcc
kernel
glibc
libstdc++
tcl
expect
dejagnu
check
ncurses
bash
bzip2
coreutils
diffutils
file
findutils
gawk
gettext
grep
gzip
m4
make
patch
perl
sed
tar
info
util-linux-ng
xz
man-pages
zlib
gmp
mpfr
pkgconfig
attr
acl
libcap
shadow-utils
psmisc
procps
e2fsprogs
setup
flex
bison
readline
bc
libtool
gdbm
expat
net-tools
iputils
ftp
tftp
telnet
traceroute
perl-XML-Parser
autoconf
automake
intltool
gperf
groff
grub
less
iproute
kbd
module-init-tools
upstart
udev
man
vim



楼主
发表于 2018-2-6 17:12:01
回复

使用道具 举报

LFS简介与编包 [复制链接]

五年前我弄过一遍,之后忙起来就没什么映像了。等退休了再弄2-3遍。
沙发
发表于 2018-2-20 16:38:03
回复

使用道具 举报

LFS简介与编包 [复制链接]

chenxiaopang 发表于 2018-2-20 16:38
五年前我弄过一遍,之后忙起来就没什么映像了。等退休了再弄2-3遍。

我也差不多
板凳
发表于 2018-3-5 14:57:38
回复

使用道具 举报

openKylin

GMT+8, 2024-5-17 19:07 , Processed in 0.018320 second(s), 19 queries , Gzip On.

Copyright ©2022 openKylin. All Rights Reserved .

ICP No. 15002470-12 Tianjin

快速回复 返回顶部 返回列表