I am using prelude as a base Emacs configuration. I have installed lots of packages from the package manager, and I want to use my settings on another machine.
I don't want to carry the installed packages and also I don't want to create a list manually.
What is the way of saving a list all the installed packages into prelude-package.el or any other file so that when I take this configuration to my other machine, they automatically get installed there on first use?
The canonical methodology is the best (described by ataylor). Here is a more clumsy method.
M-x list-packages. C-s installed till you find the first row of installed package. Start selecting with C-SPC. Go down till you reach built-in packages. Copy with M-w. C-x b for new buffer. Paste with C-y.C-x C-s to save file.
Only advantage that I see is this is a tad more descriptive. Showing a small description of your packages. useful when you install some packages and forget about it.
As mentioned at how to automatically install emacs packages by specifying a list of package names?, it would be better to also record the version of the package you need. In order to do so, you can use the following function:
That will give you a list of
(NAME VERSION)
pairs. Unfortunately, I haven't been able to find a way to install a specific version of a package. It seemspackage.el
always grabs the latest available. What I'm doing now is:I've written a longer function to install packages matching the exact version number, but it fails because
package.el
by default only retrieves the latest versions available for each package. gistYou can get a list of currently installed packages (excluding built in packages) from the variable
package-activated-list
. To automatically install them on startup, see this question: how to automatically install emacs packages by specifying a list of package names?More specifically, if you do C-h v package-activated-list, copy the value shown, and insert it as the value of
prelude-packages
, emacs will automatically ensure those packages are installed on start up.