筆者從虛擬機換回了開發板,系統仍然是Ubuntu。
在上篇文章,我們完成lfs的硬件準備和磁盤分區。
最終達成這個效果:

那么接下來就是軟件包和補丁的安裝,已經最后的準備工作了。
1. 安裝包與補丁的安裝
打開LFS的官方文檔,我們可以看到官方已經把所有要下載的安裝包的官方鏈接已經給出了。

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

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

還是非常多的。
2. 最后的準備階段(環境配置)
根據的文檔的指示,我們選喲創建一個lfs的用戶,這個在之前我就讓大家創建好了,同時還要許多目錄的創建,這個也是如此。
所以最后的準備階段嗎,我只會講解在前文我們沒有做的工作。
為bash創建兩個新的啟動腳本,以lfs的身份,執行以下命令,創建一個新的.bash_profile.
代碼語言:bash復制
cat > ~/.bash_profile <p>在以 lfs 用戶登錄或從其他用戶使用帶 “<em>-</em>” 選項的 su 命令切換到 lfs 用戶時,初始的 shell 是一個<em>登錄</em> shell。它讀取宿主系統的 /etc/profile 文件 (可能包含一些設置和環境變量),然后讀取 .bash_profile。我們在 .bash_profile 中使用 exec env -i.../bin/bash 命令,新建一個除了 HOME, TERM 以及 PS1 外沒有任何環境變量的 shell 并替換當前 shell。這可以防止宿主環境中不需要和有潛在風險的環境變量進入構建環境。</p><p>新的 shell 實例是 <em>非登錄</em> shell,它不會讀取和執行 /etc/profile 或者 .bash_profile 的內容,而是讀取并執行 .bashrc 文件。現在我們創建一個 .bashrc 文件:</p>代碼語言: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>復制<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構建Linux系統/LFS】環境配置及軟件包與補丁的安裝"></figure><p>具體內容的原因請訪問官方文檔:官方文檔</p><p>最后,為了保證構建臨時工具所需的環境準備就緒,強制 bash shell 讀取剛才創建的配置文件:</p>代碼語言: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>復制<pre class="prism-token token line-numbers bash">source ~/.bash_profile
在文檔的最后還有關于SBU和測試套件的解釋,請大家自行查閱。
3 .總結
由此我們就完成了從0構建Linux系統的全部的準備階段了,在下一篇文章就要開始構建 LFS 交叉工具鏈和臨時工具。
期待你的關注,本系列長期更新。