Mastering the Command 'exenv' for Elixir Version Management (with Examples)
Exenv is a powerful command-line tool designed to facilitate the installation and management of multiple Elixir versions on a single system. This tool streamlines the process of switching between different Elixir environments effortlessly, making it an invaluable asset for developers working with multiple projects or testing against various versions. Exenv provides seamless environment handling in combination with the elixir-build plugin, allowing for easy version installation. Below, each use case of the ’exenv’ command is explained in detail with examples.
Use Case 1: Displaying a List of Installed Versions
Code:
exenv versions
Motivation:
As a developer, it is crucial to keep track of the Elixir versions installed on your system. Different projects may require different versions, and having a complete list enables you to quickly identify the available environments. This command provides an easy way to list all installed versions, helping you manage your development environment more effectively.
Explanation:
exenv
: The command-line interface for managing Elixir versions.versions
: An argument that tellsexenv
to list all installed versions of Elixir on your local machine.
Example Output:
* 1.12.3 (set by /home/user/.exenv/version)
1.11.4
Use Case 2: Set a Specific Elixir Version Globally
Code:
exenv global 1.12.3
Motivation:
When working on multiple projects that do not have strict Elixir version requirements, setting a global version ensures uniformity and avoids version conflicts. By assigning a global version, you ensure that all projects without a specified local version use the selected Elixir version by default, maintaining a consistent development environment across the system.
Explanation:
exenv
: The command-line tool for managing Elixir environments.global
: Specifies that the change should apply globally across the whole system.1.12.3
: The specific Elixir version to set as the global default.
Example Output:
1.12.3 is now set as the global version.
Use Case 3: Set a Specific Elixir Version Locally for a Project
Code:
exenv local 1.11.4
Motivation:
Some projects may depend on a specific version of Elixir due to compatibility issues or unique feature sets introduced in that version. Setting a local version ensures that all operations within that directory utilize the specified Elixir version, bypassing the global setting and mitigating any risks associated with version discrepancies in individual projects.
Explanation:
exenv
: The management tool for Elixir versions.local
: The modifier indicating that the version change is only for the current directory/project.1.11.4
: The desired Elixir version for the specified local environment.
Example Output:
1.11.4 is now set for this project directory.
Use Case 4: Display the Currently Selected Elixir Version
Code:
exenv version
Motivation:
Quickly identifying the current Elixir version in use is essential for developers who frequently switch environments. This command helps avoid confusion by displaying the exact version of Elixir that is active, whether it is globally or locally set, providing clarity and aiding in troubleshooting environment-related issues.
Explanation:
exenv
: The command-line tool used to manage Elixir versions.version
: The command that outputs the current version being utilized.
Example Output:
1.11.4
Use Case 5: Install a New Version of Elixir
Code:
exenv install 1.13.0
Motivation:
Installing new Elixir versions is a crucial aspect of maintaining a robust development environment. With new features and improvements continually being released, developers must stay updated. The ability to install any specific version as needed allows for testing and utilizing new Elixir enhancements or features without disrupting the current environment configuration.
Explanation:
exenv
: The utility for managing Elixir environments.install
: The command used to download and set up a new version.1.13.0
: The exact Elixir version you wish to install. Note that this command requires theelixir-build
plugin for actual execution.
Example Output:
Downloading Elixir 1.13.0...
Building Elixir 1.13.0...
Installed Elixir 1.13.0.
Conclusion:
Exenv serves as an efficient solution for developers navigating the vast landscape of Elixir projects that require different versions. By allowing seamless switching between versions and maintaining clarity through clear, actionable commands, exenv diminishes the complexity traditionally associated with multi-version management, ultimately enhancing the development experience and productivity.