melpa/html/partials/getting-started.html

117 lines
4.7 KiB
HTML
Raw Normal View History

2013-08-24 10:06:45 +00:00
<h1>Getting started</h1>
<section>
<a name="installing"></a>
<h2>Installing</h2>
<p>To add the repository put this before the call to <code>package-initialize</code> in your <code>init.el</code> file.</p>
<pre><code>(require 'package)
(add-to-list 'package-archives
2013-08-24 10:06:45 +00:00
'("melpa" . "http://melpa.milkbox.net/packages/") t)</code></pre>
<p>In Emacs &lt; 24, you'll also need to explicitly include the GNU
ELPA archive, which provides important compatibility libraries like <code>cl-lib</code>:</p>
<pre><code>(when (< emacs-major-version 24)
(add-to-list 'package-archives '("gnu" . "http://elpa.gnu.org/packages/")))</code></pre>
2013-09-05 08:25:04 +00:00
2013-08-24 10:06:45 +00:00
<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.
2013-08-24 10:06:45 +00:00
</p>
<pre><code>(progn
(switch-to-buffer
(url-retrieve-synchronously
"https://raw.github.com/milkypostman/package-filter/master/package-filter.el"))
2013-08-24 10:06:45 +00:00
(package-install-from-buffer (package-buffer-info) 'single))</code></pre>
2013-08-24 10:06:45 +00:00
<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>
2013-08-24 10:06:45 +00:00
</p>
<p>
There is a small bug in Emacs24s <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 its 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 and
emacswiki.
</p>
</section>