teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

5

表現を修正

2021/09/07 08:47

投稿

Daregada
Daregada

スコア11990

answer CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  判明した原因に合わせて、以下の説明を修正してあります。
4
4
 
5
- 原因は「**yumのリポジトリデータベースのupdatesリポジトリが更新されていない**」ためでした。通常は、`sudo yum update`とするだけで、すでにインストール済みのパッケージの更新チェックをする前に、リポジトリデータベースが最新の状態になります。
5
+ 原因は「**yumのリポジトリデータベースのupdatesリポジトリの設定を間違えたために、updatesリポジトリ使われていない**」ためでした。通常は、`sudo yum update`とするだけで、すでにインストール済みのパッケージの更新チェックをする前に、リポジトリデータベースが最新の状態になります。
6
6
 
7
7
  ところが、質問者の設定ミスにより、updatesリポジトリのbaseurl(リポジトリ基準URL)がbaseリポジトリと同じURLに設定されていました。おそらく、yumは同一のbaseurlを持つリポジトリに対しては、最初の1個だけ処理するように作られており、baseリポジトリと同じbaseurlを持つupdatesリポジトリの処理は飛ばされることになります。
8
8
 

4

誤字を修正

2021/09/07 08:46

投稿

Daregada
Daregada

スコア11990

answer CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  判明した原因に合わせて、以下の説明を修正してあります。
4
4
 
5
- 原因は「**yumのリポジトリデータベースのupdateリポジトリが更新されていない**」ためでした。通常は、`sudo yum update`とするだけで、すでにインストール済みのパッケージの更新チェックをする前に、リポジトリデータベースが最新の状態になります。
5
+ 原因は「**yumのリポジトリデータベースのupdatesリポジトリが更新されていない**」ためでした。通常は、`sudo yum update`とするだけで、すでにインストール済みのパッケージの更新チェックをする前に、リポジトリデータベースが最新の状態になります。
6
6
 
7
- ところが、質問者の設定ミスにより、updateリポジトリのbaseurl(リポジトリ基準URL)がbaseリポジトリと同じURLに設定されていました。おそらく、yumは同一のbaseurlを持つリポジトリに対しては、最初の1個だけ処理するように作られており、baseリポジトリと同じbaseurlを持つupdatesリポジトリの処理は飛ばされることになります。
7
+ ところが、質問者の設定ミスにより、updatesリポジトリのbaseurl(リポジトリ基準URL)がbaseリポジトリと同じURLに設定されていました。おそらく、yumは同一のbaseurlを持つリポジトリに対しては、最初の1個だけ処理するように作られており、baseリポジトリと同じbaseurlを持つupdatesリポジトリの処理は飛ばされることになります。
8
8
 
9
- 実際のupdatesリポジトリには、httpdやhttpd-devel、openldapなどの更新されたパッケージが含まれています。実際、こちらの手元にあるCentOS7でhttpd-develをインストールしたところ、httpdやhttpd-develのバージョンは**2.4.6-97**、openldap-develのバージョンは**2.4.44-24**でした。どちらも、質問者がyumでインストールしようとしているものより新しいバージョンです。しかし、質問者のCentOS7では、yumが正しいbaseurlを知らないため、まったく使われないままになっています。
9
+ 実際のupdatesリポジトリには、httpdやhttpd-devel、openldapなどの更新されたパッケージが含まれています。実際、こちらの手元にあるCentOS7でhttpd-develをインストールしたところ、httpdやhttpd-develのバージョンは**2.4.6-97**、openldap-develのバージョンは**2.4.44-24**でした。どちらも、質問者がyumでインストールしようとしているものより新しいバージョンです。しかし、質問者のCentOS7では、yumが正しいbaseurlを知らないため、らは取得できない状態になっています。
10
10
 
11
11
  この状態を修正するには、管理者権限でテキストエディターを起動して、`/etc/yum.repos.d/CentOS-Base.repo`を開き、**`[updates]`以下にある`baseurl=`で始まる行を削除するか、先頭に`#`を付けてコメントにしてください**。
12
12
  また、そのすぐ上にある`#mirrorlist=`で始まる行の先頭の`#`だけを削除して、コメントを解除してください。

3

判明した原因に合わせて全体を書き替えた

2021/09/07 08:43

投稿

Daregada
Daregada

スコア11990

answer CHANGED
@@ -1,16 +1,15 @@
1
1
  依存性のチェックに失敗していますね。
2
2
 
3
- 原因は「**yumのリポジトリデータベースが更新されていない**」ためだと想れます。`sudo yum update`ですでにインストール済みhttpdパッケージなどのアップデート行なえば、同時にリポジトリデータベースも最新になります。
3
+ 判明した原因に合せて以下説明修正してあります。
4
4
 
5
- 後、httpd-develのインストールを行なえば最新のリポジトリデータベースに基づいて問題くインストールされるはずです。
5
+ 原因は「**yumリポジトリデータベースupdateリポジトリが更新されていない**」ためでした。通常は、`sudo yum update`とするだけで、すでにインストール済みのパッケージの更新チェックする前に、リポジトリデータベースが最新の状態になります。
6
6
 
7
- 実際、こちらの手元にあるCentOS7でhttpd-develをインストールしたところ、httpdやhttpd-develバージョンは**2.4.6-97**openldap-develバーョンは**2.4.44-24**でした。どちあなたがyumでインスールようとしいるものより新しいバーョンです。
7
+ ところ質問者設定ミスによりupdateリポジトリbaseurl(リポトリ基準URL)がbaseリポジトリと同じURLに設定されていました。おそ、yumは同一のbaseurlを持つリポジリに対しては、最初1個だけ処理するうに作られてお、baseリポトリと同じbaseurlを持つupdatesリポジトリの処理は飛ばされることになります。
8
8
 
9
- 補足: おう本当だログを見るとupdatesまれていませんね
10
- `yum repolist updates -v`を実行すると、リポジトリの状態を確認できます。
11
- ~~もし状態が「無効」になっていたら、`sudo yum-config-manager --enable updates`で有効にしてから、`sudo yum update`してみてください。~~
9
+ 実際のupdatesリポジトリにはhttpdやhttpd-devel、openldapなどの更新されたパッケージが含まれています実際、こちらの手元にあCentOS7でhttpd-develをインストールしたころ、httpdやhttpd-develのバージョンは**2.4.6-97**、openldap-develのバージョンは**2.4.44-24**でした。どちらも、質問者yumでインストールしようとしているものより新しいバージョンです。しかし、質問者のCentOS7では、yumが正しいbaseurlを知らないため、ったく使わないままになっていま
12
10
 
13
- 原因がっきりしましたね。管理者権限でテキストエディターを起動して、`/etc/yum.repos.d/CentOS-Base.repo`を開き、**`[updates]`以下にある`baseurl=`で始まる行を削除するか、先頭に`#`を付けてコメントにしてください**。また、そのすぐ上にある`#mirrorlist=`で始まる行の先頭の`#`だけを削除して、コメントを解除してください。
11
+ この状態を修正するに管理者権限でテキストエディターを起動して、`/etc/yum.repos.d/CentOS-Base.repo`を開き、**`[updates]`以下にある`baseurl=`で始まる行を削除するか、先頭に`#`を付けてコメントにしてください**。
12
+ また、そのすぐ上にある`#mirrorlist=`で始まる行の先頭の`#`だけを削除して、コメントを解除してください。
14
13
 
15
14
  ```diff
16
15
  #released updates

2

修正方法を追加

2021/09/07 08:41

投稿

Daregada
Daregada

スコア11990

answer CHANGED
@@ -8,4 +8,21 @@
8
8
 
9
9
  補足: おう、本当だ。ログを見るとupdatesが読まれていませんね。
10
10
  `yum repolist updates -v`を実行すると、リポジトリの状態を確認できます。
11
- もし状態が「無効」になっていたら、`sudo yum-config-manager --enable updates`で有効にしてから、`sudo yum update`してみてください。
11
+ ~~もし状態が「無効」になっていたら、`sudo yum-config-manager --enable updates`で有効にしてから、`sudo yum update`してみてください。~~
12
+
13
+ 原因がはっきりしましたね。管理者権限でテキストエディターを起動して、`/etc/yum.repos.d/CentOS-Base.repo`を開き、**`[updates]`以下にある`baseurl=`で始まる行を削除するか、先頭に`#`を付けてコメントにしてください**。また、そのすぐ上にある`#mirrorlist=`で始まる行の先頭の`#`だけを削除して、コメントを解除してください。
14
+
15
+ ```diff
16
+ #released updates
17
+ [updates]
18
+ name=CentOS-$releasever - Updates
19
+ -#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
20
+ +mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
21
+ #baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
22
+ -baseurl=http://ftp.riken.jp/Linux/centos/$releasever/os/$basearch
23
+ gpgcheck=1
24
+ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
25
+ ```
26
+
27
+ `baseurl=`はリポジトリーの基準となるURLですが、**設定内容がupdates用ではなく、base用のURLになっています**。
28
+ あなたは、fastestmirrorプラグインを使っている(はずな)ので、本来ならbaseurlを指定しなくても、最寄りの一番速いミラーサイトが選択され、baseurlがよろしく設定されるのです。実際、baseやextraの設定はそうなっており、yumで「ftp.riken.jp」が選択されていますね。これと同様の設定をすればいいのです。

1

補足を追加

2021/09/07 08:22

投稿

Daregada
Daregada

スコア11990

answer CHANGED
@@ -4,4 +4,8 @@
4
4
 
5
5
  その後、httpd-develのインストールを行なえば、最新のリポジトリデータベースに基づいて問題なくインストールされるはずです。
6
6
 
7
- 実際、こちらの手元にあるCentOS7でhttpd-develをインストールしたところ、httpdやhttpd-develのバージョンは**2.4.6-97**、openldap-develのバージョンは**2.4.44-24**でした。どちらも、あなたがyumでインストールしようとしているものより新しいバージョンです。
7
+ 実際、こちらの手元にあるCentOS7でhttpd-develをインストールしたところ、httpdやhttpd-develのバージョンは**2.4.6-97**、openldap-develのバージョンは**2.4.44-24**でした。どちらも、あなたがyumでインストールしようとしているものより新しいバージョンです。
8
+
9
+ 補足: おう、本当だ。ログを見るとupdatesが読まれていませんね。
10
+ `yum repolist updates -v`を実行すると、リポジトリの状態を確認できます。
11
+ もし状態が「無効」になっていたら、`sudo yum-config-manager --enable updates`で有効にしてから、`sudo yum update`してみてください。