我有一個.emacs
文件,其中我使用package-install
在初始化時自動從存儲庫安裝所需的包。到目前爲止,我正在使用http://melpa.milkbox.net/packages/
存儲庫,我通過在線教程獲取了這個存儲庫。在某些時候,我試圖安裝auctex
軟件包,並收到一條錯誤消息,告訴我該軟件包在該存儲庫下不可用。我檢查,這是真的。我發現了在GNU存儲庫下的auctex
包is available:http://elpa.gnu.org/packages/
。在emacs中使用不同的包存儲庫
我試圖做的是:添加第二個包庫(GNU ELPA在這種情況下)我.emacs
從該文件是否需要安裝第一個庫(MELPA)下沒有可用的軟件包package-install
可以養活。
我不是專家(事實上,我是一個純粹的初學者)在Elisp,我瀏覽了各種線索以找到解決方案。這裏是我的實際代碼:
(package-initialize)
(require 'package)
(add-to-list 'package-archives
'(("melpa" . "http://melpa.milkbox.net/packages/")
("gnu" . "http://elpa.gnu.org/packages/")) t)
(package-refresh-contents)
(dolist (package '(use-package))
(unless (package-installed-p package)
(package-install package)))
(use-package paredit :ensure t)
(dolist (package '(auctex ; <-- Not available under MELPA!
auto-complete
auto-complete-c-headers
magit
sr-speedbar
yasnippet
))
(unless (package-installed-p package)
(package-install package))
(require package))
有了這個代碼在我.emacs
文件,當我啓動emacs的時候,我的配置被忽略。我收到此錯誤消息:error: Required feature 'auctex' was not provided
。
如何修改我的代碼以查看來自GNU ELPA的auctex
軟件包?
爲了您的信息,我使用Ubuntu 16.04與GNU Emacs 24.5.1。
編輯:我想補充幾句什麼斯特凡提出:有幾個問題,我的代碼,並分裂我的兩個add-to-list 'package-archives ...)
電話似乎沒有,上下班(雖然它是正確的事當然是)。這是由於我的(require package
)線路試圖做到:(require auctex)
在某些時候。看到this post,看看爲什麼這是一個問題。
我讀到(require 'package-name)
安裝後不需要的事實。 This post解釋了原因。刪除此行確保auctex
正確加載,因爲它是自動加載的。
從此,一切正常,沒有更多的錯誤或警告。我然後試圖刪除我的線:
(add-to-list 'package-archives
'("gnu" . "http://elpa.gnu.org/packages/"))
和auctex
包仍然正確加載。
你想用這個做什麼:'(dolist(package'(use-package))...)'?它遍歷列表的唯一元素是符號'use-package' - 僅一次迭代,綁定變量'package'爲符號'use-package'。 – Drew