2016-01-10 65 views
2

更新過期的軟件包後,auto-complete(及其依賴關係如ac-slime)打破了錯誤「未提供需要功能」彈出窗口。檢查elpa目錄顯示popup在那裏。在elpa目錄中使用byte-recompile-directory重新編譯所有內容都沒有解決問題(存在popup.elpopup.elc,但auto-complete仍然失敗)。Emacs自動完成更新後壞了:需要'popup'功能沒有提供

PS。進一步的檢查顯示,其他一些軟件包因爲缺失xml-prc而失敗,但Emacs顯示它已安裝,並且確實存在於elpa目錄中。

我的步驟是讓Emacs再次運作?

+0

popup.el的'provide'語句是[here](https://github.com/auto-complete/popup-el/blob/master/popup.el#L1426)。所以我想知道你爲什麼會得到這樣的錯誤 – syohex

+0

我現在回想起過去,當軟件包更新某些東西可能會中斷時,但通常都可以通過重新編譯所有東西來對其進行排序。這次它沒有幫助。因此,我通過刪除'elpa'目錄並重新安裝所有軟件包(在我的'.emacs'中對其進行了排序,如果缺失,我需要安裝軟件包的列表,因此這是重新啓動Emacs的問題)。但這是一個激進的措施,我想知道是否有更清晰的方法。 – mobiuseng

回答

1

由於沒有其他的解答(我希望會有一個真實的!),這裏是已經在同時工作:

基本上,包更新的東西時出了問題 - 不知道究竟是什麼。通常,byte-recompile-directoryelpa目錄有助於理清問題:它重新編譯所有的包文件,重新啓動後Emacs通常可以加載它們而沒有問題。然而,這一次沒有幫助。所以我用了一個更激烈的措施:我刪除了elpa目錄形式~/.emacs.d(或者實際上我把它移開了),然後重新啓動了Emacs。

我的.emacs文件包含如果缺失需要安裝的軟件包列表,因此所有軟件包重新安裝都會自動發生,我只需等待(大約30分鐘)即可啓動Emacs。

(這是一個衆所周知的伎倆,但如果你有興趣,這裏是源on github

但這種解決方案並不理想,我希望的東西更清潔。