2012-05-17 55 views
4

我一直在试图为我正在运行的应用程序安装一些依赖关系,并担心我可能会破坏开发环境。我正在MacBook上运行此程序(OSX Tiger,我无法访问更新的程序)。 MacPorts的正式打破,返回此错误,当我尝试运行任何命令:“端口”不起作用时卸载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?之后,我宁愿不必经历重新安装所有端口的麻烦,但它比我现在拥有的更好。

+0

这个问题似乎是脱离主题,因为它不是关于编程或开发。请参阅帮助中心的[我可以询问哪些主题](http://stackoverflow.com/help/on-topic)。也许[超级用户](http://superuser.com/)或[Apple Stack Exchange](http://apple.stackexchange.com/)会是一个更好的地方。 – jww

回答

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。

+0

这样做!不得不使用老虎引入了更多的问题。至少这让事情变得更容易一些。谢谢! –

0

这是a bug in MacPorts 2.1.0只影响老虎,这在2.1.1固定。如果你还在运行2.0.4,你可以毫无问题地将“sudo port selfupdate”改为2.1.1。如果您已经在2.1.0出局时运行了自更新并因此无法使用任何端口命令,则可以重新运行the last disk image installer for Tiger,然后运行selfupdate以获取2.1.1。