LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 960|回复: 0

portupgrade 无法读取数据库的错误[解决了]

[复制链接]
发表于 2007-2-2 00:30:17 | 显示全部楼层 |阅读模式
http://svn.desktopbsd.net/trac/ticket/43

portupgrade doesn't work because it can't read portsdb

Reported by:         Arabian         Assigned to:         peterh
Priority:         major         Milestone:         DesktopBSD 1.6
Component:         Package Management         Version:         1.6-RC1
Keywords:                 Cc:        
Description ¶

COMPAQ# portupgrade -ia ---> Session started at: Fri, 19 Jan 2007 16:08:46 +0000 [Updating the pkgdb <format:bdb_btree> in /var/db/pkg ... - 241 packages found (-1 +1) (...). done] [missing key: virtual_categories] [Updating the portsdb <format:bdb_btree> in /usr/ports ... - 0 port entries found ..... done] missing key: virtual_categories: Cannot read the portsdb! ---> Session ended at: Fri, 19 Jan 2007 16:08:57 +0000 (consumed 00:00:11) /usr/local/lib/ruby/site_ruby/1.8/portsdb.rb:548:in `open_db': database file error (PortsDB:BError)

    from /usr/local/lib/ruby/site_ruby/1.8/portsdb.rb:702:in `port' from /usr/local/lib/ruby/site_ruby/1.8/portsdb.rb:890:in `all_depends_list' from /usr/local/lib/ruby/site_ruby/1.8/pkgdb.rb:809:in `tsort_build' from /usr/local/lib/ruby/site_ruby/1.8/pkgdb.rb:801:in `each' from /usr/local/lib/ruby/site_ruby/1.8/pkgdb.rb:801:in `tsort_build' from /usr/local/lib/ruby/site_ruby/1.8/pkgdb.rb:823:in `sort_build' from /usr/local/lib/ruby/site_ruby/1.8/pkgdb.rb:827:in `sort_build!' from /usr/local/sbin/portupgrade:721:in `main' from /usr/local/lib/ruby/1.8/optparse.rb:755:in `initialize' from /usr/local/sbin/portupgrade:220:in `new' from /usr/local/sbin/portupgrade:220:in `main' from /usr/local/sbin/portupgrade:2084

-----------------------------------------------------------------------------------
http://www.freshports.org/sysutils/portupgrade/

2006-07-03

Affects: users of sysutils/portupgrade

Author: sem@FreeBSD.org

Reason:
  Because portupgrade had a problem with detecting Berkley DB version 2
  or newer, and the default database format is now set to use these
  versions, you can end up with a portupgrade that does not work with
  older databases. A quick fix is to remove the databases, type:
  'rm /var/db/pkg/pkgdb.db /usr/ports/INDEX*.db'.
  portupgrade will recreate them automatically. It does absolutely no harm.

  If you do not want remove the databases, you should detect what database
  type do you use, and set the port options for portupgrade accordingly.
  Follow these instructions:

  - run 'pkgdb -fu' *before* upgrading and take a look on the output.
    You can see database format there as: format:XXX, where XXX is your
    current database format.
  - Go to portupgrade port directory and configure the port with
    `make config' command. If you have bdb_* format, then turn on the BDB4
    option. If you have bdb1_* format, then turn off BDB4 and turn on
    the BDB1 option. If you have dbd_hash format, then turn off all options.
  - Upgrade portupgrade.

  Note: if you change database format with changing port options,
  you should remove the ruby-bdb* port that you don't need anymore.
  Alternatively, you can hard code database format in your pkgtools.conf.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表