<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Przemek Ciąćka</title>
    <description>The latest articles on DEV Community by Przemek Ciąćka (@ciacka).</description>
    <link>https://dev.to/ciacka</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2830872%2F5826da2c-85b5-42e0-8aea-8328c04d33f3.png</url>
      <title>DEV Community: Przemek Ciąćka</title>
      <link>https://dev.to/ciacka</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ciacka"/>
    <language>en</language>
    <item>
      <title>Setting up Erlang &amp; Elixir on Mac OS using mise</title>
      <dc:creator>Przemek Ciąćka</dc:creator>
      <pubDate>Wed, 12 Feb 2025 16:19:27 +0000</pubDate>
      <link>https://dev.to/ciacka/setting-up-erlang-elixir-on-mac-os-using-mise-3bck</link>
      <guid>https://dev.to/ciacka/setting-up-erlang-elixir-on-mac-os-using-mise-3bck</guid>
      <description>&lt;p&gt;In this article, I'll guide you through installing Erlang and Elixir on macOS using &lt;a href="https://mise.jdx.dev" rel="noopener noreferrer"&gt;mise&lt;/a&gt;—a fast, Rust-based tool version manager.&lt;/p&gt;

&lt;h2&gt;
  
  
  About mise
&lt;/h2&gt;

&lt;p&gt;I found mise to be a &lt;strong&gt;faster and more intuitive&lt;/strong&gt; alternative to asdf. It serves as a drop-in replacement, supporting &lt;code&gt;.tool-versions&lt;/code&gt; files and asdf plugins, making migration seamless. Being Rust-based likely contributes to its speed improvement. You can find a detailed comparison on the &lt;a href="https://mise.jdx.dev/dev-tools/comparison-to-asdf.html" rel="noopener noreferrer"&gt;official mise page&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prerequisites
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;This guide is written for &lt;strong&gt;Apple Silicon Macs&lt;/strong&gt; (I haven’t tested it on Intel-based ones).&lt;/li&gt;
&lt;li&gt;You’ll need &lt;strong&gt;Homebrew&lt;/strong&gt; installed. If you don’t have it yet, check out Homebrew’s &lt;a href="https://brew.sh" rel="noopener noreferrer"&gt;installation guide&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Mise installation and configuration
&lt;/h2&gt;

&lt;p&gt;To get started, the first step is to install mise, which will help manage tool versions efficiently.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;brew install mise
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Configure your shell
&lt;/h3&gt;

&lt;p&gt;To ensure mise works properly, you need to activate it in your shell. Depending on which shell you use, add the appropriate line to your configuration file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# If you use Zsh, add the following line to ~/.zshrc
eval "$(mise activate zsh)"

# If you use Bash, add the following line to ~/.bashrc
eval "$(mise activate bash)"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After making the change, restart your terminal or open a new tab. Then, verify that mise is installed correctly by running:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mise -v
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If everything is set up properly, this command should return the installed version of mise.&lt;/p&gt;




&lt;h2&gt;
  
  
  Erlang and Elixir installation
&lt;/h2&gt;

&lt;p&gt;I ran into issues getting Erlang to work properly without installing OpenSSL first. The default macOS OpenSSL version just didn’t cut it—some encryption functions would fail. To avoid that headache, install OpenSSL via Homebrew.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;brew install openssl
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Install Erlang
&lt;/h3&gt;

&lt;p&gt;Elixir and Erlang versions are independent, so you need to make sure you’re using a compatible pair. The easiest way is to check the &lt;a href="https://hexdocs.pm/elixir/compatibility-and-deprecations.html#between-elixir-and-erlang-otp" rel="noopener noreferrer"&gt;compatibility table in the Hex Docs&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;At the time I wrote this, Elixir 1.18.2 works with Erlang 25–27, so I just went for the latest available.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mise install erlang@27.2.2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Install Elixir
&lt;/h3&gt;

&lt;p&gt;Installing Elixir follows the same pattern as Erlang—just specify the tool and the version you want:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mise install elixir@1.18.2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Set default, global versions
&lt;/h3&gt;

&lt;p&gt;To avoid manually switching versions every time, set these as the global defaults.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mise use -g erlang
mise use -g elixir
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Verify installation
&lt;/h3&gt;

&lt;p&gt;Finally, check if Elixir was installed correctly. If everything went well, you should see the Elixir version along with the Erlang/OTP version.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;elixir -v
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;p&gt;That should be it! 🎉 If you run into any issues, try experimenting with different Erlang versions or double-checking the OpenSSL installation—it was the main thing that tripped me up.&lt;/p&gt;

&lt;p&gt;If this guide helped you, feel free to &lt;strong&gt;leave a like&lt;/strong&gt; or &lt;strong&gt;drop a comment&lt;/strong&gt; with your experience! 🚀&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>elixir</category>
      <category>tooling</category>
    </item>
  </channel>
</rss>
