0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Ruby3.3.0のインストールのトラブルシュート

Posted at

環境

Ubuntu20.4
Ruby3.3.0

内容

rbenvを使って、Ruby3.3.0をインストールすると、エラーが出てきたので、そのトラブルシュートです。

err.sh
$rbenv install -v 3.3.0
*** Following extensions are not compiled:
fiddle:
        Could not be configured. It will not be installed.
        /tmp/ruby-build.20240704151132.2566.Axj65T/ruby-3.3.0/ext/fiddle/extconf.rb:78: missing libffi. Please install libffi or use --with-libffi-source-dir with libffi source location.
        Check ext/fiddle/mkmf.log for more details.
psych:
        Could not be configured. It will not be installed.
        Check ext/psych/mkmf.log for more details.
*** Fix the problems, then remove these directories and try again if you want.
make[1]: *** [exts.mk:2422: note] Error 1
make[1]: Leaving directory '/tmp/ruby-build.20240704151132.2566.Axj65T/ruby-3.3.0'
make: *** [uncommon.mk:398: build-ext] Error 2
external command failed with status 2

BUILD FAILED (Ubuntu 20.04 on x86_64 using ruby-build 20240702-2-g490428a)

You can inspect the build directory at /tmp/ruby-build.20240704151132.2566.Axj65T

どうも、fiddlepsychという2つのライブラリがインストールされていないことが原因のようです。

fiddleに関しては、エラーメッセージにあるように、libffiというライブラリをインストールすれば解決するようですが、psychに関しては、エラーメッセージに具体的にどうすればいいかといった説明が記載されていません。ググってみるとpsychに関しては、libyamlというライブラリが必要なようです。では、そのように記載してくれればいいものを・・・

fiddleをインストールします。

$sudo apt-get install libffi-dev

psychをインストールします。

$sudo apt-get install libyaml-dev

この後、再度、Rubyをインストールすれば、最後に次のメッセージが表示され、正常にインストールが完了しました。

ok.sh
==> Installed ruby-3.3.0 to /home/vagrant/.rbenv/versions/3.3.0

参考リンクにもある通り、Ruby3.2.0以降では、libffi、libyamlといった、サードパーティ製のライブラリの同梱が廃止されたようです。
ぐぐっていると、同じようなエラーでトラブっている人は割と多くいるようです。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?