LFS(Linux From Scratch)學習

一、環境準備

使用Debian平臺,需做如下環境檢查:

1、檢查各個需要的工具及內核版本號,看看是否符合lfs7.7的列表要求

2、檢查需要用到的庫,一共有三個,gmp, mpfr和mpc

?

工具檢查腳本如下:

#filename:check_env.sh
?
#/bin/sh
export LC_ALL=C# check for bash
bash --version | head -n1 | cut -d" " -f2-4
echo "/bin/sh -> `readlink -f /bin/sh`"
echo -n "Binutils: "; ld --version | head -n1 | cut -d" " -f3-
bison --version | head -n1# check for yacc
if [ -h /usr/bin/yacc ]; thenecho "/usr/bin/yacc -> `readlink -f /usr/bin/yacc`";
elif [ -x /usr/bin/yacc ]; thenecho yacc is `/usr/bin/yacc --version | head -n1`
elseecho "yacc not found"
fi# check for other
bzip2 --version 2>&1 < /dev/null | head -n1 | cut -d" " -f1,6-
echo -n "Coreutils: "; chown --version | head -n1 | cut -d")" -f2
diff --version | head -n1
find --version | head -n1
gawk --version | head -n1
if [ -h /usr/bin/awk ]; thenecho "/usr/bin/awk -> `readlink -f /usr/bin/awk`";
elif [ -x /usr/bin/awk ]; thenecho yacc is `/usr/bin/awk --version | head -n1`
elseecho "awk not found"
figcc --version | head -n1
g++ --version | head -n1
ldd --version | head -n1 | cut -d" " -f2- # glibc version
grep --version | head -n1
gzip --version | head -n1
cat /proc/version
m4 --version | head -n1
make --version | head -n1
patch --version | head -n1
echo Perl `perl -V:version`
sed --version | head -n1
tar --version | head -n1
makeinfo --version | head -n1
xz --version | head -n1echo "main(){}" > dummy.c && g++ -o dummy dummy.c
if [ -x dummy ]; thenecho "g++ compilation OK";
elseecho "g++ compilation failed";
firm -f dummy.c dummy

若結果如下,則環境就緒

image

若出現“command not found”,則缺少工具,可執行如下命令進行安裝(以安裝gawk工具為例)

sudo aptitude install gawk

?

庫檢查腳本如下:

#filename:check_lib.sh
?
#!/bin/bashfor lib in lib{gmp,mpfr,mpc}.la; doecho $lib: $(if find /usr/lib* -name $lib | grep -q $lib; then:;elseecho not;fi) found
doneunset lib

image

結果顯示,三個庫目前都不具備

?

二、存儲設備準備

LFS的編譯需要單獨有一塊存儲,條件不好的就單獨劃個分區,條件好的就再掛塊硬盤,實在不行就新建個目錄來做這件事好了,只不過這樣是沒法引導起來,只能chroot之后當編譯環境用。

下面以VMware新建一塊SATA硬盤,然后接入虛擬機,分區,掛載為例來描述這個過程。

?

點擊“編輯虛擬機設置”,選擇添加硬盤,如下圖:

image

選擇“SATA(A)”,點擊“下一步”,如下圖:

image

選擇“創建新的虛擬磁盤”,點擊“下一步”,如下圖:

image

設置磁盤大小為:20G,然后選擇“將虛擬磁盤存儲為單個文件”,點擊“下一步”,如下圖:

image

點擊“完成”,如下圖:

image

點擊“確定”,如下圖:

image

?

啟動虛擬機,執行如下命令,查看新的硬盤信息

ls -l /dev | grep sd

新的硬盤為sdb,如下圖:

image

執行如下命令后,選擇”New”來新建一個分區,如下圖:

cfdisk /dev/sdb

image

選擇[Primary],創建一個新的主分區,如下圖:

image

提示Size (in MB),選擇要創建的分區大小為:128,如下圖:

image

選擇[Beginning],在空閑空間的起始位置來添加一個分區,如下圖:

image

選擇[ Bootable ],回車,在上方新建的分區這一欄Flags字段會出現Boot字樣,如下圖:

image

方向鍵按向下,光標選中”Free Space”,建立交換分區。基本上都是重復剛才的步驟,只不過大小改成1024,不需要置Boot標識。

image

移動光標到[ Type ],更改文件系統類型,回車后進入類型選擇菜單,編號默認輸入就是82,也就是”Linux swap / Solaris”,直接回車即可

image

此時回到主菜單,可以看到第二個分區sdb2的”FS Type”一項改成了”Linux swap / Solaris”,如下圖:

image

按方向鍵向下,選中Free Space,重復sdb1的創建步驟,類型選擇[Logical],大小默認最大即可,不需要更改,如下圖:

image

此時回到主菜單,可以看到Name欄會顯示sdb5,如下圖:

image

新的硬盤分區表建立完畢,需要寫入硬盤了,橫移光標到[ Write ],回車,如下圖:

image

提示”Are you sure you want to write the partition table to disk? (yes or no):”,敲入“yes”并回車,如下圖:

image

右移光標到[ Quit ]回車,退出cfdisk,如下圖:

image

至此,分區工作完成,LFS需要的獨立存儲設備與分區準備完畢,如下圖:

image

?

?

三、磁盤初始化與源碼準備

下面需要格式化分區,步驟如下:

?

/dev/sdb1使用ext2,執行如下命令,如下圖

mkfs -v -t ext2 /dev/sdb1

image

/dev/sdb2使用swap,執行如下命令,如下圖

mkswap /dev/sdb2

image

/dev/sdb5使用ext4,執行如下命令,如下圖

mkfs -v -t ext4 /dev/sdb5

image

執行如下命令,創建目錄:/mnt/lfs

mkdir -pv /mnt/lfs

image

方便起見,把/mnt/lfs目錄的屬主改為當前用戶,否則每次操作都要加sudo,執行如下命令

chown -R lenovo.sudo lfs/

image

把lfs工程的主要存儲分區/dev/sdb5掛載到這個目錄上

mount -v -t ext4 /dev/sdb5 /mnt/lfs

image

每次宿主系統重啟之后,都需要重新export和mount,方便起見,執行如下命令,建立環境變量$LFS=/mnt/lfs

vi ~/.bashrc
#在文件尾添加如下內容
export LFS=/mnt/lfs

執行如下命令,使環境變量立即生效

source ~/.bashrc

至此我們就可以在$LFS上面來下載和編譯我們所需的lfs組件了。

?

下面,新建用于存儲源碼的目錄,并下載源碼

mkdir $LFS/src
cd $LFS/src

wget http://www.haopingrui.cn/lfs.tar.gz 124e1eb0e52f176ab84c38118b4975e3

image

?

至此,分區和源碼準備完成。

轉載于:https://www.cnblogs.com/274914765qq/p/4413784.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/257450.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/257450.shtml
英文地址,請注明出處:http://en.pswp.cn/news/257450.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

騰訊云 Centos 配置 JDK Tomcat Mysql

配置JDK 從 oracle 官網下載 rpm 版本的 jdk 包,官方鏈接:點擊此處跳轉。下載jdk的時候記得看一看自己的系統是 64 位還是 32 位的&#xff0c;下對應的版本。下載好以后上傳到騰訊云服務器中,命令格式為 scp &#xff3b;文件路徑] &#xff3b;云主機用戶名ip地址]:[服務器上…

php 取url根域名,php中取得URL的根域名的代碼

/*** 取得根域名** author lonely* create 2011-3-11* version 0.1* lastupdate lonely* package Sl*/class Sl_RootDomain{private static $self;private $domainnull;private $hostnull;private $state_domain;private $top_domain;/*** 取得域名分析實例* Enter description…

如何創建sequence

我用的是在oracle中的方法&#xff0c;在oracle中sequence就是所謂的序列號&#xff0c;每次取的時候它會自動增加&#xff0c;一般用在需要按序列號排序的地方。 1、Create Sequence 你首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE權限&#xff0c; CREATE SEQUENCE SI_E…

簡易版jQuery——mQuery

前面的話 雖然jQuery已經日漸式微&#xff0c;但它里面的許多思想&#xff0c;如選擇器、鏈式調用、方法函數化、取賦值合體等&#xff0c;有的已經變成了標準&#xff0c;有的一直影響到現在。所以&#xff0c;jQuery是一個偉大的前端框架。前端世界日新月異&#xff0c;由于實…

LaTeX?安裝配置?OSX

LaTeX 安裝配置 OSX官方網站&#xff1a;http://www.latex-project.orghttp://www.tug.org/mactex/http://pages.uoregon.edu/koch/BasicTeX.pdf完整的Tex超過2G&#xff0c;一般用戶沒必要&#xff0c;可以先安裝BasicTeX&#xff0c;當有需要時include必要的庫即可1.安裝Basi…

php 正三角塔,PHP 環境塔建與數據類型轉換

手動塔建PHP開發環境安裝php c:\apps\php安裝apache c:\apps\apache1.配制apache配制c:\apps\apache\conf\httpd.confDocumentRoot"c:/apps/www" //指定工作目錄,WWW為自已創健Directoryindex index.php index.html // 加入:loadModule php5_module "c:\apps\PH…

C/C++基礎知識:函數指針和指針函數的基本概念

【函數指針】 在程序運行中&#xff0c;函數代碼是程序的算法指令部分&#xff0c;它們和數組一樣也占用存儲空間&#xff0c;都有相應的地址。可以使用指針變量指向數組的首地址&#xff0c;也可以使用指針變量指向函數代碼的首地址&#xff0c;指向函數代碼首地址的指針…

告警系統郵件引擎

2019獨角獸企業重金招聘Python工程師標準>>> 20.23-20.25 告警系統郵件引擎 創建發郵件的腳本——mail.py [rootlocalhost mail]# pwd /usr/local/sbin/mon/mail[rootlocalhost mail]# vim mail.py #!/usr/bin/env python #-*- coding: UTF-8 -*- import os,sys rel…

【HTTP 2】簡介(Introduction)

前情提要 在上一篇文章《【HTTP 2.0】 序言》中&#xff0c;我們簡要介紹了 HTTP 2 協議的概要和協議狀態。 在本篇文章中&#xff0c;我們將會了解到 HTTP 2 協議簡介&#xff08;Introduction&#xff09;部分的內容。 簡介&#xff08;Introduction&#xff09; 超文本傳輸協…

java測試類生成對象,java編寫student類 用Java編寫一段測試程序,生成student類的兩個對象,并輸出每個對象基本信息?...

java中怎么創建對象數組&#xff1f;比如我創建了一個學生類Student&#xff0c;怎么用這個類創建一個對象數組&#xff0c;麻煩給個例子&#xff1f;學生類&#xff1a;classA{privateStringnameprivateintagepublicStringgetName(){returnname}publicvoidsetName(Stringname)…

iOS -- SKScene類

SKScene類 繼承自SKEffectNode:SKNode:UIResponder:NSObject符合NSCoding(SKNode)NSCopying(SKNode)NSObject(NSObject)框架 /System/Library/Frameworks/SpriteKit.framework可用性可用于iOS 7.0或者更晚的版本聲明于SKScene.h參考指南Sprite Kit Progamming Guide概覽 重要提…

SSD硬盤 全盤安全擦除

此文From http://ssd.zol.com.cn/575/5753057.html 在SSD固態硬盤的使用過程中&#xff0c;部分用戶可能會碰到計算機意外掉電或死機并強行斷電后&#xff0c;系統出現異常&#xff0c;掃描SSD后發現壞塊&#xff0c;然后一著急一跺腳甚至想返廠維修。 其實掉電后固態硬盤出現壞…

php中等3秒再跳轉,跳轉和重定向

頁面跳轉在應用開發中&#xff0c;經常會遇到一些帶有提示信息的跳轉頁面&#xff0c;例如操作成功或者操作錯誤頁面&#xff0c;并且自動跳轉到另外一個目標頁面。系統的ThinkController類內置了兩個跳轉方法success和error&#xff0c;用于頁面跳轉提示&#xff0c;而且可以支…

2017敏捷沙灘大會:完美軟件,測量持續交付,以及探索未來

在英國康沃爾郡舉行的2017敏捷沙灘大會上&#xff0c;數百名演講者和參與者共聚一堂&#xff0c;探討敏捷和后敏捷領域軟件開發方法有哪些最新進展。本次大會最后一個下午的要點包括&#xff1a;交付團隊可以通過擁抱精益、迭代和持續的部署方法更快速地實現業務價值&#xff1…

做fzu oj 1045 做減法學到的sprintf()函數

題目 做題一直輸不出答案&#xff0c;于是就上網去百度了這題的解題&#xff0c;發現解答十分的簡短&#xff0c;而且其中我看見了平時沒見過的函數&#xff0c;sprintf()。 于是就百度sprintf()的使用。 如下&#xff1a; 函數功能&#xff1a;把格式化的數據寫入某個字符串 函…

動態內存分配及變量存儲類別(第二部分)

5. C語言變量的存儲類別和生存期 我們知道&#xff0c;變量是有數據類型的&#xff0c;用以說明它占用多大的內存空間&#xff0c;可以進行什么樣的操作。除了數據類型&#xff0c;變量還有一個屬性&#xff0c;稱為“存儲類別”。存儲類別就是數據在內存中的存放區域。一個正在…

oracle的em能干什么,轉載?解決Oracle的EM登錄

轉載 解決Oracle的EM登錄(2011-03-13 20:53:39)標簽&#xff1a;雜談這幾天解決了EM無法登錄的問題&#xff0c;順便也把j數據庫程序中常出現的ORA_12518錯誤解決了&#xff0c;有必要總結一下&#xff0c;我最初遇到的情況是這樣的&#xff1a;1. 編寫java程序訪問oracle數據庫…

python 回溯法 子集樹模板 系列 —— 1、8 皇后問題

問題 88格的國際象棋上擺放八個皇后&#xff0c;使其不能互相攻擊&#xff0c;即任意兩個皇后都不能處于同一行、同一列或同一斜線上&#xff0c;問有多少種擺法。 分析 為了簡化問題&#xff0c;考慮到8個皇后不同行&#xff0c;則每一行放置一個皇后&#xff0c;每一行的皇后…

Core Java Volume I — 3.6. Strings

3.6. StringsConceptually, Java strings are sequences of Unicode characters&#xff08;Java的字符串是一個Unicode序列&#xff09;. For example, the string "Java\u2122" consists of the five Unicode characters J, a, v, a, and ?. Java does not have a…

Android實用代碼七段(五)

前言 每次分享意味著每次都有進步&#xff0c;本系列以實用為主&#xff0c;歡迎和我分享和推薦好用的代碼段~~聲明歡迎轉載&#xff0c;但請保留文章原始出處:) 博客園&#xff1a;http://www.cnblogs.com農民伯伯&#xff1a; http://over140.cnblogs.com 正文 1、展開、收起…