3
votes

Windows 7 x64, Emacs 24.3.1

Trying to re-install cider for Clojure as it's been a few months and I wanted to update things. I get error: Package 'queue-0.1.1' is unavailable. I had this working a month ago, so I'm not sure what's going on. I've installed a bunch of MingW and CodeBlocks stuff in the interim, but I don't think that's the issue in this case.

I checked https://github.com/milkypostman/melpa/issues/2005 and a few other links from easy Google searches, but it's just developer discussion, with more links; no actual solution that I was able to discern; I'm just a lowly user, not an emacs developer, so don't follow the discussion about package recipes, etc.

I copied queue-0.1.1.el into a seemingly appropriate Elpa directory, but still no luck, and it doesn't install via package-install-package, or from the various repos shown below. I was able to load it via load-file but that doesn't help. Queue does in fact show up in https://elpa.gnu.org/packages/ so it should work, right? and I have the file in an elpa subdirectory, so it should work, right? Bah, this emacs... first introduced in 1994 and I still can't figure it out.

The relevant portion of my init file looks like this. I've tried the various things that are currently commented out, in various permutations, with no luck.

Any ideas? thanks

;; Manually make queue available
;;(add-to-list 'load-path "~/.emacs.d/elpa/queue-0.1.1")
;;(load "queue-0.1.1.el")

(require 'package)
(setq package-archives
     '(;;("marmalade" . "http://marmalade-repo.org/packages/")
       ("gnu"        . "http://elpa.gnu.org/packages/")
       ("melpa"      . "http://melpa.org/packages/" )))

(package-initialize)


;;(require 'package)
;;(add-to-list 'package-archives
;;             '("melpa" . "http://melpa.org/packages/") t)
;;(when (< emacs-major-version 24)
;; For important compatibility libraries like cl-lib
;;  (add-to-list 'package-archives '("gnu" . "http://elpa.gnu.org/packages/")))
;;(package-initialize)

(when (not package-archive-contents)
  (package-refresh-contents))

(defvar my-packages '(
          paredit               ;; keeps parentheses balanced
          slime                 ;; for interaction with CL
          auto-complete         ;; used for ac-nrepl
          eldoc                 ;; shows argument completion in the echo area for elisp
          highlight-parentheses ;; as described
          tabbar                ;; tabs at top of window
          color-theme           ;; all color themes
          color-theme-solarized ;; nice color theme
          smart-tab             ;; tabs for c/c++
          linum                 ;; Line numbers in the border
          cider
          cider-test

))


(dolist (p my-packages)
  (when (not (package-installed-p p))
    (package-install p)))

Update: I was able to install cider and ac-cider manually from package-install-package, and having the hand-copied queue-0.1.1 directory in melpa seemed to work in that particular case, but if I remove queue-0.1.1 the stuff at the start of the init file still can't find it from the official repo.

1
You can use the new emacs stackechange.Arturo Volpe
You should (package-refresh-contents) whenever a package needs to be installed, not just when there is no package-archive-contents. Otherwise Emacs will never update its package listing, and you will get errors like this one.Radon Rosborough
thanks I'll try that.Sonicsmooth

1 Answers

0
votes

I had this problem and solved it by deleting the contents of .emacs.d/elpa and then reinstalling the packages. I never found the true root cause and my best guess is that some sub-dependency changed and emacs is still trying to fetch it.

the full working init.el is available here: https://github.com/thearthur/arthur-s-emacs-config

I take the approach of installing all the packages from within init.el so any problem such as this can be solved by removing that directory. It's also much easier to get setup on a new system.