今さらですがyum(^^;)

#0 はじめに
CentOS-Media.repoがあると、yum --enablerepo=* のように、全リポジトリを対象にした
操作が失敗するので、本検証ではCentOS-Media.repoを削除した状態で行いました。

```
[root@master1 yum.repos.d]# pwd
/etc/yum.repos.d
[root@master1 yum.repos.d]# ls CentOS-Media.repo
CentOS-Media.repo

[root@master1 yum.repos.d]# rm CentOS-Media.repo
rm: 通常ファイル `CentOS-Media.repo' を削除しますか? y

[root@master1 yum.repos.d]# ls CentOS-Media.repo
ls: CentOS-Media.repo にアクセスできません: そのようなファイルやディレクトリはありません
[root@master1 yum.repos.d]#

```

#1 検証環境


```
[root@master1 ~]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)

[root@master1 ~]# rpm -qa|grep centos-release
centos-release-7-2.1511.el7.centos.2.10.x86_64

```


#2 日本国内のリポジトリを選択する(include_only=.jp)


include_onlyのjpだけ有効にした場合とjpを無効にした場合について、
アクセスするドメイン名を比較した。jpだけ有効にすると、jpドメインだけに
アクセスしていることがわかった。

```
-------------------------------------------
1. jpだけを有効にする。
-------------------------------------------
[root@master1 ~]# vi /etc/yum/pluginconf.d/fastestmirror.conf
#include_only=.nl,.de,.uk,.ie
include_only=.jp

yumキャッシュをクリアする。
[root@master1 ~]# yum clean all
読み込んだプラグイン:fastestmirror
リポジトリーを清掃しています: base epel extras updates
Cleaning up everything
Cleaning up list of fastest mirrors

リポジトリを表示する。
[root@master1 ~]# yum repolist
読み込んだプラグイン:fastestmirror
base                                                               | 3.6 kB  00:00:00
epel/x86_64/metalink                                               | 4.6 kB  00:00:00
epel                                                               | 4.3 kB  00:00:00
extras                                                             | 3.4 kB  00:00:00
updates                                                            | 3.4 kB  00:00:00
(1/7): epel/x86_64/group_gz                                        | 170 kB  00:00:09
(2/7): base/7/x86_64/primary_db                                    | 5.6 MB  00:00:12
(3/7): extras/7/x86_64/primary_db                                  | 183 kB  00:00:02
(4/7): epel/x86_64/updateinfo                                      | 706 kB  00:00:14
(5/7): updates/7/x86_64/primary_db                                 | 1.3 MB  00:00:03
(6/7): base/7/x86_64/group_gz                                      | 155 kB  00:00:16
(7/7): epel/x86_64/primary_db                                      | 4.5 MB  00:12:25
Determining fastest mirrors
Including mirror: ftp.riken.jp
Including mirror: ftp.tsukuba.wide.ad.jp
Including mirror: ftp.iij.ad.jp
Including mirror: www.ftp.ne.jp
Including mirror: ftp.jaist.ac.jp
Including mirror: ftp.yz.yamagata-u.ac.jp
Including mirror: mirror.fairway.ne.jp
 * base: ftp.riken.jp
Including mirror: ftp.riken.jp
Including mirror: ftp.jaist.ac.jp
 * epel: ftp.riken.jp
Including mirror: ftp.riken.jp
Including mirror: ftp.tsukuba.wide.ad.jp
Including mirror: ftp.iij.ad.jp
Including mirror: www.ftp.ne.jp
Including mirror: ftp.jaist.ac.jp
Including mirror: ftp.yz.yamagata-u.ac.jp
Including mirror: mirror.fairway.ne.jp
 * extras: ftp.riken.jp
Including mirror: ftp.riken.jp
Including mirror: ftp.tsukuba.wide.ad.jp
Including mirror: ftp.iij.ad.jp
Including mirror: www.ftp.ne.jp
Including mirror: ftp.jaist.ac.jp
Including mirror: ftp.yz.yamagata-u.ac.jp
Including mirror: mirror.fairway.ne.jp
 * updates: ftp.riken.jp
リポジトリー ID                         リポジトリー名                                                  状態
base/7/x86_64                           CentOS-7 - Base                                               9,363
epel/x86_64                             Extra Packages for Enterprise Linux 7 - x86_64               11,019
extras/7/x86_64                         CentOS-7 - Extras                                               435
updates/7/x86_64                        CentOS-7 - Updates                                              433
repolist: 21,250
[root@master1 yum.repos.d]#


-------------------------------------------
2. jpを無効にする。
-------------------------------------------
[root@master1 ~]# vi /etc/yum/pluginconf.d/fastestmirror.conf
include_only=.nl,.de,.uk,.ie

jpドメイン以外にもアクセスしていることがわかる。
[root@master1 ~]# yum repolist
-中略-
Determining fastest mirrors
Including mirror: ftp.tsukuba.wide.ad.jp
Including mirror: mirror.vodien.com
 * base: ftp.tsukuba.wide.ad.jp
 * epel: ftp.jaist.ac.jp
Including mirror: ftp.tsukuba.wide.ad.jp
Including mirror: mirror.vodien.com
Including mirror: download.nus.edu.sg
 * extras: ftp.tsukuba.wide.ad.jp
Including mirror: ftp.tsukuba.wide.ad.jp
Including mirror: download.nus.edu.sg
 * updates: ftp.tsukuba.wide.ad.jp
リポジトリー ID                    リポジトリー名                                                    状態
base/7/x86_64                     CentOS-7 - Base                                                  9,363
epel/x86_64                       Extra Packages for Enterprise Linux 7 - x86_64                  11,042
extras/7/x86_64                   CentOS-7 - Extras                                                  200
updates/7/x86_64                  CentOS-7 - Updates                                                 438
repolist: 21,043
[root@master1 ~]#


```


#3 利用可能なリポジトリを調べる(repolist,repolist all)
```

本システム(master1)にインストールされているリポジトリファイル(*.repo)をもとに、有効なリポジトリだけを表示する。
つまり、enabled=1と設定されているリポジトリだけが表示される。
[root@master1 ~]# yum repolist
-中略-

リポジトリー ID                                     リポジトリー名                                                                  状態
base/7/x86_64                                       CentOS-7 - Base                                                                  9,363
epel/x86_64                                         Extra Packages for Enterprise Linux 7 - x86_64                                  11,019
extras/7/x86_64                                     CentOS-7 - Extras                                                                  435
updates/7/x86_64                                    CentOS-7 - Updates                                                                 433
repolist: 21,250
[root@master1 ~]#


本システム(master1)にインストールされているリポジトリファイル(*.repo)をもとに、全てのリポジトリを表示する。
つまり、enabled=0と設定されているリポジトリも表示される。
[root@master1 ~]# yum repolist all
-中略-

リポジトリー ID                    リポジトリー名                                                         状態
!C7.0.1406-base/x86_64             CentOS-7.0.1406 - Base                                                 無効
!C7.0.1406-centosplus/x86_64       CentOS-7.0.1406 - CentOSPlus                                           無効
!C7.0.1406-extras/x86_64           CentOS-7.0.1406 - Extras                                               無効
!C7.0.1406-fasttrack/x86_64        CentOS-7.0.1406 - CentOSPlus                                           無効
!C7.0.1406-updates/x86_64          CentOS-7.0.1406 - Updates                                              無効
!C7.1.1503-base/x86_64             CentOS-7.1.1503 - Base                                                 無効
!C7.1.1503-centosplus/x86_64       CentOS-7.1.1503 - CentOSPlus                                           無効
!C7.1.1503-extras/x86_64           CentOS-7.1.1503 - Extras                                               無効
!C7.1.1503-fasttrack/x86_64        CentOS-7.1.1503 - CentOSPlus                                           無効
!C7.1.1503-updates/x86_64          CentOS-7.1.1503 - Updates                                              無効
base/7/x86_64                      CentOS-7 - Base                                                        有効:  9,363
!base-debuginfo/x86_64             CentOS-7 - Debuginfo                                                   無効
!base-source/7                     CentOS-7 - Base Sources                                                無効
c7-media                           CentOS-7 - Media                                                       無効
centosplus/7/x86_64                CentOS-7 - Plus                                                        無効
centosplus-source/7                CentOS-7 - Plus Sources                                                無効
cr/7/x86_64                        CentOS-7 - cr                                                          無効
epel/x86_64                        Extra Packages for Enterprise Linux 7 - x86_64                         有効: 11,019
epel-debuginfo/x86_64              Extra Packages for Enterprise Linux 7 - x86_64 - Debug                 無効
epel-source/x86_64                 Extra Packages for Enterprise Linux 7 - x86_64 - Source                無効
epel-testing/x86_64                Extra Packages for Enterprise Linux 7 - Testing - x86_64               無効
epel-testing-debuginfo/x86_64      Extra Packages for Enterprise Linux 7 - Testing - x86_64 - Debug       無効
epel-testing-source/x86_64         Extra Packages for Enterprise Linux 7 - Testing - x86_64 - Source      無効
extras/7/x86_64                    CentOS-7 - Extras                                                      有効:    435
!extras-source/7                   CentOS-7 - Extras Sources                                              無効
fasttrack/7/x86_64                 CentOS-7 - fasttrack                                                   無効
updates/7/x86_64                   CentOS-7 - Updates                                                     有効:    433
updates-source/7                   CentOS-7 - Updates Sources                                             無効
repolist: 21,250
[root@master1 ~]#

```


#4 リポジトリを調べる方法
##4.1 コマンドの提供元リポジトリを調べる方法(whatprovides)


```

[root@master1 ~]# which chronyd
/usr/sbin/chronyd

chronydコマンドの提供元リポジトリを調べる。
base,updatesの2つのリポジトリから提供されていることがわかる。
[root@master1 ~]# yum whatprovides /usr/sbin/chronyd
-中略-

chrony-2.1.1-3.el7.centos.x86_64 : An NTP client/server
リポジトリー        : base
一致          :
ファイル名    : /usr/sbin/chronyd

chrony-2.1.1-4.el7.centos.x86_64 : An NTP client/server
リポジトリー        : updates
一致          :
ファイル名    : /usr/sbin/chronyd

chrony-2.1.1-4.el7.centos.x86_64 : An NTP client/server
リポジトリー        : @updates
一致          :
ファイル名    : /usr/sbin/chronyd


```



#5 リポジトリに存在するパッケージの検索方法
各リポジトリ(C7.0,C7.1,..)にどんな版数のパッケージが存在するかを確認する。

```
-----------------------------------------------------------
1. 事前準備(リポジトリに存在するbashパッケージを確認する）
-----------------------------------------------------------
インストールされているbashパッケージの版数を調べる。
[root@master1 yum.repos.d]# rpm -qa|grep bash
bash-4.2.46-19.el7.x86_64

yumキャッシュをクリアする。
[root@master1 ~]# yum clean all
-以下、略-

利用可能な全リポジトリにあるbashパッケージの版数一覧を調べる。
base,updatesはCentOS7.3のリポジトリを示している（★印)。CentOS7.2のリポジトリにあるbashは表示されない模様。
[root@master1 yum.repos.d]# yum --enablerepo=* --showduplicates list bash
-中略-

利用可能なパッケージ
bash.x86_64               4.2.45-5.el7                     C7.0.1406-base
bash.x86_64               4.2.45-5.el7_0.2                 C7.0.1406-updates
bash.x86_64               4.2.45-5.el7_0.4                 C7.0.1406-updates
bash.x86_64               4.2.46-12.el7                    C7.1.1503-base
bash.x86_64               4.2.46-20.el7_2                  base  ★
bash.x86_64               4.2.46-21.el7_3                  updates ★

-----------------------------------------------------------------
3. CentOS7.0(C7.0)リポジトリに存在するbashパッケージを表示する。
-----------------------------------------------------------------
[root@master1 yum.repos.d]# yum --disablerepo=* --enablerepo=C7.0* --showduplicates list bash
-中略-

インストール済みパッケージ
bash.x86_64               4.2.46-19.el7                     @anaconda
利用可能なパッケージ
bash.x86_64               4.2.45-5.el7                      C7.0.1406-base
bash.x86_64               4.2.45-5.el7_0.2                  C7.0.1406-updates
bash.x86_64               4.2.45-5.el7_0.4                  C7.0.1406-updates

-----------------------------------------------------------------
4. CentOS7.1(C7.1)リポジトリに存在するbashパッケージを表示する。
-----------------------------------------------------------------
[root@master1 yum.repos.d]# yum --disablerepo=* --enablerepo=C7.1* --showduplicates list bash
-中略-

インストール済みパッケージ
bash.x86_64                4.2.46-19.el7                   @anaconda
利用可能なパッケージ
bash.x86_64                4.2.46-12.el7                   C7.1.1503-base

--------------------------------------------------------
5. 最新リポジトリに存在するbashパッケージを表示する。
--------------------------------------------------------
本検証時点の最新リポジトリはCentOS7.3になります。
[root@master1 yum.repos.d]# yum check-update centos-release
-中略-
centos-release.x86_64       7-3.1611.el7.centos           base

最新リポジトリに存在するbashパッケージを表示する。
base,updatesは、CentOS7.2ではなく、CentOS7.3リポジトリを表すことになります（★印)
[root@master1 yum.repos.d]# yum --disablerepo=* --enablerepo=base,updates --showduplicates list bash
-中略-

インストール済みパッケージ
bash.x86_64                  4.2.46-19.el7             @anaconda
利用可能なパッケージ
bash.x86_64                  4.2.46-20.el7_2           base ★
bash.x86_64                  4.2.46-21.el7_3           updates ★
[root@master1 yum.repos.d]#

```


#6 特定パッケージをyumアップデート対象外にする(exclude)

/etc/yum.confに exclude=<パッケージ名> と設定することでyum updateの対象外にする。
以下はkubernetes-masterパッケージをアップデート対象外にしたときの例です。

```
kubernetes-masterパッケージの版数を調べる。
[root@master1 yum.repos.d]# rpm -qa|grep kubernetes-master
kubernetes-master-1.2.0-0.13.gitec7364b.el7.x86_64

yumキャッシュをクリアする。
[root@master1 yum.repos.d]# yum clean all
-以下、略-

アップデート可能かどうか調べる。アップデート可能だとわかる。
[root@master1 yum.repos.d]# yum check-update kubernetes-master
-中略-
kubernetes-master.x86_64                    1.3.0-0.3.git86dc49a.el7             extras
[root@master1 yum.repos.d]#

kubernetesをアップデート禁止にする。
[root@master1 yum.repos.d]# vi /etc/yum.conf
exclude=kubernetes-master

[root@master1 yum.repos.d]# yum clean all
-以下、略-


アップデート可能かどうか調べる。アップデート可能なパッケージなし。
excludeが機能していることがわかった。
[root@master1 yum.repos.d]# yum check-update kubernetes-master
読み込んだプラグイン:fastestmirror
-中略-

[root@master1 yum.repos.d]#

```



#7 バイナリパッケージ,ソースパッケージをダウンロードする。

```
---------------
1. 事前準備
---------------
yumdownloaderコマンドを使うので、事前準備として yum-utilsパッケージをインストールする。
[root@master1 ~]# yum -y install yum-utils
-以下、略-

---------------------------------------
2. バイナリパッケージをダウンロードする
---------------------------------------
[root@master1 ~]# yumdownloader bc
-中略-
bc-1.06.95-13.el7.x86_64.rpm                                                 | 115 kB  00:00:00

ダウンロードしたファイルを確認する。バイナリパッケージがダウンロードできた。
[root@master1 ~]# ls
bc-1.06.95-13.el7.x86_64.rpm

---------------------------------------
3. ソースパッケージをダウンロードする
---------------------------------------
[root@master1 ~]# yumdownloader --source bc
-中略-
bc-1.06.95-13.el7.src.rpm                              　　　　　　      | 301 kB  00:00:04

ダウンロードしたファイルを確認する。ソースパッケージがダウンロードできた。
[root@master1 ~]# ls
bc-1.06.95-13.el7.src.rpm

```


#8 yumコマンド実行時に送受信されるパケット
yumコマンドを実行すると、どんなパケットが流れているのか調べてみました。
TCPコネクションを確立したあと、HTTP GETを使って、ファイルをダウンロードしていました。
ファイルのダウンロードが完了すると、リポジトリからHTTP OKが返っていました。
その後、TCPコネクションを切断しました。

```
パケットをキャプチャする。
[root@master1 ~]# tcpdump -i eth0 tcp port 80 -w yum.cap

bcパッケージをダウンロードする。
[root@master1 ~]# yumdownloader --source bc

TCPコネクションを確立したあと、HTTTP GETをしてパッケージをダウンロードしている。
ダウンロードが完了すると、リポジトリからHTTP/1.1 200 OK が返ってきていることがわかる。
そのあと、TCPコネクションを終了していることがわかる。

  master1                                                                        リポジトリ
  192.168.0.10                                                                 108.61.16.227
   |                                                                                   |
   |-------------------------- SYN --------------------------------------------------->|
   |<------------------------- SYN + ACK ----------------------------------------------|
   |-------------------------- ACK --------------------------------------------------->|
   |                                                                                   |
   |--- HTTP GET /centos/7/os/Source/SPackages/bc-1.06.95-13.el7.src.rpm HTTP/1.1) --->|
   |                                                                                   |
   |                                                                                   |
   |<------------------------- DATA ---------------------------------------------------|
   |-------------------------- ACK --------------------------------------------------->|
   |                            :                                                      |
   |                         repeat                                                    |
   |                            :                                                      |
   |                                                                                   |
   |<-------------------- HTTP/1.1 200 OK  (application/x-rpm) + FIN ------------------|
   |-------------------------- ACK --------------------------------------------------->|
   |-------------------------- FIN --------------------------------------------------->|
   |<------------------------- ACK ----------------------------------------------------|
   |                                                                                   |

```



#9 yumコマンド実行履歴,実行内容を確認する。

```
--------------------------------------
1. /var/log/yum.logを確認する方法
--------------------------------------
[root@master1 ~]# cat /var/log/yum.log
Jan 04 21:36:50 Erased: flannel-0.5.5-1.el7.x86_64
Jan 10 20:47:50 Installed: flannel-0.2.0-10.el7.x86_64
Jan 10 20:48:30 Erased: flannel-0.2.0-10.el7.x86_64
Jan 10 20:48:42 Installed: flannel-0.2.0-10.el7.x86_64
Jan 10 20:49:27 Erased: flannel-0.2.0-10.el7.x86_64
Jan 10 21:16:32 Installed: flannel-0.2.0-10.el7.x86_64
Jan 10 21:21:34 Erased: flannel-0.2.0-10.el7.x86_64
Jan 10 22:06:08 Installed: flannel-0.2.0-10.el7.x86_64

--------------------------------------
2. yum historyコマンドを使う方法
--------------------------------------
[root@master1 ~]# yum history list
読み込んだプラグイン:fastestmirror
ID     | コマンドライン           | 日時             | 操作           | 変更
-------------------------------------------------------------------------------
    66 | --disablerepo=* --enable | 2017-01-18 17:46 | Downgrade      |    1
    65 | install centos-release   | 2017-01-18 17:42 | Update         |    1
    64 | --disablerepo=* --enable | 2017-01-18 17:16 | Downgrade      |    1
    63 | install centos-release   | 2017-01-18 17:15 | Update         |    1

-以下、略-

------------------------------------------------------
3. yum historyコマンドを使う方法(詳細情報を表示する)
------------------------------------------------------
ID=66の詳細情報を表示する。
[root@master1 ~]# yum history info 66
読み込んだプラグイン:fastestmirror
トランザクション ID : 66
開始時間            : Wed Jan 18 17:46:38 2017
開始 rpmdb          : 455:4dfd34f42517660c2ceb1f96b0d5add3ba57fcf7
終了時間            :            17:46:39 2017 (1 秒)
終了 rpmdb          : 455:251e9bfe6addcc6d45ac52c94a5c37ea0776552d
ユーザー            : root <root>
終了コード          : 成功
コマンドライン      : --disablerepo=* --enablerepo=C7.2.1511* downgrade centos-release
トランザクションの実行:
    インストール rpm-4.11.3-17.el7.x86_64                      @anaconda
    インストール yum-3.4.3-150.el7.centos.noarch               @base
    インストール yum-plugin-fastestmirror-1.1.31-34.el7.noarch @anaconda
切り替えたパッケージ:
    ダウングレード centos-release-7-2.1511.el7.centos.2.10.x86_64 @C7.2.1511-base
    ダウングレード済み                7-3.1611.el7.centos.x86_64      @base
history info
[root@master1 ~]#


--------------------------------------------------
4. yum historyコマンドを使う方法(特定パッケージのみ)
--------------------------------------------------
[root@master1 yum.repos.d]# yum history list flannel
読み込んだプラグイン:fastestmirror
ID     | コマンドライン           | 日時             | 操作           | 変更
-------------------------------------------------------------------------------
    47 | -y install flannel-0.2.0 | 2017-01-10 22:06 | Install        |    1
    46 | -y remove flannel        | 2017-01-10 21:21 | Erase          |    1
    45 | -y install flannel-0.2.0 | 2017-01-10 21:16 | Install        |    1
    44 | -y remove flannel        | 2017-01-10 20:49 | Erase          |    1
-以下、略-

```




#10 rpmパッケージをダウングレードする

```
誤って、CentOS7.2にCentOS7.3用のcentos-releaseパッケージをインストールしてしまった。
[root@master1 yum.repos.d]# rpm -qa|grep centos-release
centos-release-7-3.1611.el7.centos.x86_64
[root@master1 yum.repos.d]#

rpmパッケージをダウングレードをする。
しかし、現時点ではCentOS7.3が最新リポジトリなので、ダウングレードできない。
[root@master1 yum.repos.d]# yum downgrade centos-release
-中略-
何もしません
[root@master1 yum.repos.d]#

全リポジトリ(7.0から7.2)のcentos-releaseパッケージの版数を表示する。enablerepoに"c7*"と指定する。
[root@master1 yum.repos.d]# yum --disablerepo=* --enablerepo=C7* --showduplicates list  centos-release
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
インストール済みパッケージ
centos-release.x86_64              7-3.1611.el7.centos                   @base
利用可能なパッケージ
centos-release.x86_64              7-0.1406.el7.centos.2.3               C7.0.1406-base
centos-release.x86_64              7-0.1406.el7.centos.2.4               C7.0.1406-updates
centos-release.x86_64              7-0.1406.el7.centos.2.5               C7.0.1406-updates
centos-release.x86_64              7-0.1406.el7.centos.2.6               C7.0.1406-updates
centos-release.x86_64              7-1.1503.el7.centos.2.8               C7.1.1503-base
centos-release.x86_64              7-1.1503.el7.centos.2.8               C7.1.1503-updates
centos-release.x86_64              7-2.1511.el7.centos.2.10              C7.2.1511-base
[root@master1 yum.repos.d]#


CentOS7.2リポジトリにあるcentos-releaseパッケージにダウングレードする。
enablerepoに"C7.2.1511*"と指定する。
[root@master1 yum.repos.d]# yum --disablerepo=* --enablerepo=C7.2.1511* downgrade centos-release
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ centos-release.x86_64 0:7-2.1511.el7.centos.2.10 を ダウングレード
---> パッケージ centos-release.x86_64 0:7-3.1611.el7.centos を 削除
--> 依存性解決を終了しました。

依存性を解決しました

================================================================================================
 Package               アーキテクチャー   バージョン                   リポジトリー        容量
================================================================================================
ダウングレード中:
 centos-release        x86_64             7-2.1511.el7.centos.2.10     C7.2.1511-base      23 k

トランザクションの要約
=================================================================================================
ダウングレード  1 パッケージ

総ダウンロード容量: 23 k
Is this ok [y/d/N]: y
Downloading packages:
centos-release-7-2.1511.el7.centos.2.10.x86_64.rpm                   |  23 kB  00:00:02
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : centos-release-7-2.1511.el7.centos.2.10.x86_64          1/2
  整理中                  : centos-release-7-3.1611.el7.centos.x86_64               2/2
  検証中                  : centos-release-7-2.1511.el7.centos.2.10.x86_64          1/2
  検証中                  : centos-release-7-3.1611.el7.centos.x86_64               2/2

削除しました:
  centos-release.x86_64 0:7-3.1611.el7.centos

インストール:
  centos-release.x86_64 0:7-2.1511.el7.centos.2.10

完了しました!
[root@master1 yum.repos.d]#


パッケージ版数を確認する。
centos-releaseパッケージの版数が7-2になっている。ダウングレードできた。
[root@master1 yum.repos.d]# rpm -qa|grep centos-release
centos-release-7-2.1511.el7.centos.2.10.x86_64
[root@master1 yum.repos.d]#


```


#11 ミラーリストについて

repoファイルのmirrorlistで指定したURLにアクセスすると、リポジトリサーバの一覧が得られる。
一覧の中で、遅延がもっとも小さいサーバが選択される模様。


##11.1 CentOS-Base.repoのミラーリスト

```
変数は以下のものを指定する。
- release は CentOS のメジャーバージョン(7や6)
- arch は i386 や x86_64 などのアーキテクチャ
- repo はリポジトリの種類(os,updates,extras,centosplus)

CentOS-Base.repoに登録されているミラーリストのURLは以下のとおり。
リポジトリ(os,updates,extras,centosplus)毎にミラーリストが登録されている。
[root@master1 ~]# grep mirrorlist /etc/yum.repos.d/CentOS-Base.repo
# If the mirrorlist= does not work for you, as a fall back you can try the
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
[root@master1 ~]#

------------------------------------------------
1. base(os)リポジトリのミラーリスト一覧を調べる
------------------------------------------------
[root@master1 ~]# curl 'http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra='
http://ftp.tsukuba.wide.ad.jp/Linux/centos/7.3.1611/os/x86_64/
http://www.ftp.ne.jp/Linux/packages/CentOS/7.3.1611/os/x86_64/
http://mirror.fairway.ne.jp/centos/7.3.1611/os/x86_64/
http://ftp.yz.yamagata-u.ac.jp/pub/linux/centos/7.3.1611/os/x86_64/
http://ftp.riken.jp/Linux/centos/7.3.1611/os/x86_64/
http://ftp.iij.ad.jp/pub/linux/centos/7.3.1611/os/x86_64/
http://ftp.jaist.ac.jp/pub/Linux/CentOS/7.3.1611/os/x86_64/
http://centos.usonyx.net/main/7.3.1611/os/x86_64/
http://download.nus.edu.sg/mirror/centos/7.3.1611/os/x86_64/
http://mirror.0x.sg/centos/7.3.1611/os/x86_64/
[root@master1 ~]#

-----------------------------------------------
2. updatesリポジトリのミラーリスト一覧を調べる
-----------------------------------------------
[root@master1 ~]# curl 'http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=updates&infra='
http://ftp.riken.jp/Linux/centos/7.3.1611/updates/x86_64/
http://ftp.jaist.ac.jp/pub/Linux/CentOS/7.3.1611/updates/x86_64/
http://ftp.yz.yamagata-u.ac.jp/pub/linux/centos/7.3.1611/updates/x86_64/
http://ftp.iij.ad.jp/pub/linux/centos/7.3.1611/updates/x86_64/
http://www.ftp.ne.jp/Linux/packages/CentOS/7.3.1611/updates/x86_64/
http://ftp.tsukuba.wide.ad.jp/Linux/centos/7.3.1611/updates/x86_64/
http://mirror.vodien.com/centos/7.3.1611/updates/x86_64/
http://download.nus.edu.sg/mirror/centos/7.3.1611/updates/x86_64/
http://mirror.qoxy.com/centos/7.3.1611/updates/x86_64/
http://mirror.0x.sg/centos/7.3.1611/updates/x86_64/
[root@master1 ~]#

-----------------------------------------------
3. extrasリポジトリのミラーリスト一覧を調べる
-----------------------------------------------
[root@master1 ~]# curl 'http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=extras&infra='
http://ftp.tsukuba.wide.ad.jp/Linux/centos/7.3.1611/extras/x86_64/
http://ftp.yz.yamagata-u.ac.jp/pub/linux/centos/7.3.1611/extras/x86_64/
http://ftp.riken.jp/Linux/centos/7.3.1611/extras/x86_64/
http://ftp.iij.ad.jp/pub/linux/centos/7.3.1611/extras/x86_64/
http://ftp.jaist.ac.jp/pub/Linux/CentOS/7.3.1611/extras/x86_64/
http://www.ftp.ne.jp/Linux/packages/CentOS/7.3.1611/extras/x86_64/
http://download.nus.edu.sg/mirror/centos/7.3.1611/extras/x86_64/
http://mirror.0x.sg/centos/7.3.1611/extras/x86_64/
http://mirror.vastspace.net/centos/7.3.1611/extras/x86_64/
http://mirror.qoxy.com/centos/7.3.1611/extras/x86_64/
[root@master1 ~]#

-----------------------------------------------
4. centosplusリポジトリのミラーリスト一覧を調べる
----------------------------------------------
[root@master1 ~]# curl 'http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=centosplus&infra='
http://mirror.fairway.ne.jp/centos/7.3.1611/centosplus/x86_64/
http://ftp.tsukuba.wide.ad.jp/Linux/centos/7.3.1611/centosplus/x86_64/
http://www.ftp.ne.jp/Linux/packages/CentOS/7.3.1611/centosplus/x86_64/
http://ftp.iij.ad.jp/pub/linux/centos/7.3.1611/centosplus/x86_64/
http://ftp.riken.jp/Linux/centos/7.3.1611/centosplus/x86_64/
http://ftp.yz.yamagata-u.ac.jp/pub/linux/centos/7.3.1611/centosplus/x86_64/
http://ftp.jaist.ac.jp/pub/Linux/CentOS/7.3.1611/centosplus/x86_64/
http://mirror.vodien.com/centos/7.3.1611/centosplus/x86_64/
http://download.nus.edu.sg/mirror/centos/7.3.1611/centosplus/x86_64/
http://mirror.qoxy.com/centos/7.3.1611/centosplus/x86_64/
[root@master1 ~]#

```


##11.2 epelのミラーリスト

```
[root@master1 ~]# curl 'https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=x86_64'
<?xml version="1.0" encoding="utf-8"?>
<metalink version="3.0" xmlns="http://www.metalinker.org/" type="dynamic" pubdate="Thu, 19 Jan 2017 01:24:27 GMT" generator="mirrormanager" xmlns:mm0="http://fedorahosted.org/mirrormanager">
  <files>
    <file name="repomd.xml">
      <mm0:timestamp>1484693042</mm0:timestamp>
      <size>4380</size>
      <verification>
        <hash type="md5">002b06bfffa009b8276b2b89f1b2ac9a</hash>
        <hash type="sha1">ed1769ffbe2ff28a84c1dea2fd3487e72b076418</hash>
        <hash type="sha256">8cd91ff7377feaf93763586d79fb4d4fa5e34222b2d294ed426d75f7962d7866</hash>
        <hash type="sha512">a2ce39fa50341ba5d339b1872fd71cfaa69c86b5e86b6c34318eb9bc1d71a74192ff468de134625f8118451a81c2d06559bd1cc1aa414ccce752dd4cde2008bb</hash>
      </verification>
      <mm0:alternates>
        <mm0:alternate>
            <mm0:timestamp>1484586449</mm0:timestamp>
            <size>4380</size>
            <verification>
              <hash type="md5">555195f5b7cb58d0d28e0678c29e6d72</hash>
              <hash type="sha1">d531faf7c4fc65725300c478daa5eac2304995c0</hash>
              <hash type="sha256">8703524bb7fd15e3ccc012c769c99fdecea7332ac54473e905a3d978e2adbad9</hash>
              <hash type="sha512">bd7dc2e72b3dd0237c237d33484181747b7421fc54fccf7e4f6263c9ab767be62912d854143f67eba024b767a79e88b862f0ee04ec3f3a333af872c62e6ce2a9</hash>
            </verification>
        </mm0:alternate>
      </mm0:alternates>
      <resources maxconnections="1">
        <url protocol="http" type="http" location="JP" preference="100" >http://ftp.jaist.ac.jp/pub/Linux/Fedora/epel/7/x86_64/repodata/repomd.xml</url>
        <url protocol="rsync" type="rsync" location="JP" preference="100" >rsync://ftp.jaist.ac.jp/pub/Linux/Fedora/epel/7/x86_64/repodata/repomd.xml</url>
        <url protocol="http" type="http" location="JP" preference="99" >http://ftp.riken.jp/Linux/fedora/epel/7/x86_64/repodata/repomd.xml</url>
        <url protocol="rsync" type="rsync" location="JP" preference="99" >rsync://ftp.riken.jp/fedora/epel/7/x86_64/repodata/repomd.xml</url>
        <url protocol="http" type="http" location="ID" preference="98" >http://kodeterbuka.beritagar.id/epel/7/x86_64/repodata/repomd.xml</url>
        <url protocol="http" type="http" location="ID" preference="97" >http://kartolo.sby.datautama.net.id/EPEL/7/x86_64/repodata/repomd.xml</url>
        <url protocol="rsync" type="rsync" location="ID" preference="97" >rsync://kartolo.sby.datautama.net.id/EPEL/7/x86_64/repodata/repomd.xml</url>
        <url protocol="http" type="http" location="HK" preference="96" >http://ftp.cuhk.edu.hk/pub/linux/fedora-epel/7/x86_64/repodata/repomd.xml</url>
        <url protocol="http" type="http" location="IN" preference="95" >http://epel.mirror.net.in/epel/7/x86_64/repodata/repomd.xml</url>
        <url protocol="http" type="http" location="ID" preference="94" >http://epel.mirror.angkasa.id/pub/epel/7/x86_64/repodata/repomd.xml</url>
        <url protocol="https" type="https" location="ID" preference="94" >https://epel.mirror.angkasa.id/pub/epel/7/x86_64/repodata/repomd.xml</url>
        <url protocol="rsync" type="rsync" location="ID" preference="94" >rsync://epel.mirror.angkasa.id/epel/7/x86_64/repodata/repomd.xml</url>
        <url protocol="http" type="http" location="PH" preference="93" >http://mirror.pregi.net/epel/7/x86_64/repodata/repomd.xml</url>
        <url protocol="https" type="https" location="PH" preference="93" >https://mirror.pregi.net/epel/7/x86_64/repodata/repomd.xml</url>
        <url protocol="https" type="https" location="CN" preference="92" >https://mirrors.tuna.tsinghua.edu.cn/epel/7/x86_64/repodata/repomd.xml</url>
        <url protocol="rsync" type="rsync" location="CN" preference="92" >rsync://mirrors.tuna.tsinghua.edu.cn/epel/7/x86_64/repodata/repomd.xml</url>
        <url protocol="http" type="http" location="CN" preference="92" >http://mirrors.tuna.tsinghua.edu.cn/epel/7/x86_64/repodata/repomd.xml</url>
        <url protocol="http" type="http" location="IQ" preference="91" >http://epel.scopesky.iq/7/x86_64/repodata/repomd.xml</url>
        <url protocol="http" type="http" location="IR" preference="90" >http://repo.fedoralinux.ir/pub/epel/7/x86_64/repodata/repomd.xml</url>
        <url protocol="https" type="https" location="IR" preference="90" >https://repo.fedoralinux.ir/pub/epel/7/x86_64/repodata/repomd.xml</url>
        <url protocol="http" type="http" location="PH" preference="89" >http://mirror.rise.ph/fedora-epel/7/x86_64/repodata/repomd.xml</url>
        <url protocol="http" type="http" location="CN" preference="88" >http://mirror.lzu.edu.cn/epel/7/x86_64/repodata/repomd.xml</url>
        <url protocol="https" type="https" location="CN" preference="88" >https://mirror.lzu.edu.cn/epel/7/x86_64/repodata/repomd.xml</url>
        <url protocol="http" type="http" location="KR" preference="87" >http://mirror.premi.st/epel/7/x86_64/repodata/repomd.xml</url>
        <url protocol="http" type="http" location="TW" preference="86" >http://mirror01.idc.hinet.net/EPEL/7/x86_64/repodata/repomd.xml</url>
        <url protocol="http" type="http" location="VN" preference="85" >http://mirror.ehost.vn/epel/7/x86_64/repodata/repomd.xml</url>
      </resources>
    </file>
  </files>
</metalink>
[root@master1 ~]#

```


#12 yum-config-manager


##12.1 リポジトリの有効、無効を切り替える
手動でrepoファイルを編集してリポジトリの有効、無効を切り替えるのではなく、
yum-config-managerを使って、リポジトリの有効、無効を切り替える。


```
--------------------------------------------------------------------------------------
1. リポジトリ一覧の初期状態を確認する。下記4つのリポジトリが有効になっている
--------------------------------------------------------------------------------------
[root@master1 ~]# yum clean all
[root@master1 ~]# yum repolist
-中略-
リポジトリー ID               リポジトリー名                                           状態
base/7/x86_64                 CentOS-7 - Base                                           9,363
epel/x86_64                   Extra Packages for Enterprise Linux 7 - x86_64           11,049
extras/7/x86_64               CentOS-7 - Extras                                           200
updates/7/x86_64              CentOS-7 - Updates                                          752
repolist: 21,364

--------------------------------------------------------------------------------------
2. リポジトリ(C7.1)を追加する。C7.1リポジトリファイルのenabledが0->1になる。
--------------------------------------------------------------------------------------
[root@master1 ~]# yum-config-manager --enable C7.1*
-以下、略-

リポジトリを表示する。C7.1リポジトリが追加された。
[root@master1 ~]# yum repolist
-中略-
リポジトリー ID                      リポジトリー名                                       状態
!C7.1.1503-base/x86_64               CentOS-7.1.1503 - Base                                8,652
!C7.1.1503-centosplus/x86_64         CentOS-7.1.1503 - CentOSPlus                             73
!C7.1.1503-extras/x86_64             CentOS-7.1.1503 - Extras                                285
!C7.1.1503-fasttrack/x86_64          CentOS-7.1.1503 - CentOSPlus                            110
!C7.1.1503-updates/x86_64            CentOS-7.1.1503 - Updates                             1,726
base/7/x86_64                        CentOS-7 - Base                                       9,363
epel/x86_64                          Extra Packages for Enterprise Linux 7 - x86_64       11,049
extras/7/x86_64                      CentOS-7 - Extras                                       200
updates/7/x86_64                     CentOS-7 - Updates                                      752
repolist: 32,210
[root@master1 ~]#

CentOS-Vault.repoを確認する。C7.1が有効になっていることがわかる。
[root@master1 ~]# less /etc/yum.repos.d/CentOS-Vault.repo
# C7.1.1503
[C7.1.1503-base]
enabled=1
[C7.1.1503-updates]
enabled=1
[C7.1.1503-extras]
enabled=1
[C7.1.1503-centosplus]
enabled=1
[C7.1.1503-fasttrack]
enabled=1


--------------------------------------------------------------------------------------
3. リポジトリ(C7.1)を削除する。C7.1リポジトリファイルのenabledが1->0になる。
--------------------------------------------------------------------------------------
[root@master1 ~]# yum-config-manager --disable C7.1*
-以下、略-
[root@master1 ~]# yum repolist
-中略-
リポジトリー ID             リポジトリー名                                          状態
base/7/x86_64               CentOS-7 - Base                                          9,363
epel/x86_64                 Extra Packages for Enterprise Linux 7 - x86_64          11,049
extras/7/x86_64             CentOS-7 - Extras                                          200
updates/7/x86_64            CentOS-7 - Updates                                         752
repolist: 21,364
[root@master1 ~]#

CentOS-Vault.repoを確認する。C7.1が無効になっていることがわかる。
[root@master1 ~]# less /etc/yum.repos.d/CentOS-Vault.repo
# C7.1.1503
[C7.1.1503-base]
enabled=0
[C7.1.1503-updates]
enabled=0
[C7.1.1503-extras]
enabled=0
[C7.1.1503-centosplus]
enabled=0
[C7.1.1503-fasttrack]
enabled=0

```



#13 Nginxリポジトリの有効、無効化

```
-------------------------------
1. nginxリポジトリを有効にする
-------------------------------
リポジトリファイルをインストールする。
[root@master1 ~]# yum install http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
-中略-

[root@master1 ~]# rpm -qa|grep nginx-release
nginx-release-centos-7-0.el7.ngx.noarch

インストールしたリポジトリファイルの中身を確認する。
[root@master1 ~]# cat /etc/yum.repos.d/nginx.repo
# nginx.repo

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

リポジトリ一覧を表示する。nginxのリポジトリ(★印)が有効になったのがわかる。
[root@master1 ~]# yum clean all
[root@master1 ~]# yum repolist
-中略-
リポジトリー ID         リポジトリー名                                       状態
base/7/x86_64           CentOS-7 - Base                                       9,363
epel/x86_64             Extra Packages for Enterprise Linux 7 - x86_64       11,049
extras/7/x86_64         CentOS-7 - Extras                                       200
nginx/x86_64★          nginx repo                                               41
updates/7/x86_64        CentOS-7 - Updates                                      752
repolist: 21,405

利用可能なパッケージを表示する。
[root@master1 ~]# yum --disablerepo=* --enablerepo=nginx list available
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
利用可能なパッケージ
nginx.x86_64                                   1:1.10.2-1.el7.ngx                              nginx
nginx-debug.x86_64                             1:1.8.0-1.el7.ngx                               nginx
nginx-debuginfo.x86_64                         1:1.10.2-1.el7.ngx                              nginx
nginx-module-geoip.x86_64                      1:1.10.2-1.el7.ngx                              nginx
nginx-module-geoip-debuginfo.x86_64            1:1.10.2-1.el7.ngx                              nginx
nginx-module-image-filter.x86_64               1:1.10.2-1.el7.ngx                              nginx
nginx-module-image-filter-debuginfo.x86_64     1:1.10.2-1.el7.ngx                              nginx
nginx-module-njs.x86_64                        1:1.10.2.0.0.20160414.1c50334fbea6-2.el7.ngx    nginx
nginx-module-njs-debuginfo.x86_64              1:1.10.2.0.0.20160414.1c50334fbea6-2.el7.ngx    nginx
nginx-module-perl.x86_64                       1:1.10.2-1.el7.ngx                              nginx
nginx-module-perl-debuginfo.x86_64             1:1.10.2-1.el7.ngx                              nginx
nginx-module-xslt.x86_64                       1:1.10.2-1.el7.ngx                              nginx
nginx-module-xslt-debuginfo.x86_64             1:1.10.2-1.el7.ngx                              nginx
nginx-nr-agent.noarch                          2.0.0-10.el7.ngx                                nginx
[root@master1 ~]#

nginxの版数一覧を確認する。
[root@master1 ~]# yum --disablerepo=* --enablerepo=nginx --showduplicates list nginx
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
利用可能なパッケージ
nginx.x86_64                                  1:1.8.0-1.el7.ngx                                nginx
nginx.x86_64                                  1:1.8.1-1.el7.ngx                                nginx
nginx.x86_64                                  1:1.10.0-1.el7.ngx                               nginx
nginx.x86_64                                  1:1.10.1-1.el7.ngx                               nginx
nginx.x86_64                                  1:1.10.2-1.el7.ngx                               nginx

nginxはepelリポジトリにもある。
[root@master1 ~]# yum --showduplicates list nginx
-中略-
利用可能なパッケージ
nginx.x86_64                                   1:1.10.2-1.el7                                   epel


--------------------------------------------------------------------
2. nginxリポジトリを無効にする(テスト目的にインストールしただけなので)
--------------------------------------------------------------------

[root@master1 ~]# yum-config-manager --disable nginx

リポジトリファイルの中身を確認する。enabledの値が0(無効)になった。
[root@master1 ~]# cat /etc/yum.repos.d/nginx.repo
# nginx.repo

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=0

有効なリポジトリを表示する。
[root@master1 ~]# yum clean all
[root@master1 ~]# yum repolist
-中略-
リポジトリー ID          リポジトリー名                                     状態
base/7/x86_64            CentOS-7 - Base                                     9,363
epel/x86_64              Extra Packages for Enterprise Linux 7 - x86_64     11,049
extras/7/x86_64          CentOS-7 - Extras                                     200
updates/7/x86_64         CentOS-7 - Updates                                    752
repolist: 21,364
[root@master1 ~]#

```



#14 alpine 

[Alpine Linux package management](http://wiki.alpinelinux.org/wiki/Alpine_Linux_package_management)

```
コンテナ(alpine)を起動する。
[root@master1 ~]# docker run -it --name alpine alpine sh

リポジトリ一覧を確認する。
/ # cat /etc/apk/repositories
http://dl-cdn.alpinelinux.org/alpine/v3.5/main
http://dl-cdn.alpinelinux.org/alpine/v3.5/community

利用可能なパッケージ一覧を更新する。
/ # apk update
fetch http://dl-cdn.alpinelinux.org/alpine/v3.5/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.5/community/x86_64/APKINDEX.tar.gz
v3.5.0-50-g72b8702d1f [http://dl-cdn.alpinelinux.org/alpine/v3.5/main]
v3.5.0-48-g8042937a2f [http://dl-cdn.alpinelinux.org/alpine/v3.5/community]
OK: 7955 distinct packages available
/ #

パッケージを検索する。
/ # apk search global
perl-devel-globaldestruction-0.14-r0
perl-symbol-global-name-0.05-r0
perl-symbol-global-name-doc-0.05-r0
perl-devel-globaldestruction-doc-0.14-r0
postfix-3.1.3-r0


```

#15 パッケージのアップデートを禁止にする方法(versionlock)


##15.1 versionlockパッケージのインストール
```
[root@server ~]# yum install yum-plugin-versionlock
```

##15.2 アップデートを禁止にする方法

```
インストール済、利用可能なgccパッケージの版数を確認する。
[root@server ~]# yum --showduplicates list gcc
-中略-
インストール済みパッケージ
gcc.x86_64                                       4.8.5-11.el7                                           @anaconda
利用可能なパッケージ
gcc.x86_64                                       4.8.5-16.el7                                           base
gcc.x86_64                                       4.8.5-16.el7_4.1                                       updates

アップデート禁止のパッケージを確認する。現在は何も登録されていないことがわかる。
[root@server ~]# cat /etc/yum/pluginconf.d/versionlock.list
[root@server ~]#

gccパッケージのアップデートを禁止にする。
[root@server ~]# yum versionlock gcc-*
[root@server ~]# cat /etc/yum/pluginconf.d/versionlock.list
# Added locks on Mon Jan 22 20:15:30 2018
0:gcc-gfortran-4.8.5-11.el7.*
0:gcc-4.8.5-11.el7.*
0:gcc-c++-4.8.5-11.el7.*

gccをアップデートする。しかし、アップデートできないことがわかる。
[root@server ~]# yum install gcc
読み込んだプラグイン:fastestmirror, priorities, versionlock
file:///tmp/repo/repodata/repomd.xml: [Errno 14] curl#37 - "Couldn't open file /tmp/repo/repodata/repomd.xml"
他のミラーを試します。
Loading mirror speeds from cached hostfile
 * base: ftp.riken.jp
 * epel: ftp.riken.jp
 * extras: ftp.riken.jp
 * ius: iad.mirror.rackspace.com
 * updates: ftp.riken.jp
8 packages excluded due to repository priority protections
何もしません

```

##15.3 アップデート禁止を解除にする方法

```
アップデート禁止のパッケージ一覧を確認する。
[root@server ~]# yum versionlock list
読み込んだプラグイン:fastestmirror, priorities, versionlock
0:gcc-gfortran-4.8.5-11.el7.*
0:gcc-4.8.5-11.el7.*
0:gcc-c++-4.8.5-11.el7.*
versionlock list done

アップデート禁止パッケージの設定を解除する。
[root@server ~]# yum versionlock clear
読み込んだプラグイン:fastestmirror, priorities, versionlock
versionlock cleared

アップデート禁止パッケージの一覧を表示する。
[root@server ~]# yum versionlock list
読み込んだプラグイン:fastestmirror, priorities, versionlock
versionlock list done

gccをインストールする。アップデートできることがわかる。
[root@server ~]# yum install gcc
-中略-
=================================================================================================================
 Package                         アーキテクチャー     バージョン                     リポジトリー           容量
=================================================================================================================
更新します:
 gcc                             x86_64               4.8.5-16.el7_4.1               updates                16 M
依存性関連での更新をします:
 cpp                             x86_64               4.8.5-16.el7_4.1               updates               5.9 M
 gcc-c++                         x86_64               4.8.5-16.el7_4.1               updates               7.2 M
 gcc-gfortran                    x86_64               4.8.5-16.el7_4.1               updates               6.6 M
 libgcc                          x86_64               4.8.5-16.el7_4.1               updates                98 k
 libgfortran                     x86_64               4.8.5-16.el7_4.1               updates               296 k
 libgomp                         x86_64               4.8.5-16.el7_4.1               updates               154 k
 libquadmath                     x86_64               4.8.5-16.el7_4.1               updates               186 k
 libquadmath-devel               x86_64               4.8.5-16.el7_4.1               updates                49 k
 libstdc++                       x86_64               4.8.5-16.el7_4.1               updates               301 k
 libstdc++-devel                 x86_64               4.8.5-16.el7_4.1               updates               1.5 M

トランザクションの要約
=================================================================================================================
更新  1 パッケージ (+10 個の依存関係のパッケージ)

総ダウンロード容量: 38 M
Is this ok [y/d/N]:

```



#16 参考資料

[理研のリポジトリ](http://ftp.riken.jp/Linux/centos/)
[ミラーリストの状態](http://mirror-status.centos.org/)

[RHEL6マニュアル](https://access.redhat.com/documentation/ja-JP/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/sec-Configuring_Yum_and_Yum_Repositories.html)
[アップデート対象外から外す](http://www.atmarkit.co.jp/flinux/rensai/linuxtips/781noupdateyum.html)
[パッケージの管理｜yumとは](http://kazmax.zpp.jp/linux_beginner/yum.html)
[yum が参照するミラーサイトの baseurl を変更して日本国内のものに設定する](http://tomoyamkung.net/2014/08/02/linux-yum-repository-baseurl-setting/)