conohaサーバーを借り、ruby3.2.2をasdf経由でインストールしようとしていた際、libyaml-develが必要だからインストールしてね、と出るのにインストールコマンドを打つと、
$ sudo dnf install -y libyaml-devel
Last metadata expiration check: 0:00:43 ago on Mon 29 Jul 2024 11:00:14 PM JST.
No match for argument: libyaml-devel
となり、見つからないとなってしまった。その際解決した手順の忘備録です。
対処法
下記ページの通りに実行したところ、無事インストールできrubyのインストールも完了しました。
参考ページの通り、以下のコマンドを実行します。
sudo dnf install -y epel-release
sudo dnf config-manager --enable epel
sudo dnf config-manager --set-enabled crb
sudo dnf repolist | grep crb
sudo dnf install libyaml libyaml-devel
解決理由を調べてみる
まず、EPELというのは Extra Packages for Enterprise Linux の略で、標準のCentOSやRHELリポジトリにない追加パッケージを提供してくれるもののようです。
それをインストールし、有効化しているのが以下コマンドです。
sudo dnf install -y epel-release
sudo dnf config-manager --enable epel
そして、CRBというのがCodeReady Builderの略で、こちらも開発用ライブラリやツールを提供してくれます。
(以前のPowerToolsリポジトリ、という言葉が散見されるので調べてみると、下記のように似た記事が出てきます。両者の違いを調べるまではしていませんが、どうやらcentos9ではPowerToolsは利用でず、CRBを利用する形になっているようです。これでちょっとハマりました。)
問題点: 「CentOS Stream 9」では、「powertools」リポジトリが使えません。
それを有効化します。
sudo dnf config-manager --set-enabled crb
ちゃんと有効化されているか確認。
sudo dnf repolist | grep crb
私の場合は以下のように出力されました。
crb CentOS Stream 9 - CRB
そして、当初の目的であるパッケージをインストールして完了です。
sudo dnf install libyaml libyaml-devel
要するに、centos streamにないパッケージの広範な有効化をした結果、libyaml-develのインストールができたということでしょうか。(直接の解決要因はcrbのような気がします。が、間違っていましたら申し訳ないです)
これでcentos9環境でもrubyやrailsの作業ができそうです。よかった。