2014-09-30 14 views
7

Ich bin in der Mitte meiner .emacs Datei zu organisieren, um besser zu verfolgen, was ich alles hinzufügen.Fehler: package.el noch nicht initialisiert

Dabei in den Fehler habe ich im Titel beschrieben laufen, und ich bin nicht sicher genau, warum

meine hier .emacs Datei: (die Last der Kommentare für meine eigene Referenz sind)

;;;; Emacs config file 

;; convenience function for loading multiple libs in a single call 
(defun load-libs (&rest libs) 
    (dolist (lib libs) 
    (load-library lib))) 

;; path to custom libraries as well as the libraries themselves 
(add-to-list 'load-path "~/.emacs.d/lisp/") 
(load-libs "convenience" "editor-behaviour") 

;; Add support for the package manager 
(require 'package) 
;; Add various package archives 
(add-to-list 'package-archives 
     '("marmalade" . "http://marmalade-repo.org/packages/") 
     '("melpa" . "http://melpa.milkbox.net/packages/")) 

;; Installs packages if they aren't already 
(package-refresh-and-install  ; from convenience.el 
'scala-mode2 'sbt-mode 'haskell-mode 'geiser 'auto-complete 'ac-geiser 'cider) 

;; Initialise packages 
(package-initialize) 

;; libs dependent on the packages being initialized go here 
(load-library "autocomplete-config") 

;; Enable Haskell indentation 
(custom-set-variables 
'(haskell-mode-hook '(turn-on-haskell-indentation))) 

emacs .emacs --debug-init Laufen gibt mir die folgende Ausgabe:

Debugger entered--Lisp error: (error "package.el is not yet initialized!") 
    signal(error ("package.el is not yet initialized!")) 
    error("package.el is not yet initialized!") 
    package-installed-p(scala-mode2) 
    (if (package-installed-p pkg) nil (package-refresh-contents) (package-install pkg)) 
    (while --dolist-tail-- (setq pkg (car --dolist-tail--)) (if (package-installed-p pkg) $ 
    (let ((--dolist-tail-- pkgs) pkg) (while --dolist-tail-- (setq pkg (car --dolist-tail-$ 
    package-refresh-and-install(scala-mode2 sbt-mode haskell-mode geiser auto-complete ac-$ 
    eval-buffer(#<buffer *load*> nil "/Users/ElectricCoffee/.emacs" nil t) ; Reading at $ 
    load-with-code-conversion("/Users/ElectricCoffee/.emacs" "/Users/ElectricCoffee/.emacs$ 
    load("~/.emacs" t t) 
    #[0 "^H\205\262^@  \306=\203^Q^@\307^H\310Q\202;^@ \311=\204^^^@\307^H\312Q\202;^@\$ 
    command-line() 
    normal-top-level() 

Welche (von meinem Verständnis) legt nahe, dass es etwas mit 01.230.757 zu tun hat, aber alles, was da drin ist dies:

(defun package-refresh-and-install (&rest pkgs) 
    "Utility function to refresh package contents and install several packages at once" 
    (dolist (pkg pkgs) 
    (unless (package-installed-p pkg) 
     (package-refresh-contents) 
     (package-install pkg)))) 

Also ich bin nicht ganz sicher, wo ich mache einen Fehler hier ... Jede mögliche Hilfe?

Antwort

11

Sie müssen package-initialize anrufen, bevor Sie package-refresh-and-install anrufen.

+0

ist nicht der ganze Sinn von 'package-initialize', um die Pakete zu initialisieren, die wir gerade installiert haben? –

+3

@ElectricCoffee Unter anderem füllt 'package-initialize' die Liste der installierten Pakete, daher ist es offensichtlich erforderlich, sie vor' package-installed-p' aufzurufen. – lunaryorn

Verwandte Themen