Linux From Scratch(介紹)
LFS──Linux from Scratch,就是一種從網上直接下載原始碼,從頭編譯LINUX的安裝方式。它不是發行版,只是一個菜譜,告訴你到哪裡去買菜(下載源碼),怎麼把這些生東西( raw code) 作成符合自己口味的菜餚──個性化的linux,不單單是個性的桌面。
- 中文名
- Linux From Scratch
- 簡 寫
- LFS
- 類 型
- 安裝Linux的教科書
- 編 寫
- 傑勒德·比克曼斯等
簡介
編輯《LinuxFromScratch》(LFS)是傑勒德·比克曼斯等人編寫的安裝Linux的教科書,描述了從原始碼編譯Linux系統的方法。這本書可以從在LinuxFromScratch網站上免費下載到,當前最新的版本為7.5。
為了保持LFS的基本性和專注性,另一本書《BeyondLinuxFromScratch》(BLFS)提供了在LFS的基礎上,進一步完善Linux基本系統的指引。在BLFS中,讀者可以學習到如何為系統增加網路、X桌面、聲音、
印表機和掃描器支援。從5.0版開始,BLFS開始與LFS的版本號保持同步。
除了LFS和BLFS,還有描述交叉編譯的《CrossLinuxfromScratch》(CLFS)以及專注於安全的《HardenedLinuxFromScratch》(HLFS)。
步驟
編輯儘管目標是安裝一個與現有發行版毫無關係的系統,安裝LFS仍然不能無中生有,而必須要有一個可以編譯軟體包的執行中的Linux系統。這個系統一般稱為宿主系統。對於新機器,可以選用Linux發行版提供的光碟作業系統(LiveCD)作為宿主。LFS工程曾提供LiveCD但當前不提供。在宿主作業系統上安裝LFS,需要的步驟如下:
-
對硬碟分割槽,新增用於安裝LFS的使用者和組(LFS教科書第2章)
-
下載所有需要的軟體包原始碼(LFS教科書第3章)
-
準備開發環境(LFS教科書第4章)
-
構造一個基本開發環境(稱為工具鏈)(LFS教科書第5章)
-
構造完整的目標系統(LFS教科書第6章)
-
配置系統啟動指令碼(LFS教科書第7章)
-
啟動系統(LFS教科書第8章)
製作
編輯製作過程
快速瀏覽官方文件即可(沒必要仔細翻閱,抓幾個關鍵點即可)
一般套路
以下步驟在LFS製作中會重複幾次乃至幾十次:
1,
tar xf foo-version.tar.*
cd foo-version
./configure --prefix=xxx --xxx=xxxx ······
make
make install
cd ..
rm -rf foo-version
2,
tar xf foo-version.tar.*
cd foo-version
patch -Np1 -i ../xxx.patch
mkdir ../foo-build
cd foo-build
../foo-version/configure --prefix=xxx --xxx=xxxx ······
make
make install
cd ..
rm -rf foo-version foo-build
具體編譯引數複製文件中對應部分即可
相關專案
編輯該專案有很多相關子專案:
-
BeyondLinuxFromScratch(BLFS)
-
標準LFS僅僅安裝了足夠讓系統啟動的基本軟體,以及使新系統能夠編譯新軟體包的開發工具。BLFS包括了更多的軟體包,且都有相應指導。
-
CrosssLinuxFromScratch(CLFS)
-
為需要進行交叉編譯(即在一個平臺上編譯另一個平臺的程式碼)的使用者提供指導,正式版本為1.0,另有兩個變種CLFS Sysroot 採用Sysroot的方法來進行編譯,好處是軟體包的編譯次數可以減少,壞處是不能支援在編譯後對軟體進行測試,必須要啟動到目標平臺上才能測試。
-
CLFS Embedded 一般用於極小系統以及嵌入式系統。為此,它使用uclibc而不是一般LFS使用的glibc。
-
AutomatedLinuxFromScratch(ALFS)
-
標準LFS只是一本書,使用者需要根據書上的指引下載軟體包並手動輸入指令進行編譯。ALFS子專案提供了把這一切自動化的指令碼。
-
HardenedLinuxFromScratch(HLFS)
-
這個子專案致力於打造在安全性上無懈可擊的Linux系統。
-
Hints
-
收集一些解釋性、增強性的文件,以協助使用者
-
LiveCD
-
利用LFS的方法生成可以自行啟動並安裝了足夠軟體的CD,可以用來在空機器上安裝LFS,或者直接在其上執行應用,已經停止維護 #LFS LiveCD Project[2011-11-10](英文). "Note: The LiveCD is no longer being maintained. However, it still works well for many purposes, such as a rescue disk. The packages and the rendered LFS book on the CD are quite out of date."。
-
Patches
-
由於軟體之間的依賴關係,在升級軟體包之後可能會導致LFS的過程出現故障。Patch專案致力於研究最新版本的軟體之間的互動,並提供一些補丁修復這些故障。
意義
編輯LFS的意義不在於機械地編譯,事實上,按照文件描述,簡單地點選鍵盤即可生成一個簡略的發行版,這並不是存在時間達13年的LFS的目的。LFS的意義在於讓使用者理解編譯引數的作用,理解補丁的作用,理解LFS附帶的指令碼的工作過程,從而達到脫離LFS、獨立製作並完善發行版的目的。
由於LFS提供的是一個通用的Linux發行版製作流程,LFS並不能保證製作最終產物符合製作者個人口味,也不能保證質量。
相關文章
- Scratch第二講:scratch軟體介面介紹
- Linux系統制定,Linux From Scratch 7.1 釋出Linux
- Linux From Scratch 7.6 釋出,構建自己的 LinuxLinux
- Oracle 建立PDB-from ScratchOracle
- JavaScript最新教程:js-stack-from-scratchJavaScriptJS
- Linux namespace介紹Linuxnamespace
- Kali Linux介紹Linux
- linux介紹(入門)Linux
- Linux xargs命令介紹Linux
- linux xhost命令介紹Linux
- linux ps命令介紹Linux
- Linux yum 命令介紹Linux
- Linux top命令介紹Linux
- Linux make命令介紹Linux
- linux常用指令介紹Linux
- [完結] Laravel 6 From Scratch [Laracasts 免費影片中文語音]LaravelAST
- Python import相關內容區別介紹( import *** as 、from***import )PythonImport
- Linux useradd 命令介紹Linux
- Linux重啟命令介紹Linux
- linux Direct NFS配置介紹LinuxNFS
- linux 邏輯卷介紹Linux
- Linux中NFS介紹(轉)LinuxNFS
- [持續更新] Laravel 6 From Scratch [Laracasts 免費視訊中文語音]LaravelAST
- Ubuntu/Linux入門介紹-Linux系統簡介(轉)UbuntuLinux
- Ubuntu/Linux入門介紹-VIM簡介(轉)UbuntuLinux
- Linux之cat的使用介紹Linux
- 全面介紹 Linux 許可權Linux
- Linux 關機命令介紹shutdownLinux
- Linux Boot,Kernel 和 Service 介紹Linuxboot
- linux基本命令介紹(二)Linux
- linux基本命令介紹(一)Linux
- 【Linux】jq 命令介紹和使用Linux
- Linux系統調優介紹Linux
- Linux各級目錄介紹Linux
- 詳細介紹Linux指令odLinux
- Redis介紹以及安裝(Linux)RedisLinux
- LINUX下tmpfs介紹及使用Linux
- Linux下udev詳細介紹Linuxdev