筆者從虛擬機(jī)換回了開(kāi)發(fā)板,系統(tǒng)仍然是Ubuntu。
在上篇文章,我們完成lfs的硬件準(zhǔn)備和磁盤(pán)分區(qū)。
最終達(dá)成這個(gè)效果:

那么接下來(lái)就是軟件包和補(bǔ)丁的安裝,已經(jīng)最后的準(zhǔn)備工作了。
1. 安裝包與補(bǔ)丁的安裝
打開(kāi)LFS的官方文檔,我們可以看到官方已經(jīng)把所有要下載的安裝包的官方鏈接已經(jīng)給出了。

那么剩下的步驟就是安裝了。
但是這里多鏈接一個(gè)一個(gè)的手動(dòng)安裝還是太花費(fèi)時(shí)間了,作為程序員還是不想要把時(shí)間花在這樣的重復(fù)勞動(dòng)上。為此我找到了一個(gè)所有軟件鏈接的整合版本,安裝就只需要一個(gè)指令即可。

安裝包與補(bǔ)丁
拿到這些鏈接后,打開(kāi)Linux,創(chuàng)建一個(gè)文本文件,假設(shè)叫urls.txt。
把所有鏈接復(fù)制到文件中后。下面我介紹兩個(gè)指令給讀者選擇,選擇一個(gè)喜歡的指令下載即可。
1.1 wget指令
在終端內(nèi)使用wget指令批量下載文件。
代碼語(yǔ)言:bash復(fù)制
wget -i urls.txt
-i 參數(shù)告訴wget從urls.txt文件中讀取鏈接并下載
當(dāng)然我們?cè)谙螺d時(shí)需要下載到指定的目錄中mnt/lfs.sources。
代碼語(yǔ)言:bash復(fù)制
wget -i urls.txt -P /mnt/lfs/sources
1.2 aria2指令
如果你希望提高下載的速度,可以使用aria2,它支持多線程下載,速度更快。
如果你沒(méi)有安裝,輸入以下指令
代碼語(yǔ)言:bash復(fù)制
sudo apt install -y
下載格式:
代碼語(yǔ)言:bash復(fù)制
aria2c -i urls.txt
下載到指定目錄
代碼語(yǔ)言:bash復(fù)制
aria2c -i urls.txt -d /mnt/lfs/sources
那么這兩種指令就介紹完畢了,你可以選擇你喜歡的一個(gè)安裝即可。
相信大家都知道,在安裝國(guó)外軟件時(shí),下載速度都超級(jí)慢,所以你肯定要掛個(gè)梯子什么的。如果沒(méi)有,我這還有一種方法。
1.3 使用阿里云的整合包
龜速的下載速度是很難忍受的,LFS這個(gè)項(xiàng)目在世界范圍都是很受歡迎的,國(guó)內(nèi)也不例外,所以肯定會(huì)有人幫我做軟件包的整合的。我找的是阿里云的整合包,鏈接如下:阿里云
讀者在下載時(shí),應(yīng)挑選比較新的軟件包安裝,我下載的24年9月的,我使用的官方文檔也是24年9月的版本。
把壓縮包解壓后,軟件包和補(bǔ)丁就都出來(lái)了:

還是非常多的。
2. 最后的準(zhǔn)備階段(環(huán)境配置)
根據(jù)的文檔的指示,我們選喲創(chuàng)建一個(gè)lfs的用戶,這個(gè)在之前我就讓大家創(chuàng)建好了,同時(shí)還要許多目錄的創(chuàng)建,這個(gè)也是如此。
所以最后的準(zhǔn)備階段嗎,我只會(huì)講解在前文我們沒(méi)有做的工作。
為bash創(chuàng)建兩個(gè)新的啟動(dòng)腳本,以lfs的身份,執(zhí)行以下命令,創(chuàng)建一個(gè)新的.bash_profile.
代碼語(yǔ)言:bash復(fù)制
cat > ~/.bash_profile <p>在以 lfs 用戶登錄或從其他用戶使用帶 “<em>-</em>” 選項(xiàng)的 su 命令切換到 lfs 用戶時(shí),初始的 shell 是一個(gè)<em>登錄</em> shell。它讀取宿主系統(tǒng)的 /etc/profile 文件 (可能包含一些設(shè)置和環(huán)境變量),然后讀取 .bash_profile。我們?cè)?.bash_profile 中使用 exec env -i.../bin/bash 命令,新建一個(gè)除了 HOME, TERM 以及 PS1 外沒(méi)有任何環(huán)境變量的 shell 并替換當(dāng)前 shell。這可以防止宿主環(huán)境中不需要和有潛在風(fēng)險(xiǎn)的環(huán)境變量進(jìn)入構(gòu)建環(huán)境。</p><p>新的 shell 實(shí)例是 <em>非登錄</em> shell,它不會(huì)讀取和執(zhí)行 /etc/profile 或者 .bash_profile 的內(nèi)容,而是讀取并執(zhí)行 .bashrc 文件?,F(xiàn)在我們創(chuàng)建一個(gè) .bashrc 文件:</p>代碼語(yǔ)言:bash<svg width="16" height="16" viewbox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M4.5 15.5V3.5H14.5V15.5H4.5ZM12.5 5.5H6.5V13.5H12.5V5.5ZM9.5 2.5H3.5V12.5H1.5V0.5H11.5V2.5H9.5Z" fill="currentcolor"></path></svg>復(fù)制<pre class="prism-token token line-numbers bash">cat > ~/.bashrc <figure class=""><img src="https://img.php.cn/upload/article/001/503/042/174488161552528.jpg" alt="【從0構(gòu)建Linux系統(tǒng)/LFS】環(huán)境配置及軟件包與補(bǔ)丁的安裝"></figure><p>具體內(nèi)容的原因請(qǐng)?jiān)L問(wèn)官方文檔:官方文檔</p><p>最后,為了保證構(gòu)建臨時(shí)工具所需的環(huán)境準(zhǔn)備就緒,強(qiáng)制 bash shell 讀取剛才創(chuàng)建的配置文件:</p>代碼語(yǔ)言:bash<svg width="16" style="max-width:90%" viewbox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M4.5 15.5V3.5H14.5V15.5H4.5ZM12.5 5.5H6.5V13.5H12.5V5.5ZM9.5 2.5H3.5V12.5H1.5V0.5H11.5V2.5H9.5Z" fill="currentcolor"></path></svg>復(fù)制<pre class="prism-token token line-numbers bash">source ~/.bash_profile
在文檔的最后還有關(guān)于SBU和測(cè)試套件的解釋?zhuān)?qǐng)大家自行查閱。
3 .總結(jié)
由此我們就完成了從0構(gòu)建Linux系統(tǒng)的全部的準(zhǔn)備階段了,在下一篇文章就要開(kāi)始構(gòu)建 LFS 交叉工具鏈和臨時(shí)工具。
期待你的關(guān)注,本系列長(zhǎng)期更新。