2013-12-12 3 views
38

Это странно, буфер list-packages показывает «доступно» как статус для некоторых пакетов, которые фактически установлены. Должен ли этот столбец показывать «установлен» для них? Когда я нажимаю на него, открывается новый буфер, чтобы сообщить мне, что пакет установлен, но не имеет опции удаления. Для сравнения, другие пакеты, которые у меня не установлены, отображаются как «доступные» с опцией «установить» рядом с ними.Как удалить установленный пакет elpa

Как удалить установленный пакет? Тот, который я сейчас смотрю на топор, гладко прокручивается.

+0

См. Также http://stackoverflow.com/questions/16469600/how-to-remove-an-installed-package-in-emacs-ver-24, который я выдвинул в качестве дубликата, но который имеет некоторые потенциально полезные замечания. – tripleee

ответ

34

Мне нравится использовать решение для бедного человека для этого: просто удалите каталог для нежелательного пакета в ~/.emacs.d/elpa/ (или каталог, указанный в вашем package-directory-list).

+1

моя забота об этом заключается в том, что нет другого файла, где-либо показывающего * what *, который не был бы частью самого каталога? Разумеется, 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' на версию пакета, помеченную как ** установленную **? Он не будет работать с версией, помеченной как * доступной *. – lunaryorn

+0

ни один из них не отображается как «установлен» в фактическом столбце в списке, хотя этот пакет фактически установлен и говорит об этом, когда вы нажимаете на него. – johnbakers

14

Я нашел это случайно: включите список пакетов, найдите пакет (ы), который хотите удалить, и нажмите «D». Когда вы закончите, нажмите «X», и он удалит пакеты. Он работает точно так же, как при установке новых пакетов, за исключением того, что вы заменяете «I» на «D» (я думаю, что «D» означает «удалить»).

+0

'F10', чтобы проверить меню« Пакет »: отметьте для установки (i) Отметить для удаления (d) Выполнить отмеченные параметры (x) – xiaobing

22

Я только что удалили Джанго-Snippets пакеты по

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

Марк пакет для удаления, введя d. Выполнить, набрав x.

Точно так же, как удаление связанного каталога внутри ~/.emacs.d/elpa/.

NB, за последние Emacs, команда list-packages (вместо packages-list-packages)

13

Для Emacs 25.1 и выше, команда

M-x package-delete

поднимает подсказку с автозавершения в именах пакетов вы уже установлены.

+4

Следует отметить, что это относится только к Emacs 25.1+ – npostavs

Смежные вопросы