4

我一直在尝试为我正在运行的应用程序安装一些依赖项,我担心我可能会破坏开发环境。我在 MacBook 上运行这个程序(OSX Tiger,我无法访问更新的程序)。MacPorts 已正式损坏,当我尝试运行任何命令时返回此错误:

 sqlite error: near "ADD": syntax error (1) while executing query: ALTER TABLE registry.files ADD COLUMN binary bool
    while executing 
"registry::open $db_path"
    (procedure "mportinit" line 633)
    invoked from within
"mportinit ui_options global_options global_variations"

看到这发生在任何端口_命令上,我不能使用卸载 MacPorts 的标准方法。然而,考虑到我是第一个在这种情况下得到它的人,我宁愿在不知道自己在做什么的情况下不围绕自己扎根。

  1. 这个问题可以解决吗?就我自己的知识而言,有没有人知道究竟是什么导致了这个错误,或者它对 macport 的运行意味着什么?

  2. 我怎样才能(假设这是必要的/一个好主意)彻底卸载 macports?我宁愿以后不必费心重新安装所有端口,但这比我现在拥有的要好。

4

2 回答 2

2

MacPorts 通常仍可在旧版本的 Mac OS X 上运行,因为开发人员不会故意破坏兼容性。MacPorts 官方仅支持最新版本的 Mac OS X 和之前的版本(在撰写本文时,这是 10.7 Lion 和 10.6 Snow Leopard)。

但是,根据您在此处的报告,最新的 MacPorts 2.1.0 升级似乎与 Mac OS X 10.4 Tiger 存在兼容性问题。如上面的错误消息所示,较旧的 SQLite 库版本似乎不理解ALTER TABLE ... ADD COLUMN用于更新端口注册表的语法。

对于这种情况,我假设只有升级过程本身受到影响并且正常操作会起作用。此过程应该将您的 MacPorts 注册表带到此版本中添加的新功能所需的较新版本。创建一个新的空注册表可能仍然有效。但是,这需要完全重新安装 MacPorts 和所有端口。

请按照卸载说明进行操作,但跳过第一个命令,因为port无法再执行。这可能会留下一些端口安装到系统位置的痕迹,但在大多数情况下,这可以正常工作。然后,使用指南中的安装说明从源代码安装 MacPorts 。

于 2012-05-19T22:46:22.707 回答
0

这是MacPorts 2.1.0 中的一个错误中的一个错误,仅影响 Tiger,在 2.1.1 中已修复。如果你还在运行 2.0.4,你可以“sudo port selfupdate”到 2.1.1 没有问题。如果您在 2.1.0 发布时已经运行了 selfupdate,因此无法使用任何端口命令,您可以重新运行Tiger 的最后一个磁盘映像安装程序,然后运行 ​​selfupdate 以获取 2.1.1。

于 2012-05-29T15:26:47.443 回答