跳轉到內容

LPI Linux 認證/從原始碼製作和安裝程式

來自華夏公益教科書,一個開放的世界開放的書籍

詳細目標 (206.1)

[編輯 | 編輯原始碼]

(LPIC-2 版本 4.5)


權重 2


描述: 候選人應該能夠從原始碼構建並安裝可執行程式。此目標包括能夠解壓縮原始碼檔案。


關鍵知識領域

  • 使用常見的壓縮和歸檔工具解壓縮原始碼。
  • 瞭解呼叫 make 編譯程式的基本知識。
  • 將引數應用於配置指令碼。
  • 瞭解原始碼預設儲存的位置。


術語和工具

  • /usr/src/
  • gunzip
  • gzip
  • bzip2
  • xz
  • tar
  • configure
  • make
  • uname
  • install
  • patch

原始檔

[編輯 | 編輯原始碼]

歸檔檔案是一組相關檔案,儲存在一個檔案中。允許您將檔案和子目錄儲存在一個檔案中的命令是 tar。

tar function & options files

常用功能:-c:建立一個新的 tar 檔案。-t:顯示 tar 檔案的內容。-x:提取 tar 檔案的內容。

常用選項:-f 檔案:指定 tar 檔案的名稱。

示例

tar cvf mybackup.tar ~
tar cvf usr.tar /usr
tar tvf mybackup.tar
tar xvf mybackup.tar

建議使用 .tar 副檔名作為使用 tar 歸檔的所有檔案的副檔名。

檔案壓縮

[編輯 | 編輯原始碼]

壓縮節省了儲存和檔案傳輸的空間。有多種工具可以進行壓縮

  • compress, uncompress # 舊的 Unix 壓縮演算法
  • gzip, gunzip # 最常見的用法
  • bzip2, bunzip2 # 最佳壓縮演算法

建立歸檔檔案後,可以對其進行壓縮。示例

$ ls -l backup.tar
-rw-r--r-- 1 rarrigon users 22773760 nov 10 11:07 backup.tar
$ gzip -v backup.tar
backup.tar:  53.8% -- replaced with backup.tar.gz
$ ls -l backup.tar.gz
-rw-r--r-- 1 rarrigon users 10507393 nov 10 11:07 backup.tar.gz
gunzip backup.tar.gz
$ bzip2 -v backup.tar
backup.tar:  2.260:1,  3.540 bits/byte, 55.75% saved, 22773760 in, 10077846 out.

檔案歸檔和壓縮

[編輯 | 編輯原始碼]

在歸檔檔案和子目錄時,可以將它們打包並壓縮在一個命令中。示例

tar cvzf backup.tgz ~ # Backup of home with gzip
tar cvjf backup.tbz ~ # Backup of home with bzip2
tar xvzf backup.tgz # Extract and gunzip backup.tgz
tar xvjf backup.tbz # Extract and bunzip2 backup.tbz

預設情況下,tar 使用相對路徑,但使用 -P 選項可以儲存具有絕對路徑的檔案。以這種模式儲存的檔案將始終在相同的位置解壓縮。
在一條命令列中壓縮和歸檔

$ tar cvf - . | gzip > target.tar.gz

解壓縮壓縮的歸檔檔案

$ gunzip -c file_name.tar.gz |tar xvf -

GNU 工具鏈

[編輯 | 編輯原始碼]

在 Linux 下,可以使用標準 GNU 工具鏈構建所有原始碼。make 工具用於維護一組程式。使用 Makefile 中定義的規則。

  • gcc ANSI C 編譯器
  • g++ C++ 編譯器

許多壓縮或歸檔的軟體包安裝後將包含資訊檔案(README、INSTALL),這些檔案應解釋如何構建和安裝軟體包。Makefile.in 和 configure.in 檔案是用於生成最終 Makefile 的基本檔案。配置後的檔案通常會掃描系統並構建最終的 Makefile。

  1. 對 /bin 和 /sbin 目錄進行歸檔。使用哪種壓縮工具可以獲得最小的檔案大小?使用 -v 獲取檔案大小縮減的百分比。
  2. 將檔案 /usr/src/packages/SOURCES/grub-09.tar.bz2 安裝到 /tmp 中,並透過閱讀 INSTALL 和 README 構建原始碼。
  3. 找到解壓縮 .deb 和 .rpm 歸檔檔案的方法,其中包含什麼?
  4. 在一行命令中,壓縮一個新檔案,並在其他地方解壓縮這個新檔案。


華夏公益教科書