当' port'卸载macports时不起作用

时间:2012-05-17 17:14:43

标签: macos macports osx-tiger

我一直在尝试为我正在运行的应用程序安装一些依赖项,我担心我可能已经破坏了开发环境。我在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?我宁愿不必经历之后重新安装所有端口的麻烦,但它比我现在拥有的更好。

2 个答案:

答案 0 :(得分: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和所有端口。

请关注uninstall instructions,但跳过第一个命令,因为port无法再执行。这可能会留下一些端口安装到系统位置的痕迹,但在大多数情况下,这可以正常工作。然后,使用指南中的installation instructions从源安装MacPorts。

答案 1 :(得分:0)

a bug in MacPorts 2.1.0这只影响了Tiger,这在2.1.1中有所规定。如果您仍在运行2.0.4,则可以“sudo port selfupdate”到2.1.1而不会出现问题。如果在2.1.0已经运行时已经运行了selfupdate,因此无法使用任何端口命令,则可以重新运行the last disk image installer for Tiger,然后运行selfupdate以获得2.1.1。