Emerge详细解释

Emerge

From wiki.gentoo.org.tw

目錄 [顯示隱藏]
[ 編輯]

名稱(NAME)

emerge - Portage 系統的命令列介面

[ 編輯]

綱要(SYNOPSIS)

emerge
[ options] [ action] [ ebuild | tbz2file | class | dependency] ...
emerge
[ options] [ action] ebuildfile
emerge
sync | rsync
emerge
--help -h [ system | config | sync]
emerge
--version

[ 編輯]

敘述(DESCRIPTION)

emerge 是 Portage 系統的命令列介面,主要用於安裝套件,而且 emerge 可自動處理相依性。 emerge 能更新 portage tree,建立新的與更新原有套件。 emerge 能處理原始碼與執行檔,建立散佈所用的套件。

[ 編輯]

EBUILDS, TBZ2S, CLASSES AND DEPENDENCIES

emerge 安裝套件時,可指定套件以下列方式安裝: ebuildtbz2fileclassdependency

ebuild
ebuild 檔名需為最小的,合格的 Portage 套件名稱:不含版本或類別名稱,如 portagepython。可附加類別與版本號碼,如 sys-apps/portage=python-2.2.1-r2emerge 會忽略結尾斜線(trailing slash) ,因此會作檔名補齊。 ebuild 也可為確切的檔名,如 /usr/portage/app-admin/python/python-2.2.1-r2.ebuild
tbz2file
tbz2file 需為合格的 .tbz2 。以 ebuild <package>-<version>.ebuild packageemerge --buildpkg [category/]<package>quickpkg /var/db/pkg/<category>/<package> 建立。
class
Package class類別是一群套件的速記。支援兩種類別: systemworldsystem 為系統正常運作所需的套件集。 world 包含所有 system 的套件,及其他列示於 /var/cache/edb/world的套件。 [詳見底下的 FILES] 注意這些命令通常連接著 --update
dependency
dependency 相依套件。如 >=dev-lang/python-2.2.1-r2 符合 Python 等於或高於 2.2.1-r2 的新版本。 同理, <dev-lang/python-2.0 符合 Python 2.0 之前的新版本。 注意在許多 shell 中你需要跳脫字元例如 '<' and '='; 使用單或雙引號於相依套件名稱以避開跳脫問題.
[ 編輯]

動作(ACTION)

未指定 如果未指定動作, 預設動作是整合特定套件, 滿足相依性。 參數可以是 ebuildstbz2sclassesdependencies注意當安裝 tbz2 時需使用 --usepkg 選項。 加入 world 元件, 以便更新。

clean ( -c) 移除 system 套件將不會影響系統功能。 參數可以是 ebuildsclasses、 或 dependencies。 如 emerge clean binutils 會清除舊版 binutils; emerge clean net-www/mozilla-0.9.9-r2 清除特定版本的 Mozilla。 這經常是安全的, 注意 clean 不會移除 unslotted 套件。

depclean 決定安裝的套件沒有不明的存在原因。 emerge 產生欲安裝的套件清單,藉由檢查 system 套件清單與 world 檔。 比較已安裝的清單; 列出相異處不需要的套件與建議不合併的。 警告: 移除一些套件會造成相連結的套件失效與檔案遺失, 重新合併可解決此問題。 注意 USE flags 會大幅度影響 depclean 輸出。

help ( -h) 顯示 emerge 的協助資訊, 加入上述的參數可得到該主題詳盡的說明。內部 emerge 說明文件較 man page 常更新; 若 man page 幫不上忙可查看。

info 針對發展員提供的除錯資訊。 交付問題報告時請包含這份資訊, 詳述的輸出可加入  --verbose

inject ( -i) inject 會在套件加入存根,使 Portage 認為已安裝。可靈活使用於少數硬體的 XFree86 版本執行檔或自己的套件, 必須 指定分類與套件特殊版本以便注入。例如 emerge inject sys-kernel/gentoo-sources-2.4.19

prune ( -P) 警告: 這個動作會移除重要的套件! 移除所有套件,除了新版的。若套件有多個 SLOT,會在每個 SLOT 留下最新版。不檢查相依性,可能會一併移除系統檔案。 clean 代替,除非很清楚過程。 參數可以是 ebuildsclassesdependencies。 -- 見上述 clean

regen 使 portage 檢查與更新 portage 樹中的 ebuild 相依快取。快取用於加速搜尋與建立相依樹,此指令不適用於 rsync 用戶 ,當 rsync 用伺服端快取來更新。若不知道 'rsync 用戶' 與其他用戶的不同,就是 Rsync 用戶可執行 emerge sync 來重新產生快取。

search ( -s) 在 Portage 數中搜尋符合該字串的套件。可以是正規表示式。 如 emerge search "^kde" 搜尋為首的 "kde"; emerge search "gcc$" 搜尋套件結尾是 "gcc"; emerge search "office" 搜尋任何套件包含字串 "office" 如果想一併搜尋套件敘述,使用 --searchdesc

sync 以 rsync.gentoo.org 的映射站台同步更新 portage 目錄樹。 注意之前所作變更會消除。 除了特殊情況用 rsync 來更新。 見 make.conf(5)中 PORTDIR_OVERLAY 避免刪除。

unmerge ( -C) 警告: 這個動作會移除重要套件! 移除所有符合的套件,不檢查相依性,所以可能移除系統所需檔案。 參數為 ebuildsclassesdependencies -- 見上述 clean .

[ 編輯]

選項(OPTIONS)

--ask ( -a) 在合併前,顯示哪個 ebuilds 與 tbz2s 將被安裝,與 --pretend 同樣的格式; 詢問是否繼續合併或離開。執行重複命令,用 --ask 會比 --pretend更有效率,不需 --pretend,相依性只會計算一次。

--buildpkg ( -b) 建立執行檔,適用於多系統 (建立一次, 到處可 emerge tbz2s)。套件建立於 ${PKGDIR}/All directory。另一種已合併套件用 quickpkg 產生。

--buildpkgonly ( -B) 建立執行檔 packages 而不合併,需要先合併於系統。

--changelog ( -l) 與 --pretend 並用,顯示所有將更新套件的變更紀錄。

--columns--pretend 並用,新舊版本訊息顯示在一列以供剪貼。

--debug ( -d) 告訴 emerge 執行 emerge 內建除錯。在此模式中 bash 環境將以 -x 執行以產生除錯資訊。 --debug 適於搜尋 bash 語法錯誤。

--deep ( -D) 與 --update 並用,強迫 emerge 考慮整個套件相依樹,不只立即檢查套件相依性。如函式庫更新的快取不直接列在套件相依性中。

--emptytree ( -e) 虛擬地調整已安裝的套件樹為僅包含 glibc; 適合與 --pretend 並用. 這允許發展員取得套件相依樹的完整綜覽,也允許以全新的函式庫重建套件相依樹。

--fetchonly ( -f) 不建立套件, 只擷取所有套件檔 (主套件與所有相依套件)。

--noconfmem 使 portage 忽略合併紀錄指示的組態檔,取代已合併的 CONFIG_PROTECT 目錄。 Portage 將合併這些檔案一次,避免用戶處理同組態多次。

--nodeps ( -O) 組合特定套件而非任意相依套件,注意當相依性不足時可能會失敗。

--noreplace ( -n) 略過命令列中已安裝的套件。若無此選項,任何命令列中的套件 ebuilds 或 deps *將會* 使 Portage 重新合併套件,即使已安裝。注意 Portage 預設不重新合併相依套件。

--nospinner 停用連線過程的 spinner。當連線裝置為 TTY 時 spinner 會啟用,此選項可取消。

--oneshot 一般合併,但不加入新套件到 world profile 作更新。

--onlydeps ( -o) 只合併 (或假合併) 指定套件的相依,不含指定套件本身。 --pretend ( -p)

取代真實的合併,簡單的顯示 *將要* 安裝的,若不使用 --pretend。 安裝不熟悉的套件前,強烈建議使用 --pretend。輸出訊息 N = new 新增、 U = upgrading 升級、 R = replacing 取代、 F = fetch restricted 限制擷取、 B = blocked by an already installed package 被已安裝的套件阻斷。

--quiet ( -q) 結果可能改變,但一般輸出會減少或出現在 portage 顯示區。

--resume 繼續前次合併操作。注意此操作只會在錯誤時終止,若 portage 沒有程序可作,portage 將離開並產生成功訊息。

--searchdesc ( -S) 搜尋名稱與敘述皆符合關鍵字串的套件。 注意 敘述也適用於正規表示。

--skipfirst 此選項僅能與 --resume 同時使用。 將移除接續作業中的第一個套件,以使接續完全,合併可能接著無法更正與不合理的錯誤。這選項應被用在當省略該套件也不影響相依性時才使用。

--tree( -t) 他會告訴你每個要安裝的套件為誰而戰、為何而戰!(感謝 Hydonsingore提醒 來源: http://forums.gentoo.org.tw/viewtopic.php?t=43664)

--update ( -u) 更新套件到最近的版本。 注意 --update 功能尚未完全, 尚無法自動更新 world 中的相依套件,除非相依套件在 world 檔中。

--upgradeonly ( -U) 更新套件,但不更新會導致版本號碼降低的套件。 SLOT 為基本考量。

--usepkg ( -k) 要 emerge 使用預編的套件 (來自 $PKGDIR) ,若有可免去編譯。也可從光碟(CD2)安裝: export PKGDIR=/mnt/cdrom(/packages) ,配合 -p 可預覽。

--usepkgonly ( -K) 如 --usepkg,只使用 PKGDIR 而不下載。

--verbose ( -v) 告訴 emerge 以詳述模式執行。目前此選項可使 emerge 印出 GNU 錯誤訊息,並顯示假執行所用的 USE flags。

--version ( -V) 顯示 emerge 版本。不能與其他選項共用,名稱與格式為規範。

[ 編輯]

環境選項(ENVIRONMENT OPTIONS)

ROOT = [path]
指定 ROOT 檔案系統,用以合併套件或 ebuilds,預設是 /。

[ 編輯]

輸出(OUTPUT)

當使用 emerge 與 pretend/verbose 選項時,第一次的輸出會有點難以閱讀。 本段用以解釋縮寫資訊代表的意義:

[blocks B ] app-text/dos2unix (from pkg app-text/hd2u-0.8.0) Dos2unix 封鎖 hd2u 的合併。兩個套件互用彼此的檔案稱為阻斷, 可能會毀損系統。無論如何,因為提供相同功能,套件不必同時合併。

[ebuild N ] app-games/qstat-25c Qstat 是新套件,作第一次合併。

[ebuild R ] sys-apps/sed-4.0.5 Sed 4.0.5 已經合併,但若你執行命令列,portage 將重合併特定套件 (例子中的 sed)。

[ebuild F ] media-video/realplayer-8-r6 realplayer 套件需要手動下載原始碼,若合併時找不到某些檔,portage 將停住,提示如何下載所需檔案。

[ebuild U ] net-fs/samba-2.2.8_pre1 [2.2.7a] Samba 2.2.7a 已經合併可更新到版本 2.2.8_pre1。

[ebuild UD] media-libs/libgd-1.8.4 [2.0.11] Libgd 2.0.11 已經合併,若執行命令,portage 將下載到版本 1.8.4。
這可能是新版的套件被封鎖,因為毀損或會造成系統危險而尚未修正。
另一個可能原因是若合併該套件需要一個舊版的套件。(此例中 libgd 2.x 不相容於 libgd 1.x,這意味 libgd 1.x 編譯成的套件不相容於 2.x,合併前須先下載 libgd )。

[ebuild U-] x11-base/xfree-4.3.0 [4.2.99.902] SLOT information about Xfree 缺乏 SLOT 資訊。 當先前合併的版本被注入 (見 inject) 或過期很久 (尚未有 SLOT )。 可隨意更新 Xfree 。

[ebuild U ] net-analyzer/nmap-3.15_beta2 [3.15_beta1] -gtk -gnome 合併 nmap 時, USE 狀態變數 為 -gtk 與 -gonme。 nmap 可使用 USE 變數 gtk 與 gnome,但目前設定為停用,所以 nmap 合併時不支援。
*備註: USE 只在使用 --pretend--verbose 時會顯示。

[ 編輯]

備註(NOTES)

建議總是在套件安裝或升級前嘗試使用 --pretend。這會讓你看到將有何影響,且顯示需修正的封鎖套件。對於 systemworld 類別都是。若 portage 樹特別活躍,可升級多個套件。

使用典型的 --update, 忽略那些已安裝的套件, 而升級其他的。

當套件未安裝相依套件將不會加入 world 檔,如果想在 world 中被更新,需明確的列在 emerge 參數中。
USE 環境變數可於命令列指定取代設定檔,但不會儲存。 USE="-x -gnome" emerge mc 可合併 mc 而避免安裝不要的相依套件。

emerge --update systememerge --update world有錯誤訊息,可能是 ebuild 使用了新功能是目前 emerge 版本沒有的,可用 emerge --update portage 更新 portage。

[ 編輯]

被封鎖的套件(MASKED PACKAGES)

備註:使用發展中套件時請注意,濫用封鎖套件會耗盡發展時間,請確認你能處理可能接踵而來的問題。

portage 中的封鎖遮罩提供三個主要功能: 允許套件被用於機器上的週期、在套件將失敗時停止使用、遮罩已存在而毀損的套件或可能造成安全風險的套件。 遮罩可用兩種方式完成: package.maskKEYWORDS,以下列出如何解除封鎖, 也注意若合併 ebuild,會忽略各種形式的封鎖且 emerge 將合併套件。

package.mask package.mask 主要阻斷會造成問題的套件或已知異於系統者。存在於 ${PORTDIR}/profiles,套件可藉由加入 ( #) 以解除封鎖。

KEYWORDS KEYWORDS 用於測試中的套件。每個套件都有特定架構的 keywords 使 portage 知道哪個系統相容此套件。套件已被編譯,但未證明穩定者,架構名稱前加入 ( ~)。
emerge 檢查 ACCEPT_KEYWORDS 環境變數, 允許或不許合併中的套件合併被 KEYWORDS 封鎖的套件. 通知 emerge 應建立這些'測試'版本可以設定 ACCEPT_KEYWORDS 到 " ~arch&quot,而 arch 屬於: x86 ppc sparc mips alpha arm hppa
警告: 設定此變數到所用架構外的值。

[ 編輯]

錯誤回報(REPORTING BUGS)

請透過下列網站回報錯誤:
http://bugs.gentoo.org/
請加入emerge info 產生的輸出.

[ 編輯]

參見(SEE ALSO)

emerge --help, make.conf
有許多協助程式在 /usr/lib/portage/bin
app-admin/gentoolkit 套件包含有用的指令稿如 qpkg (套件查詢工具)。

[ 編輯]

檔案(FILES)

/var/cache/edb/world 包含使用者自訂套件清單。可以安全地編輯這個檔案,加入 world 類別中的套件更新並考慮移除不要的。

/etc/make.conf 包含建立所用的變數,取代 make.globals中的。 應該編輯這個檔而非下列檔案

/etc/dispatch-conf.conf 包含設定用以處理自動更新/備份套件組態。

/etc/make.profile/make.defaults 包含 profile-specific 變數供以建立行程。 不要編輯此檔

/etc/make.profile/use.defaults 包含套件清單。若已安裝,個別使用 use flag 。 不要編輯此檔

/usr/portage/profiles/use.desc 包含主清單 USE flags 與功能敘述。 不要編輯此檔

/etc/make.profile/virtuals 包含預設套件清單用以解析虛擬相依性。 不要編輯此檔

/var/cache/edb/virtuals 包含套件清單用以解析虛擬相依套件,虛擬配對若失敗可以重排對應的虛擬項目。 第一個虛擬套件清單是用以符合虛擬的項目.

/etc/make.profile/package 包含BASE系統的套件清單。 systemworld 類別查閱此檔。 不要編輯此檔

/etc/make.globals 包含建立過程中的預設變數。 不要編輯此檔

[ 編輯]

作者(AUTHORS)

Daniel Robbins <drobbins@gentoo.org (mailto:drobbins@gentoo.org)>
Geert Bevin <gbevin@gentoo.org (mailto:gbevin@gentoo.org)>
Achim Gottinger <achim@gentoo.org (mailto:achim@gentoo.org)>
Nicholas Jones <carpaski@gentoo.org (mailto:carpaski@gentoo.org)>
Phil Bordelon <sunflare@gentoo.org (mailto:sunflare@gentoo.org)>
Mike Frysinger <vapier@gentoo.org (mailto:vapier@gentoo.org)>

[ 編輯]

CVS HEADER

$Id: emerge.1,v 1.48 2004/02/09 16:38:36 vapier Exp $

Translator Note(譯註):

譯自 http://gentoo-wiki.com/MAN_emerge
Web介面的工具 http://remerge.sourceforge.net
- - - - - - - - - - - - - - - - - - - -
lusng(at)hotmail.com

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值