2013-12-12 53 views
38

這很奇怪,list-packages緩衝區顯示「可用」作爲某些實際安裝的軟件包的狀態。該欄不應該顯示「安裝」他們嗎?當我點擊一個,打開一個新的緩衝區通知我該軟件包已安裝,但不提供卸載選項。相比之下,我沒有安裝的其他軟件包顯示爲「可用」,旁邊有「安裝」選項。如何刪除已安裝的elpa軟件包

如何卸載已安裝的軟件包?我目前正在尋找的一個是平滑滾動。

+0

另請參閱http://stackoverflow.com/questions/16469600/how-to-remove-an-installed-package-in-emacs-ver-24我已提名爲重複,但其中有一些可能有用的備註。 – tripleee

回答

34

我喜歡使用窮人的man解決方案:只需在~/.emacs.d/elpa/(或您的package-directory-list中指定的目錄)中刪除不需要的軟件包的目錄即可。

+1

我對此的擔心是,有沒有另一個文件顯示*安裝了什麼*,那不會是目錄本身的一部分?當然emacs必須知道它應該加載什麼,如果這些信息並不總是在.emacs文件中 – johnbakers

+5

沒有這樣的文件。 'package-initialize'掃描你在package-directory-list中爲軟件包配置的目錄。使用'package-load-list',自動加載「魔術」部分。通常@lunaryorn建議應該完成這項工作,但是當你發現問題時,刪除目錄是安全的選擇。 – juanleon

+0

謝謝!我安裝了'package-filter.el',然後發現很多東西被破壞了,包括軟件包管理器,所以沒有'd' - >'x'也沒有任何東西,除了這個解決方案。 – ryenus

25

包菜單顯示全部包的已知版本。

因此,你可能會看到列爲可用,以及安裝的包,用於 例如,如果有相同的封裝可用的新版本,或者如果 相同的包可從不同的檔案。

要刪除此類包,只需在列表中向下滾動,或使用C-s PACKAGE-NAME搜索包的出現次數。一旦找到 安裝的版本的軟件包,請按D標記要刪除的軟件包, 然後x執行該操作並實際刪除該軟件包。

+0

問題是,當我按下D時,即使安裝了它,它旁邊也沒有標記。 – johnbakers

+1

@OpenLearner您是否在標記爲**已安裝**的軟件包版本上按「D」?它在標記爲* available *的版本上不起作用。 – lunaryorn

+0

他們都沒有在列表中的實際列中顯示爲「已安裝」,即使實際上已經安裝了此包,並且在您點擊它時也這樣說。 – johnbakers

14

我發現它是偶然的:帶上包裹清單,找到你想要刪除的包裹,然後按'D'。完成後,按'X',它將刪除軟件包。它的作用與安裝新軟件包完全一樣,除了用'D'替換'I'(我認爲'D'代表'刪除')。

+0

'F10'以檢查軟件包菜單:標記爲安裝(i)標記爲刪除d)執行標記選項(x) – xiaobing

22

我剛下

M-x packages-list-packages 
C-s django-snippets 

標記軟件包通過鍵入d卸載Django的片段包刪除。 通過鍵入x執行。

與刪除~/.emacs.d/elpa/中的相關目錄完全相同。

NB,對於最近的emacs,命令(而不是packages-list-packageslist-packages

13

爲Emacs 25.1及以上時,命令

M-x package-delete

引發帶有自動完成的提示到包的名稱你已經安裝了。

+4

應該指出的是,這僅僅是Emacs 25.1+ – npostavs

相關問題