{"id":13765683,"url":"https://github.com/robisonsantos/evm","last_synced_at":"2025-05-10T21:31:30.348Z","repository":{"id":3537560,"uuid":"4597406","full_name":"robisonsantos/evm","owner":"robisonsantos","description":"Erlang Version Manager","archived":false,"fork":false,"pushed_at":"2023-05-20T18:25:02.000Z","size":138,"stargazers_count":116,"open_issues_count":5,"forks_count":31,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-08-03T16:08:53.972Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/robisonsantos.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2012-06-08T13:09:26.000Z","updated_at":"2024-04-11T11:52:20.000Z","dependencies_parsed_at":"2022-08-02T10:35:19.955Z","dependency_job_id":null,"html_url":"https://github.com/robisonsantos/evm","commit_stats":{"total_commits":119,"total_committers":11,"mean_commits":"10.818181818181818","dds":0.6302521008403361,"last_synced_commit":"3976cc25b708335bd7ef1d81fdc8916408e81ed5"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robisonsantos%2Fevm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robisonsantos%2Fevm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robisonsantos%2Fevm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robisonsantos%2Fevm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/robisonsantos","download_url":"https://codeload.github.com/robisonsantos/evm/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224989393,"owners_count":17403408,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T16:00:43.989Z","updated_at":"2024-11-17T01:31:18.470Z","avatar_url":"https://github.com/robisonsantos.png","language":"Shell","readme":"# evm - Erlang Version Manager\n\nThis is a simple script which aims to simplify the management of different Erlang versions installed on your system. **evm** will allow you to install multiple versions of erlang on your system and easily switch between them. **evm** is like **rvm** (\u003chttps://rvm.io\u003e) but with fewer features.\n\n## Installation\n\nDownload **evm**, unzip it, and on the top level directory simply execute:\n\n    $ ./install\n\nThen add the following line to your .bashrc file:\n\n    source $HOME/.evm/scripts/evm\n\nThat will create some directories inside your $HOME/.evm dir:\n\n- **erlang_tars** : the place where all the erlang tarballs downloaded by evm will be cached.\n- **erlang_versions** : where the erlang enviroment will be installed.\n- **scripts** : the location of the evm script itself.\n- **evm_config** : contains a single file pointing to the _default_ erlang version.\n\nAfter installing **evm**, you can check if everything is okay by executing:\n\n    $ evm help\n\nIf you see a list of **evm** commands, then your installation succeeded.\n\n## Usage\n\n- **list** (`$ evm list`)\n    This will display the names of all the available erlang versions from \u003chttp://www.erlang.org/download.html\u003e\n\n- **install** (`$ evm install \u003cversion\u003e [-y] [--expand-bin] [--with-docs] [\u003cother configure options\u003e]`)\n    This will download the erlang tarball identified by **\\\u003cversion\\\u003e** ( if not already downloaded ), then evm will install erlang by simply executing ./configure, make, make install, passing some default values.  The downloaded erlang tarball will be stored in a cache directory.\n\n    You also will be given a chance to download any erlang dependencies you need `--install` will halt after the `./configure` command has finished.\n\n    Note: **evm** *will not* download the erlang dependencies for you.\n    \n    If you are sure you have all dependencies installed, and you don't want to be asked about continuing with the installation, specify the option **-y** *after* the erlang version. This will make the script continue with the installation without asking you anything.\n    \n   If you want to install documentation along with erlang, specify the option **--with-docs**. You can later access documentation using `$ erl -man mnesia` for example.\n   If you want to install other excutables from standard libraries, like **odbc**, specify the option **--expand-bin**. This will create links to files in ani **bin** folder found insise **$EVM_HOME/erlang_versions/\u003cversion\u003e/lib** and make them available in the ** $PATH**.\n- **installed** (`$ evm installed`)\n    This will show all the erlang versions installed by evm on your system.\n\n- **download** (`$ evm download \u003cversion\u003e`)\n    This will download the specified erlang version from \u003chttp://www.erlang.org/download.html\u003e, then evm will store it in a cache directory for future installation.\n\n- **remove** (`$ evm remove \u003cversion\u003e`)\n    This will remove the specified erlang version from the cache; and if the specified erlang version is installed, this will uninstall it.\n\n- **uninstall** (`$ evm uninstall \u003cversion\u003e`)\n    This will uninstall the specified erlang version--however the erlang tarball will remain in the cache directory, and evm won't need to download the erlang tarball again to install it.\n\n- **cache** (`$ evm cache`)\n    This will list all the erlang versions that have been downloaded by evm (not necessarily installed).\n\n- **system** (`$ evm system`)\n    If you have an erlang version installed outside evm, this will change the PATH to use that version.\n\n- **use** (`$ evm use \u003cversion\u003e`)\n    This will change the PATH to use the specified erlang version--if it was installed.\n\n- **version** (`$ evm version`)\n    This will show the current version of evm running on your machine.\n\n- **help** (`$ evm help`)\n    This will show something similar to below (thanks to neowulf33):\n\n```\n    EVM Home:\n        ${EVM_HOME}\n    Default Version:\n        ${default_version:-\"None\"}\n    Versions Ready To Use:\n        ${available_versions:-\"None\"}\n\n    Usage:\n        * evm list\n            Lists the available erlang versions which can be downloaded and \n\t    installed.\n        * evm cache\n            Lists the available erlang versions which are in the evm space \n\t    but not necessarily installed.\n        * evm download [version]\n            Downloads the erlang version.\n        * evm install [version] [-y] [--with-docs] [erlang config options]\n\t    Downloads and installs the specified erlang version.\n\t    Use -y when you want to skip confirmation after the ./configure step.\n\t    -y will perform the installation even if dependencies are not met.\n\t    Do not use -y if you want to stop and check the dependencies.  \n\t    You can use --with-docs to build and install documentation for\n\t    erlang modules. You can also pass extra options to erlang install.\n\t    Extra options will be passed as is to the ./configure step, e.g.:\n\t\t   evm install 18.3 --with-ssl=/usr/local/ssl\n        * evm installed\n            Lists erlang versions which are built and are ready to be used.\n        * evm use [version]\n            Switches to the specified erlang version.\n        * evm default [version]\n            Makes the specified erlang version the default.\n        * evm remove [version]\n            Removes the specified erlang version completely from the evm space.\n        * evm uninstall [version]\n            Uninstalls the specified erlang version but keeps it within the \n\t    evm space.\n        * evm system\n            Alters the PATH in the current shell to use the non-evm erlang.\n        * evm version\n            Prints the current version of evm.\n```\n\n\n## Dependencies\n\nThis script is dependent on:\n\n- *wget*\n\n## Erlang dependencies\n\nOn Debian based systems, this is the list of dependencies you probably need:\n\n   `sudo apt-get install openssl libssl-dev fop xsltproc unixodbc-dev libxml2-utils libwxbase3.0-0v5 libwxbase3.0-dev libqt5opengl5-dev libncurses-dev libwxgtk3-3.0-gtk3-dev libwxgtk3-3.0-gtk3-0v5 wx-common `\n\n## Contributing\n\n1. Fork it\n2. Create your feature branch (`git checkout -b my-new-feature`)\n3. Commit your changes (`git commit -am 'Added some feature'`)\n4. Push to the branch (`git push origin my-new-feature`)\n5. Create new Pull Request\n","funding_links":[],"categories":["Version Managers"],"sub_categories":["Erlang"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobisonsantos%2Fevm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobisonsantos%2Fevm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobisonsantos%2Fevm/lists"}