aboutsummaryrefslogtreecommitdiff
path: root/_posts/2024-06-02-Building_rbenv_on_OpenBSD_7.5.md
blob: 1e6a9fbaf1ec9dd5ce545d6915a49b1c274553ab (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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
---
layout: post
title: Building rbenv on OpenBSD 7.5
permalink: /posts/Building_rbenv_on_OpenBSD_7.5/
---

I use Ruby (specifically with Jekyll) for a lot of my clubs/projects while using my personal laptop ([X220 ThinkPad](/posts/x220/)) which is runs OpenBSD. Since I recently upgraded to OpenBSD 7.5 I thought it could be helpful for others if I shared my process of building and using `rbenv` to install different Ruby versions.

## Before We Build

First, be sure to install the required packages in order to build from source, and then clone the core `rbenv` repo:

    pkg_add git gcc gmake libffi libyaml openssl
    git clone https://github.com/rbenv/rbenv.git ~/.rbenv

## Building `rbenv`

Add `rbenv` to your PATH and initialize it (place this inside your `.bashrc` or `.zshrc` etc):

```sh
export PATH="$HOME/.rbenv/bin:$PATH"
export PATH="$HOME/.rbenv/shims:$PATH"
export RUBY_CONFIGURE_OPTS="--with-openssl-dir=/usr/local"
eval "$(rbenv init -)"
```

Then reload your shell (zsh in this example): 

```sh
source ~/.zshrc
```

Next we will need to install `ruby-build` as a `rbenv` plugin. Clone the ruby-build repository into the rbenv plugins directory:

```sh
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
```

## Installing Ruby and Setting Our Version

Now use `rbenv` to install the desired version of Ruby (we will get an older version for this example):

```sh
rbenv install 3.3.0
```

If you run into issues, you may need to specify your openssl directory:

```sh
RUBY_CONFIGURE_OPTS="--with-openssl-dir=/usr/local" rbenv install 3.3.0
```

If you're on a slower machine (like mine) this might take a little bit. Just grab a coffee or a snack while you wait!

Then navigate to your project of choice and set the `local` Ruby version:

```sh
rbenv local 3.3.0
``` 

That's it! If you'd prefer to set this version of Ruby for all projects going forward, simply replace `local` with `global`.