summaryrefslogtreecommitdiff
path: root/posts/rvm.md
blob: 20c0f27ccd24814ce3b403deb661d32c0ab88618 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
[[!meta title="Installing Ruby with RVM on Alpine Linux"]]
[[!meta date="2023-03-16"]]

For some on-going projects I need to switch to different versions of `ruby`. Although there exist many step-by-step instructions on installing and configuring `rvm` for most Linux distros, there aren't many focused on Alpine "daily drivers".

So this post is more or less a helpful document for my future self. If it happens to help others then that's an added bonus!

## Simple Setup

Make sure you have the basic packages first:


    apk update
    apk add curl gcc gnupg gpg dirmngr procps musl-dev linux-headers zlib zlib-dev openssl openssl-dev libssl1.1


Next download the latest `stable` version of `rvm` from Github, unpack it, place it in the proper user directory (~/.rvm) and install any required libs:


    curl -sSL https://github.com/rvm/rvm/tarball/stable -o rvm-stable.tar.gz
    echo 'export rvm_prefix="$HOME"' > ~/.rvmrc
    echo 'export rvm_path="$HOME/.rvm"' >> ~/.rvmrc
    mkdir rvm && cd rvm
    tar --strip-components=1 -xzf ../rvm-stable.tar.gz
    ./install --auto-dotfiles --autolibs=0


Now we can remove everything and properly link to `rvm`:


    cd ../ && rm -rf rvm-stable stable.tar.gz rvm
    source ~/.rvm/scripts/rvm


**Note**: If you plan to work with `bundler` be sure to do the following before installing ruby versions via `rvm`:


    rvm pkg install openssl
    rvm pkg install libyaml


Now you can freely install any version of Ruby that you desire!


    rvm install ruby-X.X.X