■yum-prioritiesのインストール
yum-plugin-prioritiesとは、サードパーティ製のリポジトリを追加した際にどちらを優先するか優先順位をつけるプラグイン。
[root@server1 ~]# yum -y install yum-plugin-priorities 読み込んだプラグイン:fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: mirror.fairway.ne.jp * extras: mirror.fairway.ne.jp * updates: mirror.fairway.ne.jp 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ yum-plugin-priorities.noarch 0:1.1.31-25.el7_0 を インストール --> 依存性解決を終了しました。 依存性を解決しました ==================================================================================================== Package アーキテクチャー バージョン リポジトリー 容量 ==================================================================================================== インストール中: yum-plugin-priorities noarch 1.1.31-25.el7_0 updates 23 k トランザクションの要約 ==================================================================================================== インストール 1 パッケージ 総ダウンロード容量: 23 k インストール容量: 28 k Downloading packages: 警告: /var/cache/yum/x86_64/7/updates/packages/yum-plugin-priorities-1.1.31-25.el7_0.noarch.rpm: ヘッダー V3 RSA/SHA256 Signature、鍵 ID f4a80eb5: NOKEY yum-plugin-priorities-1.1.31-25.el7_0.noarch.rpm の公開鍵がインストールされていません yum-plugin-priorities-1.1.31-25.el7_0.noarch.rpm | 23 kB 00:00:00 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 から鍵を取得中です。 Importing GPG key 0xF4A80EB5: Userid : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>" Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5 Package : centos-release-7-0.1406.el7.centos.2.3.x86_64 (@anaconda) From : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 Running transaction check Running transaction test Transaction test succeeded Running transaction インストール中 : yum-plugin-priorities-1.1.31-25.el7_0.noarch 1/1 検証中 : yum-plugin-priorities-1.1.31-25.el7_0.noarch 1/1 インストール: yum-plugin-priorities.noarch 0:1.1.31-25.el7_0 完了しました!
設定ファイル/etc/yum/pluginconf.d/priorities.confを変更
[root@server1 ~]# vi /etc/yum/pluginconf.d/priorities.conf [main] enabled = 1 check_obsoletes = 1 ← 追加
■CentOS-Base.repoの編集
CentOS-Base.repoは優先度を高く(priority=1)しておく。
[root@server1 ~]# vi /etc/yum.repos.d/CentOS-Base.repo # CentOS-Base.repo # # The mirror system uses the connecting IP address of the client and the # update status of each mirror to pick mirrors that are updated to and # geographically close to the client. You should use this for CentOS updates # unless you are manually picking other mirrors. # # If the mirrorlist= does not work for you, as a fall back you can try the # remarked out baseurl= line instead. # # [base] priority=1 ← 追加 priorityとは優先度で、1の方が優先度は高くなる。(未設定の場合は99) name=CentOS-$releasever - Base mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #released updates [updates] priority=1 ← 追加 name=CentOS-$releasever - Updates mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates #baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that may be useful [extras] priority=1 ← 追加 name=CentOS-$releasever - Extras mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras #baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that extend functionality of existing packages [centosplus] priority=1 ← 追加 name=CentOS-$releasever - Plus mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus #baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/ gpgcheck=1 enabled=1 ← 0から1に変更 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
■EPELリポジトリのインストール
[root@server1 ~]# wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm --2015-03-15 17:00:31-- http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm dl.fedoraproject.org (dl.fedoraproject.org) をDNSに問いあわせています... 209.132.181.24, 209.132.181.27, 209.132.181.25, ... dl.fedoraproject.org (dl.fedoraproject.org)|209.132.181.24|:80 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 14524 (14K) [application/x-rpm] `epel-release-7-5.noarch.rpm' に保存中 100%[======================================>] 14,524 --.-K/s 時間 0.1s 2015-03-15 17:00:31 (118 KB/s) - `epel-release-7-5.noarch.rpm' へ保存完了 [14524/14524] [root@server1 ~]# rpm -ivh epel-release-7-5.noarch.rpm 警告: epel-release-7-5.noarch.rpm: ヘッダー V3 RSA/SHA256 Signature、鍵 ID 352c64e5: NOKEY 準備しています... ################################# [100%] 更新中 / インストール中... 1:epel-release-7-5 ################################# [100%] [root@server1 ~]# rm -f epel-release-* ← ダウンロードしたファイルを削除
■epel.repoを確認
[root@server1 ~]# vi /etc/yum.repos.d/epel.repo [epel] name=Extra Packages for Enterprise Linux 7 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch failovermethod=priority enabled=1 ← 1 に設定 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 [epel-debuginfo] name=Extra Packages for Enterprise Linux 7 - $basearch - Debug #baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch/debug mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-7&arch=$basearch failovermethod=priority enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 gpgcheck=1 [epel-source] name=Extra Packages for Enterprise Linux 7 - $basearch - Source #baseurl=http://download.fedoraproject.org/pub/epel/7/SRPMS mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-source-7&arch=$basearch failovermethod=priority enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 gpgcheck=1
EPELリポジトリからインストールする場合
[root@server1 ~]# yum --enablerepo=epel -y install パッケージ
■Repoforgeリポジトリのインストール
[root@server1 ~]# rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt [root@server1 ~]# rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm を取得中 準備しています... ################################# [100%] 更新中 / インストール中... 1:rpmforge-release-0.5.3-1.el7.rf ################################# [100%] [root@server1 ~]# rm -f rpmforge-release-* ← ダウンロードしたファイルを削除
■Repoforgeを確認
[root@server1 ~]# vi /etc/yum.repos.d/rpmforge.repo ### Name: RPMforge RPM Repository for RHEL 7 - dag ### URL: http://rpmforge.net/ [rpmforge] name = RHEL $releasever - RPMforge.net - dag baseurl = http://apt.sw.be/redhat/el7/en/$basearch/rpmforge mirrorlist = http://mirrorlist.repoforge.org/el7/mirrors-rpmforge #mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge enabled=0 ← 1 に設定 protect = 0 gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag gpgchecki = 1 [rpmforge-extras] name = RHEL $releasever - RPMforge.net - extras baseurl = http://apt.sw.be/redhat/el7/en/$basearch/extras mirrorlist = http://mirrorlist.repoforge.org/el7/mirrors-rpmforge-extras #mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge-extras enabled = 0 protect = 0 gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag gpgcheck = 1 [rpmforge-testing] name = RHEL $releasever - RPMforge.net - testing baseurl = http://apt.sw.be/redhat/el7/en/$basearch/testing mirrorlist = http://mirrorlist.repoforge.org/el7/mirrors-rpmforge-testing #mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge-testing enabled = 0 protect = 0 gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag gpgcheck = 1
Repoforgeリポジトリからインストールする場合
[root@server1 ~]# yum --enablerepo=rpmforge -y install パッケージ
■yumのデータベース情報更新
ローカルに保存されているrpmヘッダ情報を最新の情報に更新。
yumのデータベース情報更新 [root@server1 ~]# yum list インストールパッケージの確認 [root@server1 ~]# yum list installed
■アップデート情報の確認
アップデート情報の確認 [root@server1 ~]# yum check-update
■一括アップデート
インストールされているパッケージを全てアップデート。
パッケージの一括アップデート [root@server1 ~]# yum update
アップデートしてよいかの問い合わせに全て” y “で回答するためには -y オプションを指定。
パッケージの一括アップデート [root@server1 ~]# yum -y update
■yumによるパッケージ更新時にエラーが表示される場合
yumコマンドでパッケージの更新を行った際に、エラーが表示されることがある。これはyumのデータベースが壊れていることが考えられるので、以下のコマンドを実行してyumのデータベースをクリアしてみる。
[root@server1 ~]# yum clean all [root@server1 ~]# yum update
■その他のコマンド
[root@server1 ~]# /bin/yum --help 読み込んだプラグイン:fastestmirror, langpacks, priorities Usage: yum [options] COMMAND List of Commands: check rpmdb の問題を確認する check-update 更新に利用できるパッケージを確認する clean キャッシュデータを削除する deplist パッケージの依存性の一覧を表示する distribution-synchronization 最新の利用可能なバージョンへインストール済みパッケージを同期する downgrade パッケージのダウングレード erase システムから削除するパッケージ fs Creates filesystem snapshots, or lists/deletes current snapshots. fssnapshot Creates filesystem snapshots, or lists/deletes current snapshots. groups グループ情報の表示または使用 help 役立つ使い方のメッセージを表示する history トランザクション履歴を表示、使用する info パッケージもしくはパッケージのグループについての詳細を表示する install システムにパッケージをインストールする langavailable Check available languages langinfo List languages information langinstall Install appropriate language packs for a language langlist List installed languages langremove Remove installed language packs for a language list パッケージグループの一覧を表示する load-transaction filename から保存済みトランザクションを読み込む makecache メタデータキャッシュを生成する provides 指定値を提供するパッケージを検索する reinstall パッケージの再インストール repo-pkgs Treat a repo. as a group of packages, so we can install/remove all of them repolist ソフトウェアリポジトリーの構成を表示する search 指定した文字列でパッケージの詳細を検索する shell 対話型の yum シェルを実行する swap Simple way to swap packages, instead of using shell update システムのパッケージを更新する update-minimal Works like upgrade, but goes to the 'newest' package match which fixes a problem that affects your system updateinfo Acts on repository update information upgrade 不要になったパッケージを考慮しながらパッケージを更新する version ホストの利用できるリポジトリーのバージョンを表示する Options: -h, --help このヘルプ メッセージを表示して終了する -t, --tolerant エラーを黙認する -C, --cacheonly キャッシュから完全に実行し、キャッシュを更新しません -c [config file], --config=[config file] 構成ファイルの場所 -R [minutes], --randomwait=[minutes] コマンドの最大待ち時間 -d [debug level], --debuglevel=[debug level] デバッグ情報の出力レベル --showduplicates 一覧/検索コマンドのリポジトリーの重複の表示 -e [error level], --errorlevel=[error level] エラー出力レベル --rpmverbosity=[debug level name] rpm のデバッグ情報の出力レベル -q, --quiet 静かに処理をする -v, --verbose 冗長に処理をする -y, --assumeyes すべての問い合わせに「yes」で答える --assumeno すべての質問にいいえを回答します --version Yum のバージョンを表示して終了する --installroot=[path] インストールのベース ディレクトリーを設定する --enablerepo=[repo] ひとつ以上のリポジトリーを有効にする (ワイルドカード許可) --disablerepo=[repo] ひとつ以上のリポジトリーを無効にする (ワイルドカード許可) -x [package], --exclude=[package] 名前かワイルドカードでパッケージを除外する --disableexcludes=[repo] main、あるリポジトリー、またはすべてからの除外を無効にします。 --disableincludes=[repo] disable includepkgs for a repo or for everything --obsoletes 更新中に不要な処理を有効にします --noplugins Yum プラグインを無効にする --nogpgcheck GPG 署名の確認を無効にする --disableplugin=[plugin] 名前でプラグインを無効にする --enableplugin=[plugin] 名前でプラグインを有効にする --skip-broken 依存性関連に問題があるパッケージを飛ばす --color=COLOR 色を使うかどうか制御する --releasever=RELEASEVER yum 設定と repo ファイルに $releasever の値を設定する --downloadonly don't update, just download --downloaddir=DLDIR specifies an alternate directory to store packages --setopt=SETOPTS 全体設定とリポジトリー オプションの任意に設定する --bugfix Include bugfix relevant packages, in updates --security Include security relevant packages, in updates --advisory=ADVS, --advisories=ADVS Include packages needed to fix the given advisory, in updates --bzs=BZS Include packages needed to fix the given BZ, in updates --cves=CVES Include packages needed to fix the given CVE, in updates --sec-severity=SEVS, --secseverity=SEVS Include security relevant packages matching the severity, in updates プラグインのオプション: --samearch-priorities Priority-exclude packages based on name + arch
■yumのパッケージ自動更新設定
yum-cron のインストール
[root@server1 ~]# yum -y install yum-cron 読み込んだプラグイン:fastestmirror, langpacks, priorities base | 3.6 kB 00:00:00 centosplus | 3.4 kB 00:00:00 epel/x86_64/metalink | 5.9 kB 00:00:00 epel | 4.4 kB 00:00:00 extras | 3.4 kB 00:00:00 rpmforge | 1.9 kB 00:00:00 updates | 3.4 kB 00:00:00 (1/3): epel/x86_64/group_gz | 250 kB 00:00:00 (2/3): centosplus/7/x86_64/primary_db | 1.8 MB 00:00:00 (3/3): epel/x86_64/primary_db | 3.1 MB 00:00:01 (1/3): epel/x86_64/updateinfo | 1.7 kB 00:00:00 (2/3): epel/x86_64/pkgtags | 1.1 MB 00:00:00 (3/3): rpmforge/primary_db | 125 kB 00:00:00 Loading mirror speeds from cached hostfile * base: mirror.fairway.ne.jp * centosplus: mirror.fairway.ne.jp * epel: mirror.premi.st * extras: mirror.fairway.ne.jp * rpmforge: ftp.kddilabs.jp * updates: mirror.fairway.ne.jp 61 packages excluded due to repository priority protections 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ yum-cron.noarch 0:3.4.3-118.el7.centos を インストール --> 依存性解決を終了しました。 依存性を解決しました ==================================================================================================== Package アーキテクチャー バージョン リポジトリー 容量 ==================================================================================================== インストール中: yum-cron noarch 3.4.3-118.el7.centos base 53 k トランザクションの要約 ==================================================================================================== インストール 1 パッケージ 総ダウンロード容量: 53 k インストール容量: 50 k Downloading packages: yum-cron-3.4.3-118.el7.centos.noarch.rpm | 53 kB 00:00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction 警告: RPMDB は yum 以外で変更されました。 インストール中 : yum-cron-3.4.3-118.el7.centos.noarch 1/1 検証中 : yum-cron-3.4.3-118.el7.centos.noarch 1/1 インストール: yum-cron.noarch 0:3.4.3-118.el7.centos 完了しました!
■yum-cron設定
[root@server1 ~]# vi /etc/yum/yum-cron.conf ← yum-cron設定 # Whether updates should be applied when they are available. Note # that download_updates must also be yes for the update to be applied. apply_updates = no ↓ apply_updates = yes
■パッケージ自動更新 yum-cron の起動
[root@server1 ~]# systemctl start yum-cron
■パッケージ自動更新 yum-cron の自動起動設定
[root@server1 ~]# systemctl enable yum-cron [root@server1 ~]# systemctl status yum-cron yum-cron.service - Run automatic yum updates as a cron job Loaded: loaded (/usr/lib/systemd/system/yum-cron.service; enabled) Active: active (exited) since 火 2014-07-15 21:21:52 JST; 1min 45s ago Main PID: 5382 (code=exited, status=0/SUCCESS) 7月 15 21:21:52 server2.yokensaka.com systemd[1]: Started Run automatic yum updates as a cron job. Hint: Some lines were ellipsized, use -l to show in full.
■サーバ管理に必要なベースパッケージ群と開発ツールパッケージ群をインストール
[root@server1 ~]# yum -y groupinstall base "Development tools"
yum updateでのエラーメッセージ
/etc/cron.hourly/0yum-hourly.cron: Not using downloaded repomd.xml because it is older than what we have: Current : Wed Oct 29 11:09:46 2014 Downloaded: Tue Sep 23 20:43:25 2014 Not using downloaded repomd.xml because it is older than what we have: Current : Wed Oct 29 08:44:59 2014 Downloaded: Thu Oct 23 21:18:58 2014
対応策
[root@server1 ~]# yum clean all 読み込んだプラグイン:fastestmirror, langpacks, priorities リポジトリーを清掃しています: base centosplus epel extras rpmforge updates Cleaning up everything Cleaning up list of fastest mirrors
これで解決するはず