Banana Pi – Gentoo Linux 套件管理

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