回答編集履歴

5

表現を修正

2021/09/07 08:47

投稿

Daregada
Daregada

スコア11990

test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
 
8
8
 
9
- 原因は「**yumのリポジトリデータベースのupdatesリポジトリが更新されていない**」ためでした。通常は、`sudo yum update`とするだけで、すでにインストール済みのパッケージの更新チェックをする前に、リポジトリデータベースが最新の状態になります。
9
+ 原因は「**yumのリポジトリデータベースのupdatesリポジトリの設定を間違えたために、updatesリポジトリ使われていない**」ためでした。通常は、`sudo yum update`とするだけで、すでにインストール済みのパッケージの更新チェックをする前に、リポジトリデータベースが最新の状態になります。
10
10
 
11
11
 
12
12
 

4

誤字を修正

2021/09/07 08:46

投稿

Daregada
Daregada

スコア11990

test CHANGED
@@ -6,15 +6,15 @@
6
6
 
7
7
 
8
8
 
9
- 原因は「**yumのリポジトリデータベースのupdateリポジトリが更新されていない**」ためでした。通常は、`sudo yum update`とするだけで、すでにインストール済みのパッケージの更新チェックをする前に、リポジトリデータベースが最新の状態になります。
9
+ 原因は「**yumのリポジトリデータベースのupdatesリポジトリが更新されていない**」ためでした。通常は、`sudo yum update`とするだけで、すでにインストール済みのパッケージの更新チェックをする前に、リポジトリデータベースが最新の状態になります。
10
10
 
11
11
 
12
12
 
13
- ところが、質問者の設定ミスにより、updateリポジトリのbaseurl(リポジトリ基準URL)がbaseリポジトリと同じURLに設定されていました。おそらく、yumは同一のbaseurlを持つリポジトリに対しては、最初の1個だけ処理するように作られており、baseリポジトリと同じbaseurlを持つupdatesリポジトリの処理は飛ばされることになります。
13
+ ところが、質問者の設定ミスにより、updatesリポジトリのbaseurl(リポジトリ基準URL)がbaseリポジトリと同じURLに設定されていました。おそらく、yumは同一のbaseurlを持つリポジトリに対しては、最初の1個だけ処理するように作られており、baseリポジトリと同じbaseurlを持つupdatesリポジトリの処理は飛ばされることになります。
14
14
 
15
15
 
16
16
 
17
- 実際の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を知らないため、まったく使われないままになっています。
17
+ 実際の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を知らないため、らは取得できない状態になっています。
18
18
 
19
19
 
20
20
 

3

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

2021/09/07 08:43

投稿

Daregada
Daregada

スコア11990

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

2

修正方法を追加

2021/09/07 08:41

投稿

Daregada
Daregada

スコア11990

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

1

補足を追加

2021/09/07 08:22

投稿

Daregada
Daregada

スコア11990

test CHANGED
@@ -11,3 +11,11 @@
11
11
 
12
12
 
13
13
  実際、こちらの手元にあるCentOS7でhttpd-develをインストールしたところ、httpdやhttpd-develのバージョンは**2.4.6-97**、openldap-develのバージョンは**2.4.44-24**でした。どちらも、あなたがyumでインストールしようとしているものより新しいバージョンです。
14
+
15
+
16
+
17
+ 補足: おう、本当だ。ログを見るとupdatesが読まれていませんね。
18
+
19
+ `yum repolist updates -v`を実行すると、リポジトリの状態を確認できます。
20
+
21
+ もし状態が「無効」になっていたら、`sudo yum-config-manager --enable updates`で有効にしてから、`sudo yum update`してみてください。