Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

error: package.el not yet initialized

Tags:

emacs

elisp

I'm in the middle of organising my .emacs file to better keep track of all the things I'm adding to it.

In doing so I've run into the error described in the title, and I'm not sure exactly why

Here's my .emacs file: (the load of comments are for my own reference)

;;;; 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)))

Running emacs .emacs --debug-init gives me the following output:

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()

Which suggests (by my understanding) that it has something to do with convenience.el, but all that's in there is this:

(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))))

So I'm not exactly sure where I'm making an error here... Any help?

like image 468
Electric Coffee Avatar asked Sep 30 '14 09:09

Electric Coffee


1 Answers

You need to call package-initialize before you call package-refresh-and-install.

like image 56
pmr Avatar answered Nov 08 '22 14:11

pmr