接下來要來介紹portupgrade相關的程式如何使用。下達以下指令。
root@myhost [/usr/ports/ports-mgmt/portupgrade] > portversion
portversion: Command not found.
如果有以上情形發生,是一個正常的現象。這是為了加速搜尋可執行的程式的速度,而使用記憶體來記憶可執行的程式在硬碟中存放的位置,建立一個索引。每次執行程式的時候就不用搜尋硬碟。每次剛安裝完軟體,硬碟中的可執行的程式就增加了一些,但是在記憶體中的索引卻不一定會同步更新。就會產生Command not found這種「指令找不到」的情形。
解決的方式有二種:一是下達rehash指令,更新在記憶體中的索引;二是重新登入系統。
root@myhost [/usr/ports/ports-mgmt/portupgrade] > rehash
現在讓我們來看看portversion正常執行時會出現的結果。
[Rebuilding the pkgdb <format:bdb_btree> in /var/db/pkg ... - 6 packages found ( -0 +6) ...... done] [Updating the portsdb <format:bdb_btree> in /usr/ports ... - 17226 port entries found .........1000.........2000.........3000.........4000.........5000......... 6000.........7000.........8000.........9000.........10000.........11000......... 12000.........13000.........14000.........15000.........16000.........17000.. .. ... done] db41 = perl = portupgrade = ruby = ruby18-bdb = sudo <
[Rebuilding the pkgdb ...]和[Update the portsdb ...]在執行portversion時不一定會出現,由於我們是第一次執行portversion,因此才需要建立和更新portversion所需要的資料庫。重點在於那幾行有=的資訊。我們可以看到已經安裝的軟體或套件被列出來,而右方則是一個=。等號是表示目前所安裝的軟體或套件和系統上的ports的版本一致,不需要做更新。