2012-05-17 85 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。