星期三, 4月 18, 2007

FreeBSD 更新 port tree 問題("missing key: categories: Cannot read the portsdb")

  前幾天為了到 Server 上做某些修正作業,想到 portupgrade 可能有點舊,乾脆升級 portupgrade 後再順便做一次 portupgrade -Fuv vim-lite 卻發現一直無法成功 upgrade,訊息如下:

myserver# portupgrade -Fuv vim-lite
---> Session started at: Wed, 18 Mar 2007 16:08:55 +0800
[missing key: categories] [Updating the portsdb in /usr/ports ... - 16648 port entries found .........1000.........2000.........3000.........4000.........5000.........6000.........
7000.........8000.........9000.........10000.........11000.........12000.........13000
.........14000.........15000.........16000........... done]
missing key: categories: Cannot read the portsdb!
database file error

  第一個想到的問題是 /var/db/pkg/pkgdb.db 是不是掛了,但砍了再重建還是一樣;第二個想到的是 /usr/ports/INDEX*.db,結果還是沒有解決問題。最後沒辦法了,把 UPDATING 翻來看看,眼睛停在這裡許久:

20070102:
AFFECTS: users of sysutils/portupgrade
AUTHOR: sem@FreeBSD.org

If you have a problem with upgrading the tools from version 2.2.1 and less,
remove the package with pkg_delete portupgrade\* command and reinstall it
from scratch. Remove /usr/ports/INDEX*.db and run portsdb -u.

  這時才恍然大悟,很久沒看 UPDATING 果然會出狀況,於是依序進行下例 Shell script,我的 package database 才活了過來,簡直是痛哭流涕。

# pkg_delete portupgrade\*
# rm /usr/ports/INDEX*.db
# cd /usr/ports/ports-mgmt/portupgrade
# make install clean
# portsdb -u

沒有留言: