mirror of
https://github.com/correl/melpa.git
synced 2024-12-26 19:16:55 +00:00
137 lines
5.4 KiB
HTML
137 lines
5.4 KiB
HTML
<h1>Getting started</h1>
|
||
<section>
|
||
<a name="installing"></a>
|
||
<h2>Installing</h2>
|
||
|
||
<p>To use the MELPA repository, you'll need an Emacs with
|
||
<code>package.el</code>. Emacs 24 has <code>package.el</code>
|
||
bundled with it, and there's also
|
||
a <a href="http://repo.or.cz/w/emacs.git/blob_plain/1a0a666f941c99882093d7bd08ced15033bc3f0c:/lisp/emacs-lisp/package.el">version
|
||
you can use with Emacs 23</a>.
|
||
</p>
|
||
|
||
<p>
|
||
Enable installation of packages from MELPA by adding an entry
|
||
to <code>package-archives</code> after <code>(require
|
||
'package)</code> and before the call
|
||
to <code>package-initialize</code> in
|
||
your <code>init.el</code> or <code>.emacs</code> file:
|
||
</p>
|
||
|
||
<pre><code>(require 'package) ;; You might already have this line
|
||
(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) ;; You might already have this line</code></pre>
|
||
|
||
<p>
|
||
or to add the stable package repository, use this instead
|
||
of <code>"melpa"</code>:
|
||
</p>
|
||
|
||
<pre><code>(add-to-list 'package-archives
|
||
'("melpa-stable" . "http://stable.melpa.org/packages/") t)</code></pre>
|
||
|
||
<h3>Customizations</h3>
|
||
<p>
|
||
What if you only want some of your packages to be installed
|
||
from MELPA, and the rest from Marmalade or elsewhere?
|
||
</p>
|
||
<p>
|
||
Only in the very latest Emacs snapshots is there a way to
|
||
exclude or include versions according to their source
|
||
(see <code>package-pinned-packages</code>). For all other
|
||
users, we provide a <code>package-filter.el</code> package (available
|
||
in MELPA) that will allow you to enable only certain packages
|
||
or exclude certain packages.
|
||
You can install the package
|
||
manually by pasting this into your <code>*scratch*</code>
|
||
buffer and evaluating it.
|
||
</p>
|
||
<pre><code>(progn
|
||
(switch-to-buffer
|
||
(url-retrieve-synchronously
|
||
"https://raw.github.com/milkypostman/package-filter/master/package-filter.el"))
|
||
(package-install-from-buffer (package-buffer-info) 'single))</code></pre>
|
||
|
||
<p>You can then customize two variables:</p>
|
||
<dl>
|
||
<dt><code>package-archive-enable-alist</code></dt>
|
||
<dd>
|
||
<p>
|
||
Optional Alist of enabled packages used
|
||
by <code>package-filter</code>. The format
|
||
is <code>(ARCHIVE . PACKAGE ...)</code>,
|
||
where <code>ARCHIVE</code> is a string matching an archive
|
||
name in<code>package-archives</code>, <code>PACKAGE</code>
|
||
is a symbol of a package in <code>ARCHIVE</code> to
|
||
enable.
|
||
</p>
|
||
<p>
|
||
If no <code>ARCHIVE</code> exists in the alist, all
|
||
packages are enabled.
|
||
</p>
|
||
</dd>
|
||
<dt><code>package-archive-exclude-alist</code></dt>
|
||
<dd>
|
||
<p>
|
||
Alist of packages excluded by <code> package-filter
|
||
</code>. The format is <code>(ARCHIVE . PACKAGE
|
||
...)</code>, where <code>ARCHIVE</code> is a string
|
||
matching an archive name
|
||
in</code>package-archives</code>, <code>PACKAGE</code> is
|
||
a symbol of a package in that archive to exclude.</p>
|
||
<p>
|
||
Any specified package is excluded regardless of the value
|
||
of <code>package-archive-enable-alist</code>
|
||
</p>
|
||
</dd>
|
||
</dl>
|
||
</section>
|
||
<section>
|
||
<a name="known-issues"></a>
|
||
<h2>Known Issues</h2>
|
||
<p>
|
||
<strong>Note:</strong> <em>These fixes are included in
|
||
the <code>package-filter.el</code> package.</em>
|
||
</p>
|
||
<p>
|
||
There is a small bug in Emacs24’s <code>package.el</code> such
|
||
that the dependency order comes out backwards. The problem is
|
||
patched by some <em>advice</em>.
|
||
</p>
|
||
|
||
<pre><code> (defadvice package-compute-transaction
|
||
(before package-compute-transaction-reverse (package-list requirements) activate compile)
|
||
"reverse the requirements"
|
||
(setq requirements (reverse requirements))
|
||
(print requirements))</code></pre>
|
||
</section>
|
||
<section>
|
||
<a name="updating"></a>
|
||
<h2>Updating Packages</h2>
|
||
<p>
|
||
<code>package.el</code> now includes a mechanism to upgrade
|
||
packages. After running <code>package-list-packages</code>,
|
||
type <em>U</em> (mark Upgradable packages) and then <em>x</em>
|
||
(eXecute the installs and deletions). When it’s done
|
||
installing all the packages it will ask if you want to delete
|
||
the obsolete packages and so you can hit <em>y</em> (Yes).
|
||
</p>
|
||
<p>
|
||
If you run into a problem installing or upgrading, you may
|
||
need to go into your <code>~/.emacs.d/elpa/</code> directory
|
||
and delete packages that are installed multiple times. This
|
||
can happen when the install times out.
|
||
</p>
|
||
<a name="development"></a>
|
||
<h2>Development</h2>
|
||
<p><a href="https://github.com/milkypostman/melpa">https://github.com/milkypostman/melpa</a></p>
|
||
<p>
|
||
Contributions are welcome. Currently, the builder supports
|
||
packages using git, subversion, mercurial, bzr, cvs, darcs, fossil and
|
||
emacswiki.
|
||
</p>
|
||
</section>
|