Portage 是 Gentoo Linux 在套件管理的特色,感覺很像 BSD 中的 Ports Tree,透過 Portage 可以讓 Gentoo Linux 使用者可以取得套件名稱。 Portage 是指 ebuilds 的集合,檔案中包含 Portage 維護軟體所需的資訊(安裝,搜尋,查詢,…)。這些 ebuilds 預設存放在 /usr/portage 目錄之中,因此定期更新系統上的 ebuilds 是非常重要的。
emerge 是 Portage 的一個文字介面前端的管理式。
[@more@]
1. 同步套件庫 –sync
# emerge –sync
2. 搜尋套件 –search
# emerge –search bind-tools
# emerge -s bind-tools
Searching…
[ Results for search key : bind-tools ]
[ Applications found : 1 ]
* net-dns/bind-tools
Latest version available: 9.9.5
Latest version installed: [ Not Installed ]
Size of files: 7,548 kB
Homepage: http://www.isc.org/software/bind
Description: bind tools: dig, nslookup, host, nsupdate, dnssec-keygen
License: ISC BSD BSD-2 HPND JNIC RSA openssl
3. 搜尋描述的內容 –searchdesc
# emerge –searchdesc firefox
# emerge -S firefox
Searching…
[ Results for search key : firefox ]
[ Applications found : 3 ]
* www-client/firefox
Latest version available: 24.3.0
Latest version installed: [ Not Installed ]
Size of files: 116,599 kB
Homepage: http://www.mozilla.com/firefox
Description: Firefox Web Browser
License: MPL-2.0 GPL-2 LGPL-2.1
* www-client/firefox-bin [ Masked ]
Latest version available: 34.0.5
Latest version installed: [ Not Installed ]
Size of files: 0 kB
Homepage: http://www.mozilla.com/firefox
Description: Firefox Web Browser
License: MPL-2.0 GPL-2 LGPL-2.1
* www-client/vimprobable2 [ Masked ]
Latest version available: 9999
Latest version installed: [ Not Installed ]
Size of files: 0 kB
Homepage: http://www.vimprobable.org/
Description: A minimal web browser that behaves like the Vimperator plugin for Firefox
License: MIT
Calculating dependencies… done!
4. 安裝套件
# emerge bind-tools
安裝套件時指定編譯的參數
# USE=’sasl’ emerge postfix
或
# export USE=’sasl’
# emerge postfix
# emerge -k bind-tools
>>> Verifying ebuild manifests
>>> Emerging (1 of 1) net-dns/bind-tools-9.9.5
>>> Downloading ‘http://distfiles.gentoo.org/distfiles/bind-9.9.5.tar.gz’
–2014-12-30 20:46:22– http://distfiles.gentoo.org/distfiles/bind-9.9.5.tar.gz
Resolving distfiles.gentoo.org… 64.50.233.100, 64.50.236.52, 137.226.34.42, …
Connecting to distfiles.gentoo.org|64.50.233.100|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 7729695 (7.4M) [application/x-gzip]
Saving to: ‘/usr/portage/distfiles/bind-9.9.5.tar.gz’
100%[======================================>] 7,729,695 1.89MB/s in 3.9s
2014-12-30 20:46:27 (1.89 MB/s) – ‘/usr/portage/distfiles/bind-9.9.5.tar.gz’ saved [7729695/7729695]
中略……..
usr/bin/dig
usr/bin/host
usr/bin/nslookup
usr/bin/nsupdate
usr/bin/dnssec-keygen
ecompressdir: bzip2 -9 /usr/share/doc
ecompressdir: bzip2 -9 /usr/share/man
>>> Installing (1 of 1) net-dns/bind-tools-9.9.5
>>> Recording net-dns/bind-tools in “world” favorites file…
>>> Auto-cleaning packages…
>>> No outdated packages were found on your system.
* GNU info directory index is up-to-date.
5. 檢查套件相依性 –pretend
# emerge –pretend vixie-cron
# emerge -p vixie-cron
# emerge -pv vixie-cron
These are the packages that would be merged, in order:
Calculating dependencies… done!
[ebuild N ] sys-process/cronbase-0.3.3
[ebuild N ] sys-process/vixie-cron-4.1-r14 USE=”pam -debug (-selinux)”
6. 移除套件 –unmerge
# emerge –unmerge wget
# emerge -C wget
7. 檢查系統需要更新的件
# emerge -pv world
8. 更新套件 –update
# emerge –update wget
# emerge -u wget
在部分套件升級完畢,需要執行 etc-update 才能正常使用。執行 etc-update 之後出現的選項:
-1:不使用新的設定檔取代舊的設定檔
-3 :使用新的設定檔取代舊的設定檔(會詢問)
-5 :使用新的設定檔取代舊的設定檔(不會詢問)
10. 更新整個系統
# emerge –update world
# emerge -u world