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

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

ただいまの
回答率

90.48%

  • Linux

    3921questions

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

  • CentOS

    2778questions

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

  • yum

    153questions

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

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

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 2,020

Masashi_Ikuz

score 8

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                                                                                       | 4.5 kB     00:00
 * 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
更新と設定されたパッケージがありません。
}
 ---------------------------------------------------------- 

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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • kei344

    2016/04/10 13:01

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

    キャンセル

  • Masashi_Ikuz

    2016/04/11 21:56

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

    キャンセル

回答 1

checkベストアンサー

0

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

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

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/04/11 22: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などを読み込んで、該当するパッケージを参照する。」という認識でよろしいでしょうか?

    キャンセル

  • 2016/04/12 09:49

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

    キャンセル

  • 2016/04/13 21:27

    ありがとうございます。

    キャンセル

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

  • ただいまの回答率 90.48%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Linux

    3921questions

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

  • CentOS

    2778questions

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

  • yum

    153questions

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