• 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

  • 相关阅读:
    Linux下解析域名命令-dig 命令使用详解
    重写、覆盖、重载、多态几个概念的区别分析
    介绍python中运算符优先级
    介绍Python中6个序列的内置类型
    Mysql(Mariadb)数据库主从复制
    winscp中使用sudo的方法
    git push跳过用户名和密码认证配置教程
    案例:通过shell脚本实现mysql数据备份与清理
    毕业季,我的Linux求职之路
    PHP和ajax详解
  • 原文地址:https://www.cnblogs.com/huqingyu/p/368870.html
Copyright © 2020-2023  润新知