diff options
| author | Chong Yidong | 2011-08-26 11:48:19 -0400 |
|---|---|---|
| committer | Chong Yidong | 2011-08-26 11:48:19 -0400 |
| commit | d43f5a423d85bdc4f3557622a828335fde06bb8a (patch) | |
| tree | 70f95d935564fc27689f2fe8bf657f6e692dcdbf | |
| parent | 37846983d0ce89d3a8e95e6b8065a20461bc4b26 (diff) | |
| download | emacs-d43f5a423d85bdc4f3557622a828335fde06bb8a.tar.gz emacs-d43f5a423d85bdc4f3557622a828335fde06bb8a.zip | |
Document package manager in Emacs manual.
* doc/emacs/package.texi: New file, documenting the package manager.
* doc/emacs/emacs.texi: Include it.
* doc/emacs/help.texi (Help Summary): Add describe-package.
| -rw-r--r-- | doc/emacs/ChangeLog | 8 | ||||
| -rw-r--r-- | doc/emacs/Makefile.in | 1 | ||||
| -rw-r--r-- | doc/emacs/custom.texi | 2 | ||||
| -rw-r--r-- | doc/emacs/emacs.texi | 2 | ||||
| -rw-r--r-- | doc/emacs/help.texi | 12 | ||||
| -rw-r--r-- | doc/emacs/makefile.w32-in | 1 | ||||
| -rw-r--r-- | doc/emacs/misc.texi | 2 | ||||
| -rw-r--r-- | doc/emacs/package.texi | 230 | ||||
| -rw-r--r-- | doc/emacs/trouble.texi | 2 | ||||
| -rw-r--r-- | etc/NEWS | 3 |
10 files changed, 256 insertions, 7 deletions
diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index 9050efa83d0..f74f06e962f 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog | |||
| @@ -1,3 +1,11 @@ | |||
| 1 | 2011-08-26 Chong Yidong <cyd@stupidchicken.com> | ||
| 2 | |||
| 3 | * package.texi: New file, documenting the package manager. | ||
| 4 | |||
| 5 | * emacs.texi: Include it. | ||
| 6 | |||
| 7 | * help.texi (Help Summary): Add describe-package. | ||
| 8 | |||
| 1 | 2011-08-25 Chong Yidong <cyd@stupidchicken.com> | 9 | 2011-08-25 Chong Yidong <cyd@stupidchicken.com> |
| 2 | 10 | ||
| 3 | * misc.texi (Printing): Convert subnodes into subsections. | 11 | * misc.texi (Printing): Convert subnodes into subsections. |
diff --git a/doc/emacs/Makefile.in b/doc/emacs/Makefile.in index 9465c726eba..66cd7f1d92e 100644 --- a/doc/emacs/Makefile.in +++ b/doc/emacs/Makefile.in | |||
| @@ -96,6 +96,7 @@ EMACSSOURCES= \ | |||
| 96 | ${srcdir}/dired.texi \ | 96 | ${srcdir}/dired.texi \ |
| 97 | ${srcdir}/calendar.texi \ | 97 | ${srcdir}/calendar.texi \ |
| 98 | ${srcdir}/misc.texi \ | 98 | ${srcdir}/misc.texi \ |
| 99 | ${srcdir}/package.texi \ | ||
| 99 | ${srcdir}/custom.texi \ | 100 | ${srcdir}/custom.texi \ |
| 100 | ${srcdir}/trouble.texi \ | 101 | ${srcdir}/trouble.texi \ |
| 101 | ${srcdir}/cmdargs.texi \ | 102 | ${srcdir}/cmdargs.texi \ |
diff --git a/doc/emacs/custom.texi b/doc/emacs/custom.texi index 6a6d465438d..a22d6c1f5dd 100644 --- a/doc/emacs/custom.texi +++ b/doc/emacs/custom.texi | |||
| @@ -2,7 +2,7 @@ | |||
| 2 | @c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011 | 2 | @c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011 |
| 3 | @c Free Software Foundation, Inc. | 3 | @c Free Software Foundation, Inc. |
| 4 | @c See file emacs.texi for copying conditions. | 4 | @c See file emacs.texi for copying conditions. |
| 5 | @node Customization, Quitting, Amusements, Top | 5 | @node Customization |
| 6 | @chapter Customization | 6 | @chapter Customization |
| 7 | @cindex customization | 7 | @cindex customization |
| 8 | 8 | ||
diff --git a/doc/emacs/emacs.texi b/doc/emacs/emacs.texi index 24a7e6d62e6..060f939fa7a 100644 --- a/doc/emacs/emacs.texi +++ b/doc/emacs/emacs.texi | |||
| @@ -212,6 +212,7 @@ Advanced Features | |||
| 212 | * Emulation:: Emulating some other editors with Emacs. | 212 | * Emulation:: Emulating some other editors with Emacs. |
| 213 | * Hyperlinking:: Following links in buffers. | 213 | * Hyperlinking:: Following links in buffers. |
| 214 | * Amusements:: Various games and hacks. | 214 | * Amusements:: Various games and hacks. |
| 215 | * Packages:: Installing additional features. | ||
| 215 | * Customization:: Modifying the behavior of Emacs. | 216 | * Customization:: Modifying the behavior of Emacs. |
| 216 | 217 | ||
| 217 | Recovery from Problems | 218 | Recovery from Problems |
| @@ -1497,6 +1498,7 @@ Lisp programming. | |||
| 1497 | @include rmail.texi | 1498 | @include rmail.texi |
| 1498 | @c Includes picture-xtra.texi | 1499 | @c Includes picture-xtra.texi |
| 1499 | @include misc.texi | 1500 | @include misc.texi |
| 1501 | @include package.texi | ||
| 1500 | @include custom.texi | 1502 | @include custom.texi |
| 1501 | @include trouble.texi | 1503 | @include trouble.texi |
| 1502 | 1504 | ||
diff --git a/doc/emacs/help.texi b/doc/emacs/help.texi index 9a75bfb1887..bf93892c0db 100644 --- a/doc/emacs/help.texi +++ b/doc/emacs/help.texi | |||
| @@ -126,16 +126,20 @@ The complete Emacs manual is available on-line in Info. | |||
| 126 | Display the name and documentation of the command that @var{key} runs | 126 | Display the name and documentation of the command that @var{key} runs |
| 127 | (@code{describe-key}). | 127 | (@code{describe-key}). |
| 128 | @item C-h l | 128 | @item C-h l |
| 129 | Display a description of your last 300 keystrokes | 129 | Display a description of your last 300 keystrokes |
| 130 | (@code{view-lossage}). | 130 | (@code{view-lossage}). |
| 131 | @item C-h m | 131 | @item C-h m |
| 132 | Display documentation of the current major mode (@code{describe-mode}). | 132 | Display documentation of the current major mode (@code{describe-mode}). |
| 133 | @item C-h n | 133 | @item C-h n |
| 134 | Display news of recent Emacs changes (@code{view-emacs-news}). | 134 | Display news of recent Emacs changes (@code{view-emacs-news}). |
| 135 | @item C-h p | 135 | @item C-h p |
| 136 | Find packages by topic keyword (@code{finder-by-keyword}). For an | 136 | Find packages by topic keyword (@code{finder-by-keyword}). This lists |
| 137 | alternative interface to the same information, try the @code{info-finder} | 137 | packages using a package menu buffer (@pxref{Package Menu}); for an |
| 138 | command. | 138 | alternative interface to the same information, try the |
| 139 | @code{info-finder} command. | ||
| 140 | @item C-h P @var{package} @key{RET} | ||
| 141 | Display documentation about the package named @var{package} | ||
| 142 | (@code{describe-package}; @pxref{Packages}). | ||
| 139 | @item C-h r | 143 | @item C-h r |
| 140 | Display the Emacs manual in Info (@code{info-emacs-manual}). | 144 | Display the Emacs manual in Info (@code{info-emacs-manual}). |
| 141 | @item C-h s | 145 | @item C-h s |
diff --git a/doc/emacs/makefile.w32-in b/doc/emacs/makefile.w32-in index 4064f4ef6a3..e128a50ebd3 100644 --- a/doc/emacs/makefile.w32-in +++ b/doc/emacs/makefile.w32-in | |||
| @@ -88,6 +88,7 @@ EMACSSOURCES= \ | |||
| 88 | $(srcdir)/dired.texi \ | 88 | $(srcdir)/dired.texi \ |
| 89 | $(srcdir)/calendar.texi \ | 89 | $(srcdir)/calendar.texi \ |
| 90 | $(srcdir)/misc.texi \ | 90 | $(srcdir)/misc.texi \ |
| 91 | $(srcdir)/package.texi \ | ||
| 91 | $(srcdir)/custom.texi \ | 92 | $(srcdir)/custom.texi \ |
| 92 | $(srcdir)/trouble.texi \ | 93 | $(srcdir)/trouble.texi \ |
| 93 | $(srcdir)/cmdargs.texi \ | 94 | $(srcdir)/cmdargs.texi \ |
diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi index e43a8adce74..2dab70c512a 100644 --- a/doc/emacs/misc.texi +++ b/doc/emacs/misc.texi | |||
| @@ -2513,7 +2513,7 @@ Display a menu of files and URLs mentioned in current buffer, then | |||
| 2513 | find the one you select (@code{ffap-menu}). | 2513 | find the one you select (@code{ffap-menu}). |
| 2514 | @end table | 2514 | @end table |
| 2515 | 2515 | ||
| 2516 | @node Amusements, Customization, Hyperlinking, Top | 2516 | @node Amusements, Packages, Hyperlinking, Top |
| 2517 | @section Other Amusements | 2517 | @section Other Amusements |
| 2518 | @cindex boredom | 2518 | @cindex boredom |
| 2519 | 2519 | ||
diff --git a/doc/emacs/package.texi b/doc/emacs/package.texi new file mode 100644 index 00000000000..739a8ce6c65 --- /dev/null +++ b/doc/emacs/package.texi | |||
| @@ -0,0 +1,230 @@ | |||
| 1 | @c This is part of the Emacs manual. | ||
| 2 | @c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011 | ||
| 3 | @c Free Software Foundation, Inc. | ||
| 4 | @c See file emacs.texi for copying conditions. | ||
| 5 | @node Packages | ||
| 6 | @chapter Emacs Lisp Packages | ||
| 7 | @cindex Package | ||
| 8 | @cindex Emacs Lisp package archive | ||
| 9 | @cindex Package archive | ||
| 10 | @cindex Emacs Lisp package | ||
| 11 | |||
| 12 | Emacs includes a facility that lets you easily download and install | ||
| 13 | @dfn{packages} that implement additional features. Each package is a | ||
| 14 | separate Emacs Lisp program, sometimes including other components such | ||
| 15 | as an Info manual. | ||
| 16 | |||
| 17 | @kbd{M-x list-packages} brings up a buffer named @samp{*Packages*} | ||
| 18 | with a list of all packages. You can install or uninstall packages | ||
| 19 | via this buffer. @xref{Package Menu}. | ||
| 20 | |||
| 21 | @findex describe-package | ||
| 22 | The command @kbd{C-h P} (@code{describe-package}) prompts for the | ||
| 23 | name of a package, and displays a help buffer describing that | ||
| 24 | attributes of the package and the features that it implements. | ||
| 25 | |||
| 26 | By default, Emacs downloads packages from a @dfn{package archive} | ||
| 27 | maintained by the Emacs developers and hosted by the GNU project. | ||
| 28 | Optionally, you can also download packages from archives maintained by | ||
| 29 | third parties. @xref{Package Installation}. | ||
| 30 | |||
| 31 | For information about turning an Emacs Lisp program into an | ||
| 32 | installable package, @xref{Packaging,,,elisp, The Emacs Lisp Reference | ||
| 33 | Manual}. For information about finding third-party packages and other | ||
| 34 | Emacs Lisp extensions, @xref{Packages that do not come with | ||
| 35 | Emacs,,,efaq, GNU Emacs FAQ}. | ||
| 36 | |||
| 37 | @menu | ||
| 38 | * Package Menu:: Buffer for viewing and managing packages. | ||
| 39 | * Package Installation:: Options for package installation. | ||
| 40 | * Package Files:: Where packages are installed. | ||
| 41 | @end menu | ||
| 42 | |||
| 43 | @node Package Menu | ||
| 44 | @section The Package Menu Buffer | ||
| 45 | @cindex package menu | ||
| 46 | @cindex built-in package | ||
| 47 | @findex list-packages | ||
| 48 | |||
| 49 | The command @kbd{M-x list-packages} brings up the @dfn{package menu}. | ||
| 50 | This is a buffer listing all the packages that Emacs knows about, one | ||
| 51 | on each line, with the following information: | ||
| 52 | |||
| 53 | @itemize @bullet | ||
| 54 | @item | ||
| 55 | The package name (e.g. @samp{auctex}). | ||
| 56 | |||
| 57 | @item | ||
| 58 | The package's version number (e.g. @samp{11.86}). | ||
| 59 | |||
| 60 | @item | ||
| 61 | The package's status---normally one of @samp{available} (can be | ||
| 62 | downloaded from the package archive), @samp{installed}, or | ||
| 63 | @samp{built-in} (included in Emacs by default). | ||
| 64 | |||
| 65 | In some instances, the status can be @samp{held}, @samp{disabled}, or | ||
| 66 | @samp{obsolete}. @xref{Package Installation}. | ||
| 67 | |||
| 68 | @item | ||
| 69 | A short description of the package. | ||
| 70 | @end itemize | ||
| 71 | |||
| 72 | @noindent | ||
| 73 | The @code{list-packages} command accesses the network, to retrieve the | ||
| 74 | list of available packages from the package archive server. If the | ||
| 75 | network is unavailable, it falls back on the most recently retrieved | ||
| 76 | list. | ||
| 77 | |||
| 78 | The following commands are available in the package menu: | ||
| 79 | |||
| 80 | @table @kbd | ||
| 81 | @item h | ||
| 82 | Print a short message summarizing how to use the package menu | ||
| 83 | (@code{package-menu-quick-help}). | ||
| 84 | |||
| 85 | @item ? | ||
| 86 | @itemx @key{RET} | ||
| 87 | Display a help buffer for the package on the current line | ||
| 88 | (@code{package-menu-describe-package}), similar to the help window | ||
| 89 | displayed by the @kbd{C-h P} command (@pxref{Packages}). | ||
| 90 | |||
| 91 | @item i | ||
| 92 | Mark the package on the current line for installation | ||
| 93 | (@code{package-menu-mark-install}). If the package status is | ||
| 94 | @samp{available}, this adds an @samp{I} character to the start of the | ||
| 95 | line; typing @kbd{x} (see below) will download and install the | ||
| 96 | package. | ||
| 97 | |||
| 98 | @item d | ||
| 99 | Mark the package on the current line for deletion | ||
| 100 | (@code{package-menu-mark-delete}). If the package status is | ||
| 101 | @samp{installed}, this adds a @samp{D} character to the start of the | ||
| 102 | line; typing @kbd{x} (see below) will delete the package. | ||
| 103 | @xref{Package Files}, for information about what package deletion | ||
| 104 | entails. | ||
| 105 | |||
| 106 | @item u | ||
| 107 | Remove any installation or deletion mark previously added to the | ||
| 108 | current line by an @kbd{i} or @kbd{d} command. | ||
| 109 | |||
| 110 | @item x | ||
| 111 | Download and install all packages marked with @kbd{i}, and their | ||
| 112 | dependencies; also, delete all packages marked with @kbd{d} | ||
| 113 | (@code{package-menu-execute}). This also removes the marks. | ||
| 114 | |||
| 115 | @item r | ||
| 116 | Refresh the package list (@code{package-menu-refresh}). This also | ||
| 117 | retrieves the list of available packages from the package archive | ||
| 118 | again. | ||
| 119 | @end table | ||
| 120 | |||
| 121 | @noindent | ||
| 122 | For example, you can install a package by typing @kbd{i} on the line | ||
| 123 | listing that package, followed by @kbd{x}. | ||
| 124 | |||
| 125 | @node Package Installation | ||
| 126 | @section Package Installation | ||
| 127 | |||
| 128 | @findex package-install | ||
| 129 | Packages are most conveniently installed using the package menu | ||
| 130 | (@pxref{Package Menu}), but you can also use the command @kbd{M-x | ||
| 131 | package-install}. This prompts for the name of a package with the | ||
| 132 | @samp{available} status, then downloads and installs it. | ||
| 133 | |||
| 134 | @cindex package requirements | ||
| 135 | A package may @dfn{require} certain other packages to be installed, | ||
| 136 | because it relies on functionality provided by them. When Emacs | ||
| 137 | installs such a package, it also automatically downloads and installs | ||
| 138 | any required package that is not already installed. (If a required | ||
| 139 | package is somehow unavailable, Emacs signals an error and stops | ||
| 140 | installation.) A package's requirements list is shown in its help | ||
| 141 | buffer. | ||
| 142 | |||
| 143 | @vindex package-archives | ||
| 144 | By default, packages are downloaded from a single package archive | ||
| 145 | maintained by the Emacs developers. This is controlled by the | ||
| 146 | variable @code{package-archives}, whose value is a list of package | ||
| 147 | archives known to Emacs. Each list element must have the form | ||
| 148 | @code{(@var{id} . @var{location})}, where @var{id} is the name of a | ||
| 149 | package archive and @var{location} is the @acronym{HTTP} address or | ||
| 150 | directory name of the package archive. You can alter this list if you | ||
| 151 | wish to use third party package archives---but do so at your own risk, | ||
| 152 | and use only third parties that you think you can trust! | ||
| 153 | |||
| 154 | Once a package is downloaded and installed, it takes effect in the | ||
| 155 | current Emacs session. What ``taking effect'' means depends on the | ||
| 156 | package; most packages just make some new commands available, while | ||
| 157 | others have more wide-ranging effects on the Emacs session. For such | ||
| 158 | information, consult the package's help buffer. | ||
| 159 | |||
| 160 | By default, Emacs also automatically loads all installed packages | ||
| 161 | (causing them to ``take effect'') in subsequent Emacs sessions. This | ||
| 162 | happens at startup, after processing the init file (@pxref{Init | ||
| 163 | File}). As an exception, Emacs does not load packages at startup if | ||
| 164 | invoked with the @samp{-q} or @samp{--no-init-file} options | ||
| 165 | (@pxref{Initial Options}). | ||
| 166 | |||
| 167 | @vindex package-enable-at-startup | ||
| 168 | @findex package-initialize | ||
| 169 | To disable automatic package loading, change the variable | ||
| 170 | @code{package-enable-at-startup} to @code{nil}. If you do this, you | ||
| 171 | can use the command @kbd{M-x package-initialize} to load your | ||
| 172 | packages. | ||
| 173 | |||
| 174 | @vindex package-load-list | ||
| 175 | For finer control over package loading, you can use the variable | ||
| 176 | @code{package-load-list}. Its value should be a list. A list element | ||
| 177 | of the form @code{(@var{name} @var{version})} tells Emacs to load | ||
| 178 | version @var{version} of the package named @var{name}. Here, | ||
| 179 | @var{version} should be a version string (corresponding to a specific | ||
| 180 | version of the package), or @code{t} (which means to load any | ||
| 181 | installed version), or @code{nil} (which means no version; this | ||
| 182 | ``disables'' the package, preventing it from being loaded). A list | ||
| 183 | element can also be the symbol @code{all}, which means to load the | ||
| 184 | latest installed version of any package not named by the other list | ||
| 185 | elements. The default value is just @code{'(all)}. | ||
| 186 | |||
| 187 | For example, if you set @code{package-load-list} to @code{'((muse | ||
| 188 | "3.20") all)}, then Emacs only loads version 3.20 of the @samp{muse} | ||
| 189 | package, plus any installed version of packages other than | ||
| 190 | @samp{muse}. Any other version of @samp{muse} that happens to be | ||
| 191 | installed will be ignored. The @samp{muse} package will be listed in | ||
| 192 | the package menu with the @samp{held} status. | ||
| 193 | |||
| 194 | @node Package Files | ||
| 195 | @section Package Files and Directory Layout | ||
| 196 | @cindex package directory | ||
| 197 | |||
| 198 | @cindex package file | ||
| 199 | @findex package-install-file | ||
| 200 | Each package is downloaded from the package archive in the form of a | ||
| 201 | single @dfn{package file}---either an Emacs Lisp source file, or a tar | ||
| 202 | file containing multiple Emacs Lisp source and other files. Package | ||
| 203 | files are automatically retrieved, processed, and disposed of by the | ||
| 204 | Emacs commands that install packages. Normally, you will not need to | ||
| 205 | deal directly with them, unless you are making a package | ||
| 206 | (@pxref{Packaging,,,elisp, The Emacs Lisp Reference Manual}). Should | ||
| 207 | you ever need to install a package directly from a package file, use | ||
| 208 | the command @kbd{M-x package-install-file}. | ||
| 209 | |||
| 210 | @vindex package-user-dir | ||
| 211 | Once installed, the contents of a package are placed in a | ||
| 212 | subdirectory of @file{~/.emacs.d/elpa/} (you can change the name of | ||
| 213 | that directory by changing the variable @code{package-user-dir}). The | ||
| 214 | package subdirectory is named @file{@var{name}-@var{version}}, where | ||
| 215 | @var{name} is the package name and @var{version} is its version | ||
| 216 | string. | ||
| 217 | |||
| 218 | @cindex system-wide packages | ||
| 219 | @vindex package-directory-list | ||
| 220 | In addition to @code{package-user-dir}, Emacs looks for installed | ||
| 221 | packages in the directories listed in @code{package-directory-list}. | ||
| 222 | These directories are meant for system administrators to make Emacs | ||
| 223 | packages available system-wide; Emacs itself never installs packages | ||
| 224 | there. The package subdirectories for @code{package-directory-list} | ||
| 225 | are laid out in the same way as in @code{package-user-dir}. | ||
| 226 | |||
| 227 | Deleting a package (@pxref{Package Menu}) involves deleting the | ||
| 228 | corresponding package subdirectory. This only works for packages | ||
| 229 | installed in @code{package-user-dir}; if told to act on a package in a | ||
| 230 | system-wide package directory, the deletion command signals an error. | ||
diff --git a/doc/emacs/trouble.texi b/doc/emacs/trouble.texi index 4be892639fc..fd06dde5174 100644 --- a/doc/emacs/trouble.texi +++ b/doc/emacs/trouble.texi | |||
| @@ -15,7 +15,7 @@ also considered. | |||
| 15 | @raisesections | 15 | @raisesections |
| 16 | @end ifnottex | 16 | @end ifnottex |
| 17 | 17 | ||
| 18 | @node Quitting, Lossage, Customization, Top | 18 | @node Quitting |
| 19 | @section Quitting and Aborting | 19 | @section Quitting and Aborting |
| 20 | @cindex quitting | 20 | @cindex quitting |
| 21 | 21 | ||
| @@ -319,11 +319,14 @@ for `list-colors-display'. | |||
| 319 | This is a convenient way to download and install additional packages, | 319 | This is a convenient way to download and install additional packages, |
| 320 | from a package repository at elpa.gnu.org. | 320 | from a package repository at elpa.gnu.org. |
| 321 | 321 | ||
| 322 | +++ | ||
| 322 | *** `M-x list-packages' shows a list of packages, which can be | 323 | *** `M-x list-packages' shows a list of packages, which can be |
| 323 | selected for installation. | 324 | selected for installation. |
| 324 | 325 | ||
| 326 | +++ | ||
| 325 | *** New command `describe-package', bound to `C-h P'. | 327 | *** New command `describe-package', bound to `C-h P'. |
| 326 | 328 | ||
| 329 | +++ | ||
| 327 | *** By default, all installed packages are loaded and activated | 330 | *** By default, all installed packages are loaded and activated |
| 328 | automatically when Emacs starts up. To disable this, set | 331 | automatically when Emacs starts up. To disable this, set |
| 329 | `package-enable-at-startup' to nil. To change which packages are | 332 | `package-enable-at-startup' to nil. To change which packages are |