2017-08-08 152 views
0

我想在我移动到新计算机时使用脚本自动安装所有软件包。Emacs软件包安装脚本无法获取软件包

我写这个剧本和Emacs给我Package ‘highlight-symbol-’ is unavailable

#! emacs -q --script 
;;; load package module 
(require 'package) 
(dolist (url '(("melpa" . "https://melpa.org/packages/") 
      ("melpa-stable" . "http://stable.melpa.org/packages/") 
     )) 
    (add-to-list 'package-archives url t)) 
(package-initialize) 

;;; read package list from `packages` file 
(defvar *packages-list '("highlight-symbol" "monokai-theme")) 


(unless package-archive-contents 
    (package-refresh-contents)) 

;;; install packages 
(dolist (package *packages-list) 
    (if (package-installed-p (intern package)) 
     (princ (format "%s already installed \n" package)) 
    (progn 
     (princ (format "%s is installing \n" package)) 
     (package-install package) 
     (princ (format "%s installed \n\n"))))) 

我试了一下:

  1. 使用emacs -q并尝试将它纳入划伤(package-install package)仍有问题。
  2. 我不知道DONT-SELECT在#'package-install中的含义,所以我试过(package-install package nil)(package-install package ""),它们仍然有问题。
  3. M-x软件包安装运行良好。

我该如何解决这个问题。我在这个剧本中误解了什么。 谢谢!

回答

0

对不起,伙计们,这是一个白痴问题。

答案是package-install接受符号,但字符串。

我将代码更改为(package-install (intern package)然后它工作。