curbのインストールエラーを解消する

curbのインストールエラーを解消する

Rocky Linux 8にrbenvを入れ、Ruby 3.0.0をインストールしbundlerを使いcurbをインストールしようとしたところ、以下のようなエラーが発生しました。

An error occurred while installing curb (0.9.11), and Bundler cannot continue.
Make sure that `gem install curb -v '0.9.11' --source 'https://rubygems.org/'` succeeds before bundling.

In Gemfile:
  curb

このエラーで案内されている、「gem install curb -v ‘0.9.11’ –source ‘https://rubygems.org/’」を実行するもエラーは解消せず。

解決方法は、環境にlibcurl-devel が入っていないことでした。

このエラーにたどり着くまでにやったこと。

直接、gem installコマンドをたたく。
gem install curbを実行すると、以下のような文が出る。libcurlが怪しいことがわかる。

extconf.rb:18:in `<main>':   Can't find libcurl or curl/curl.h (RuntimeError)

最終行付近に、/root/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/extensions/x86_64-linux/3.0.0/curb-1.0.0/gem_make.outといったファイルが案内されているので開く。

ざっと見ていくと、エラーが表示されている箇所が見つかる。

/usr/bin/ld: cannot find -lcurl
collect2: error: ld returned 1 exit status

/usr/bin/ldコマンドで、-lcurlを指定したときに正常に戻り値が取れていないことがわかる。

-lcurlオプションは、-l = libを示しているため、libcurlが怪しいことがわかる。
実際に /usr/bin/ld -lcurlをたたくと上記のエラーが出るはず。

rpm -qa | grep libcurl でインストール済みのlibcurlパッケージを調べる。dnf search libcurl* でほかにlibcurl関連パッケージがないかを調べる。

libcurl-develがあることがわかる。
これが必要なのかがわからなかったが、curbの公式サイトに行くと、必要パッケージがlibcurl-develであることが記載されていました…遠回り。