The quickest fix was to symbolically link lein to the path where Emacs can find it. This line of code fixed the issue.
sudo ln -s ~/Dropbox/bin/lein /usr/local/bin/lein
I summarized the steps to install the cider package for running Clojure on emacs without any errors or warnings.
cider - https://github.com/clojure-emacs/cider
Installation
- Download lein https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein
- I copied the file ~/Dropbox/bin after making it executable.
It looks like that /usr/local/bin is not the path that Emacs finds the binary automatically, so I had to set it up.
- Run
sudo ln -s ~/Dropbox/bin/lein /usr/local/bin/lein
- Update
~/.emacs.d/init.el
to specify the location of lein script:
(add-to-list 'exec-path "/usr/local/bin")
Update ~/.lein/profiles.clj
Errors and solutions
If error The lein executable (specified by
cider-lein-command' or cider-boot-command') isn't on your exec-path
occurs:
- make the symbolic link, and update the
init.el
as is explained.
If error "Symbol's function definition is void: clojure-project-dir" occurs, it's because of the package version mismatch.
Now, all the warnings are gone.
References
Added
For Mac OS X, brew install leiningen
can install the lein, but this caused an issue as in How to upgrade nrepl version of leiningen?. This is the message from the lein brew.
nREPL server started on port 61216 on host 127.0.0.1 - nrepl://127.0.0.1:61216
REPL-y 0.3.5, nREPL 0.2.6
Clojure 1.6.0
Java HotSpot(TM) 64-Bit Server VM 1.8.0_45-b14
I had to use the lein from the lein site to get the correct version of tools.
Retrieving org/clojure/clojure/1.2.0/clojure-1.2.0.pom from central
nREPL server started on port 61279 on host 127.0.0.1 - nrepl://127.0.0.1:61279
REPL-y 0.3.7, nREPL 0.2.7
Clojure 1.7.0