天天看點

《Linux From Scratch》第三部分:建構LFS系統 第六章:安裝基本的系統軟體- 6.6. 建立必需的檔案和符号連結

         有些程式裡會使用寫死的路徑調用其它暫時還未安裝的程式。為了滿足這種類型程式的需要,我們将建立一些符号連結,在完成本章内容後這些軟體會安裝好,并替代之前的符号連結:

每個軟連結的目的:

<dl></dl>

<dt></dt>

<code><code>/bin/bash</code></code>

<dd></dd>

許多 bash 腳本指定了 <code>/bin/bash</code>。

<code><code>/bin/cat</code></code>

這個路徑在 Glibc 的配置腳本裡寫死了。

<code><code>/bin/echo</code></code>

這個是為了滿足 Glibc 測試套件裡的一個測試用例,它會檢測 <code>/bin/echo</code>。

<code><code>/bin/pwd</code></code>

某些 configure 腳本,特别是 Glibc 的,寫死了這個路徑。

<code><code>/bin/stty</code></code>

這個路徑在 Expect 軟體中寫死了,是以在 Binutils 和 GCC 測試套件中會需要它。

<code><code>/usr/bin/perl</code></code>

許多 Perl 腳本寫死了這個路徑調用 perl 執行程式。

<code><code>/usr/lib/libgcc_s.so{,.1}</code></code>

Glibc 需要這個讓 pthreads 庫正常工作。

<code><code>/usr/lib/libstdc++{,.6}</code></code>

在 Glibc 的一些測試套件中需要這個,而且在 GMP 的 C++ 支援中也會需要。

<code><code>/usr/lib/libstdc++.la</code></code>

這個可以預防引用 <code>/tools</code> 位置,在裝好 GCC 後新的引用位置是 <code>/usr/lib/libstdc++.la</code>。

<code><code>/bin/sh</code></code>

許多 shell 腳本寫死了位置 <code>/bin/sh</code>。

由于曆史原因,Linux 在檔案<code>/etc/mtab</code>中維護一個已挂載檔案系統的清單。而現代核心改為在内部維護這個清單,并通過

<code>/proc</code> 檔案系統輸出給使用者。為了滿足一些依賴 <code>/etc/mtab</code>

檔案的應用程式,我們要建立下面的符号連結:

為了讓 <code>root</code> 使用者能正常登入,而且 <code>root</code>

的名字能被正常識别,必須在檔案 <code>/etc/passwd</code> 和

<code>/etc/group</code> 中寫入相應的内容。

運作下面的指令建立 <code>/etc/passwd</code> 檔案:

<code>root</code> 使用者的實際密碼(這裡的

“x” 隻是占位符)将在後面建立。

運作下面的指令建立 <code>/etc/group</code> 檔案:

這裡建立的使用者組沒有參照任何标準 — 它們一部分是為了滿足本章中配置 Udev 的需要,還有一部分來自一些現存 Linux

以及以 GID 為 1 建立使用者組 <code>bin</code>。系統管理者可以自由配置設定其它所有使用者組名字和 GID,因為優秀的程式不會依賴

GID 數字,而是使用組名。

<code>/etc/passwd</code> 和 <code>/etc/group</code> 檔案,使用者名群組名就可以正常解析了:

注意這裡使用了 <code>+h</code> 參數。這樣會告訴

bash 不要使用它内建的路徑哈希功能。而不加這個參數的話,

bash 将會記住曾經執行過程式的路徑。為了在新編譯安裝好程式後就能馬上使用,參數

<code>+h</code> 将在本章中一直使用。

程式 login,agetty 和

init(還有一些其它的)會使用一些日志檔案來記錄資訊,比如誰在什麼時候登入了系統。不過,在日志檔案不存在的時候這些程式一般不會寫入。下面初始化一下日志檔案并加上合适的權限:

檔案 <code>/var/log/wtmp</code> 會記錄所有的登入和登出動作。檔案

<code>/var/log/btmp</code> 會記錄失敗的登入嘗試。

《Linux From Scratch》第三部分:建構LFS系統 第六章:安裝基本的系統軟體- 6.6. 建立必需的檔案和符号連結

檔案 <code>/run/utmp</code> 會記錄目前已登入的使用者。這個檔案會在啟動腳本中動态建立。

注:下面的注意事項為譯者根據第五章添加。

《Linux From Scratch》第三部分:建構LFS系統 第六章:安裝基本的系統軟體- 6.6. 建立必需的檔案和符号連結

再次強調建構過程:

把所有源檔案和更新檔放到 chroot 環境可通路的目錄,例如 <code>/mnt/lfs/sources/</code>。但是千萬不能把源檔案放在 <code>/mnt/lfs/tools/</code> 中。

進入到源檔案目錄。

用 tar 程式解壓要編譯的軟體包。

進入到解壓後建立的目錄中。

根據指南說明編譯軟體包。

回退到源檔案目錄。

除非特别說明,删除解壓出來的目錄和所有編譯過程中生成的 <code><code>&lt;package&gt;</code>-build</code> 目錄。

建立者:Gerard Beekmans

編輯者:Matthew Burgess 和 Armin K.

翻譯團隊:LCTT

譯者/校對:zpl1025,wxy

<a href="https://linux.cn/lfs/LFS-BOOK-7.7-systemd/chapter06/createfiles.html" target="_blank">原文連結</a>