As Travis is moving towards a container-based infrastructure, hence
sudo is not possible, EVM added support for Travis specific binaries
(ends with -travis
), which will be installed in /tmp
.
All -bin
versions will are deprecated and will be removed. Do not use them!
To run EVM on Travis, set the EVM path to /tmp
:
$ evm config path /tmp
See https://gist.github.com/rejeep/ebcd57c3af83b049833b for more information on how to use EVM on Travis.
Did you ever wonder how to install Emacs? Homebrew, apt-get, Emacs for OSX, Compile from scratch, etc...
Are you currently maintaining an Emacs package? How do you know it works? Because you have tests of course. Ok, so you know it works on your platform and with your Emacs version. But what about all other versions that people are using? Does your package work for them?
EVM provides Linux pre-compiled binaries to allow for quick installation on CI systems.
Supported! (currently no pre-compiled binaries for CI)
Supported!
Not supported. Need help from someone running Windows.
Default installation directory for EVM Emacs versions is
/usr/local/evm
. This can be changed with the config
command:
$ evm config path /foo/bar
No matter what installation approach you choose, create the installation directory and give your user access rights, for example:
$ sudo mkdir /usr/local/evm
$ sudo chown $USER: /usr/local/evm
$ curl -fsSkL https://raw.github.com/rejeep/evm/master/go | bash
Add EVM's bin
directory to your PATH
.
$ export PATH="$HOME/.evm/bin:$PATH"
NOT ADDED YET
$ brew install evm
$ gem install evm
$ git clone https://github.com/rejeep/evm.git ~/.evm
Add EVM's bin
directory to your PATH
.
$ export PATH="$HOME/.evm/bin:$PATH"
In the Evm bin
directory, there are a few commands:
evm
- Manage Emacs packagesemacs
/evm-emacs
- Emacs shim with currently selected Emacs packageTo list all available Emacs versions you can install, run:
$ evm list
The output will look something like this:
emacs-23.4
emacs-24.1 [I]
emacs-24.2
* emacs-24.3 [I]
emacs-24.3-travis [I]
...
The [I]
shows what versions are currently installed and the *
shows what version is currently selected.
To install a version, run:
$ evm install version
Example:
$ evm install emacs-24.3
To start using a specific package, run:
$ evm use name
Example:
$ evm use emacs-24.2
The Evm binary will update and use that Emacs package.
To stop using an EVM binary and restore your personal or system defaults:
$ evm disuse
To uninstall a version, run:
$ evm uninstall emacs-24.2
Prints the full path to name
's Emacs executable. If no name is
specified, use currently selected.
$ evm bin # /usr/local/evm/emacs-24.5/Emacs.app/Contents/MacOS/Emacs
$ evm bin emacs-24.2 # /usr/local/evm/emacs-24.2/Emacs.app/Contents/MacOS/Emacs
For more information, run:
$ evm --help
Be sure to!
Implement the features and don't forget to test it. Run the tests with:
$ rspec spec
If all passes, send us a pull request with the changes.
Copy an existing recipe in the recipes directory and make modifications for the new version. Also add the new version to the Travis configuration.
If you want to contribute a Travis binary, these instructions will help.
Install Docker
Run the generate script:
$ docker/build-release.sh 27.1 linux-xenial
$ ls emacs-27.1-travis-linux-xenial.tar.gz
emacs-27.1-travis-linux-xenial.tar.gz
Caution: Be prepared to wait!
If you are running this script for the first time, it will need to create the build image, which means downloading a large (> 10 GB) base image from Travis CI, and further configuring it with the tools needed to compile Emacs from source.
In addition, the Emacs build takes time and generates a fair amount of console output.
Create a new recipe and make a pull request.
Ask maintainer to add a new release and add the binary.