Gentoo Linux 2005.0 x86 手冊[41]

[入库:2006年2月23日] [更新:2007年3月24日]

本文简介:

5.c. 非 Portage 維護的軟體

使用 Portage 和自己維護的軟體

在某些情況你會想要自己設定,安裝,維護軟體而不要 Portage 自動完成這些過程,雖然是 Portage 已經提供這些軟體了。已知的例子是核心原始碼和 nvidia 驅動程式。你可以作一些設定讓 Portage 知道某個套件已經手動裝到系統上了。這個過程叫做 注入 而且透過 /etc/portage/profile/package.provided 檔案 Portage 支援這個功能。

舉例來說,如果你想要告訴 Portage vanilla-sources-2.6.11.6 你已經手動裝好了,把底下幾行加到 /etc/portage/profile/package.provided

原始碼 2: package.provided 範例

sys-kernel/vanilla-sources-2.6.11.6

6. Ebuild的應用方式

6.a. Emerge 與 Ebuild

ebuild 程式是 Portage 系統較低層的操控介面。你可以透過給予 ebuild 檔案,使用這個程式去執行特定動作。例如,你可以單獨執行各個 merge 步驟。

使用 ebuild 大多是為了開發;更多關於 ebuild 的資訊因此可以在 開發者手冊中找到。然而,我們將解釋在 merge 一個確切的軟體名稱時,什麼 ebuild 動作會被 Portage 請求,還有如何執行一些 ebuilds 支援的後端配置。

6.b. 手動安裝軟體

抓取原始碼 & 驗證 checksum

當你使用 ebuild 程式且給他一個 ebuild 檔案,他將驗證所有內涵檔案的 checksums 是否與 Manifest 附帶的,或與 files/digest-<name>-<version> 檔案中的 checksums 相同。這會在下載原始碼之後執行。

使用 ebuild 抓取原始碼, 請執行:

原始碼 1: 抓取原始碼

# ebuild path/to/ebuild fetch

如果 ebuild 的 md5sum 不符合列在 Manifest 檔案裡面的那份,或是下載的原始碼不符合列在 files/digest-<package> 檔案中的那些 checksum,你將收到像是這樣的錯誤訊息:

原始碼 2: Ebuild checksum 錯誤

!!! File is corrupt or incomplete. (Digests do not match)
>>> our recorded digest: db20421ce35e8e54346e3ef19e60e4ee
>>>  your file's digest: f10392b7c0b2bbc463ad09642606a7d6

接著會指出錯誤的檔案。

如果你確定你下載的原始碼和 ebuild 本身正確無誤,你可以使用 ebuild 的 digest 功能重新建立 Manifestdigest-<package>

原始碼 3: 重新建立 Manifest and digest

# ebuild path/to/ebuild digest

解開原始碼包裹

想解開 /var/tmp/portage(或你在 /etc/make.conf 指定的其他目錄路徑)中的原始碼檔案, 可以使用 ebuild 的 unpack 功能:

原始碼 4: 解開原始碼包裹

# ebuild path/to/ebuild unpack

這將執行 ebuild 的 src_unpack() 函式(如果沒有定義 src_unpack() 函式,預設會單純解壓縮)。在這個步驟也會套用所有必須的修補檔。

編譯原始碼

在 merge 程序中,下個步驟就是編譯原始碼。ebuild 的 compile 功能是去執行 ebuild 檔案中的 src_compile() 函式。如果有需要,這也包含著 configure 步驟。

原始碼 5: 編譯原始碼

# ebuild path/to/ebuild compile

本文关键:Gentoo Linux 2005.0 x86 手冊
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top