質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

yum

yumコマンドは、UNIX系OSのRPMパッケージのインストールなどを行うためのプログラムのことです。

Q&A

解決済

1回答

4723閲覧

yum updateコマンド時のリポジトリの動作について

Masashi_Ikuz

総合スコア15

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

yum

yumコマンドは、UNIX系OSのRPMパッケージのインストールなどを行うためのプログラムのことです。

0グッド

1クリップ

投稿2016/04/10 03:36

編集2016/04/11 12:54

yum updateコマンド時にどのような処理がされているかを教えてください。

1.リポジトリの[baseurl]または[mirrorlist]にリポジトリのURLが登録されている場合、
サーバにあるどのファイルと読み込んで、新しいパッケージを見つけてくるのでしょうか?

2.また、現在インストールされているパッケージを確認して、アップデート必要の有無を判断すると思いますが、
その情報はどこに保存されているでしょうか?
cachedir(/var/cache/yum/$basearch/$releasever)でしょうか?
cachedirに情報がない場合は、パッケージをひとつずつ確認しにいくのでしょうか?

なお、現在のCentOS-Base.repoの設定は下記の通りです。
{
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra}
{#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/}
gpgcheck=1
{gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6}

{#released updates}
{[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
{#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/}
gpgcheck=1
{gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6}

}
また、epel.repo も有効にしています。
{
[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
{#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch}
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1
}

上記の設定で、yum updateを実行しますと、下記の結果が返ってきます。
{
[root@tk2-255-37397 ~]# yum update
読み込んだプラグイン:fastestmirror, security
更新処理の設定をしています
Determining fastest mirrors
epel/metalink
  • base: ftp.tsukuba.wide.ad.jp
  • epel: ftp.riken.jp
  • extras: ftp.tsukuba.wide.ad.jp
  • updates: ftp.tsukuba.wide.ad.jp

base | 3.7 kB 00:00
base/primary_db | 4.6 MB 00:00
epel | 4.3 kB 00:00
epel/primary_db | 5.9 MB 00:00
extras | 3.4 kB 00:00
extras/primary_db | 37 kB 00:00
updates | 3.4 kB 00:00
updates/primary_db | 4.6 MB 00:00
更新と設定されたパッケージがありません。

}

以上、よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2016/04/10 04:01

設定値はコードブロックに入れたほうが可読性があがります。また、水平線「---」は前後に空行を入れましょう。
Masashi_Ikuz

2016/04/11 12:56

ご指摘ありがとうございます。文字が自動的に変換されていたことに気が付きませんでした。
guest

回答1

0

ベストアンサー

  1. リポジトリの[baseurl]または[mirrorlist]にリポジトリのURLが登録されている場合、サーバにあるどのファイルと読み込んで、新しいパッケージを見つけてくるのでしょうか?

repodata/ 以下の「(ハッシュ値?)-primary.sqlite.bz2」などのファイルです。
/var/caceh/yum/$basearch/$releasever/updates/ などにダウンロードされます。

  1. また、現在インストールされているパッケージを確認して、アップデート必要の有無を判断すると思いますが、その情報はどこに保存されているでしょうか?

/var/lib/rpm/ 以下のファイルだと思います。
(rpm -qa で一覧表示する元のデータ)

投稿2016/04/10 08:27

TaichiYanagiya

総合スコア12141

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Masashi_Ikuz

2016/04/11 13:15

ご回答ありがとうございます。試にiijのrepodata/以下にprimary.sqlite.bz2があることを確認しました。 http://ftp.iij.ad.jp/pub/linux/centos/6.7/updates/x86_64/repodata/ 「yum updateコマンドを実施後、登録しているURLのrepodata以下のprimary.sqlite.bz2などを読み込んで、該当するパッケージを参照する。」という認識でよろしいでしょうか?
TaichiYanagiya

2016/04/12 00:49

「yum updateコマンドを実施後、登録しているURLのrepodata以下のprimary.sqlite.bz2などを読み込んで、インストール済みのパッケージとバージョン・リリース番号を比較する。」ということだと思います。
Masashi_Ikuz

2016/04/13 12:27

ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問