可以用 pkg_add(1) 從本機上或者透過網路來安裝任一 FreeBSD package。
#
ftp -a ftp2.FreeBSD.org
Connected to ftp2.FreeBSD.org.
220 ftp2.FreeBSD.org FTP server (Version 6.00LS) ready.
331 Guest login ok, send your email address as password.
230-
230- This machine is in Vienna, VA, USA, hosted by Verio.
230- Questions? E-mail freebsd@vienna.verio.net.
230-
230-
230 Guest login ok, access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
cd /pub/FreeBSD/ports/packages/sysutils/
250 CWD command successful.
ftp>
get lsof-4.56.4.tgz
local: lsof-4.56.4.tgz remote: lsof-4.56.4.tgz
200 PORT command successful.
150 Opening BINARY mode data connection for 'lsof-4.56.4.tgz' (92375 bytes).
100% |**************************************************| 92375 00:00 ETA
226 Transfer complete.
92375 bytes received in 5.60 seconds (16.11 KB/s)
ftp>
exit
#
pkg_add lsof-4.56.4.tgz
若手邊沒有 package 來源(像是 FreeBSD 光碟)的話,
那麼建議使用 pkg_add(1) 時,加上 -r
選項來更輕鬆安裝 package。如此一來,就會自動判斷正確的 package 格式、
以及所搭配的作業系統 release 版本,
然後會自己從 FTP 站抓回、安裝相對應的 package。
#
pkg_add -r lsof
上面這例子會自動下載正確的 package 並安裝。
若想改換用其他 FreeBSD Packages Mirror 站,那麼就要設定
PACKAGESITE
環境變數,
如此一來才會取代預設設定。 pkg_add(1)
會用 fetch(3) 指令來下載檔案,而 fetch(3)
本身則會使用相關環境變數的設定,
像是:
FTP_PASSIVE_MODE
、FTP_PROXY
以及
FTP_PASSWORD
。 如果你網路環境處於 firewall
後面,或者需要用 FTP/HTTP proxy 的話,那麼就需要設定。
設定細節請參閱 fetch(3)。
請注意:上面所說的例子是寫 lsof
而非
lsof-4.56.4
。 當使用遠端抓取功能時,該
package 版號就不必加上去了。
pkg_add(1) 會自動下載該軟體的最新版回來安裝。
若用的是 FreeBSD-CURRENT 或 FreeBSD-STABLE 的話,pkg_add(1)
會自動下載該軟體最新版回來。
若用的是屬於 -RELEASE 版本,那麼他會抓回屬於該 release 上所編譯的
package。
也可以更改 PACKAGESITE
環境變數,以改變下載方式。
舉例來說,如果是 FreeBSD 5.4-RELEASE 的話,那麼 pkg_add(1)
預設會從
ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5.4-release/Latest/
來抓 package。若要強制 pkg_add(1) 下載 FreeBSD 5-STABLE
所用的 package,那麼就把 PACKAGESITE
改設為
ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5-stable/Latest/
即可。
Package 檔有 .tgz
以及
.tbz
兩種格式。
這些都可透過 ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/
,或者 FreeBSD 光碟內取得。
每張 4 片裝的 FreeBSD 光碟(以及 PowerPak 包等等)內都會在
/packages
目錄內放 package。
裡面的目錄架構類似 /usr/ports
的目錄架構。
每個分類都各自有專屬目錄,且每份 package 都會放在
All
目錄內。
package 目錄架構與 port 的都一致;它們共同構成整個 package/port 系統機制。
pkg_info(1) 可用來列出所有已安裝的軟體、軟體簡介。
#
pkg_info
cvsup-16.1 A general network file distribution system optimized for CV
docbook-1.2 Meta-port for the different versions of the DocBook DTD
...pkg_version(1) 則是列出所有已安裝的軟體版本。 它會顯示已裝版本以及目前機器上 port tree 的版本差異。
#
pkg_version
cvsup =
docbook =
...第二欄的符號表示:已安裝的軟體版本與目前機器上 port tree 的版本差異。
符號 | 代表意義 |
---|---|
= | 已裝的版本與目前機器上 port tree 的版本是同一版的。 |
< | 與目前機器上 port tree 版本相比起來,已裝的版本較舊。 |
> | 與目前機器上 port tree 版本相比起來, 已裝的版本較新。(可能是目前機器上 port tree 尚未更新。) |
? | 已裝的軟體在 ports 索引內找無相關資料。 (通常可能是,舉例來說:已安裝的該 port 已從 Ports Collection 中移除或改名了。) |
* | 該軟體同時有許多版本。 |
若要移除已裝的軟體,那麼請多利用 pkg_delete(1) 工具,比如:
#
pkg_delete xchat-1.7.1
請注意 pkg_delete(1) 須要放上完整的軟體名稱以及版本,
若只輸入 xchat
就不行,必須換成
xchat-1.7.1
才可。 然而,我們可以用
pkg_version(1) 輕鬆找出已裝的所有軟體版本,或者以 wildcard
(萬用字元) 的方式:
#
pkg_delete xchat\*
以上面例子而言,將會移除所有以 xchat
開頭的軟體。
本文及其他文件,可由此下載: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/。
若有 FreeBSD 方面疑問,請先閱讀
FreeBSD 相關文件,如不能解決的話,再洽詢
<questions@FreeBSD.org>。
關於本文件的問題,請洽詢
<doc@FreeBSD.org>。