This seems to be a problem with the package manager you're using. I suggest you go find help on their website. I had never heard of marmalade before you mentioned it. It would be best to mention which version of emacs you're using, you can get it with
M-x version
Manual package management can be cumbersome so I suggest you stick to the package maneger. However I can expose here how I manage packages on my system, I hope it will help. (I am only familiar with Unix systems, you'll have to transpose this to Windows).
What's a package?
A package is a piece of code written in Emacs Lisp. Emacs consists of a tiny core written in C and the rest of the editor (~80% of total lines of code) consists of elisp functions manipulating it. A package is just elisp code which can be used to modify your environment at runtime.
How to use a package?
There's a builtin function inside emacs that is used to import a package:
load. It will search for a package in its
Load Path, which is mainly a list of directories on your computer. Once found, it will execute the elisp code, and makes the objects created available to the runtime.
Here's the simplest case represented in a stupid example:
Imagine you want to install a package Foo which contains the following files:
Foo/
|- foo.el
|- README
|- anotherfile.el
Download this package locally and move it to
/home/user/.emacs.d/Foo (or whatever directory you want. We'll call this the
package root dir).
The first step should always be to read the README file and any other documentation you can find. If there are any special requirements you want to know about them first.
If nothing important is noted, add your package root dir to the load path. To do so you have to command the editor to do it, in Lisp. The fastest way to execute lisp code is M-: (I'm assuming you understand by now that this means pressing the keys "Alt" and ":" simultaneously). Evaluate the following expression:
(add-to-list 'load-path "/home/usres/.emacs.d/Foo")
This should return the new value of the
load-path variable with the package root dir as a first item.
Finally, you can load the package. Calling
M-x load RET foo
or if you prefer in elisp:
(load 'package-name)
How to install a package persistantly on my editor?
You've already mentioned the
.emacs file. It's (as you have guessed) also an elisp file. This is usually enough:
(add-to-list 'load-path /package/root/dir)
(require 'package)
Notice I used
require instead of
load. They both act similarly, but require will only load a package if it hasn't been loaded previously.
I hope this is helpful. If something is unclear, please tell me. Although I used the above method, I still think you're better off using a package manager. But keep in mind that knowledge of the
old manual wouldn't hurt.