「epel-release」インストール後にyum installで「Cannot retrieve metalink for repository」と表示される場合の対処法
Docker上でperlをインストールしようとすると「Cannot retrieve metalink for repository: epel/x86_64. Please verify its path and try again」と表示されてしまい、インストールできない現象が発生しました。
エラー内容を翻訳すると下記の通りです。
epel/x86_64:リポジトリの「metalink」を取得できません。パスを確認して再度試しててください
EPELというは「Extra Packages for Enterprise Linux」の略で、標準のリポジトリでは提供されないパッケージを使うことができます。
下記yum
コマンドで既にインストール済みなのですが、このEPELの「metalink」パスに問題があったようです。
yum -y install epel-release
EPELの設定ファイルを修正
EPELの設定ファイルを修正したいので、vi
コマンドを使ってVimで設定ファイルを編集します。
vi /etc/yum.repos.d/epel.repo
やることは下記の2つです。
- 「metalink」行の先頭に「#」を付けてコメントアウト
- 「baselink」行の先頭にある「#」を外して適用する
Vimの基本的な使い方は矢印キーでカーソルを移動し、iで編集モードに切り替わるので切り替わったら入力したり削除したりの編集をして、終わったらescで戻ります。
すべての編集が終わったら:wq
と入力し、enterで編集完了です。
これで改めてperlのインストールをすると無事進みました。
Dockerfileで実行している場合
Dockerfile上に必要なコマンドを全て書いて、下記Dockerのビルド時に全て実行するようにしていました。
docker-compose up -d --build
しかし、上記の編集作業が必要になるため、途中エラーで止まってしまいました。
方法を模索しましたが結局できなかったので、エラーが出ない最小限のみインストールするようにしました(エラーが出るものはコメントアウトしてスキップ)。
そしてエラーが出るものは、上記のEPEL設定ファイル編集後に手動でインストールしました。