我一直在尝试为我正在运行的应用程序安装一些依赖项,但我担心我可能破坏了开发环境。我正在 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 的标准方法。但是,考虑到我是在这种情况下首先得到它的人,我宁愿在不知道自己在做什么的情况下不围绕自己 Root 。
最佳答案
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在指南中。
关于macos - 当 'port' 不起作用时卸载 macports,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10640329/