[[yumのupdate不具合>yum/update]]
***yumコマンド [#n86f2380]
●パッケージを探す
yum search キーワード
●特定の(ソース)ファイルを配布しているパッケージを探す
yum provides ファイル名
yum provides */nslookup
●インストール
yum install パッケージ名
●インストールされているパッケージリスト
yum list installed
●パッケージ指定で
yum list installed | grep パッケージ名
●アップデート
yum update
●アンインストール
yum remove パッケージ名
●yum update/installの途中でCtrl-Cを押して止めた場合、
yum-complete-transaction
にて対処しましょう
***rpmforgeリポジトリ追加 [#c6f7e882]
CentOS6の場合
yum install yum-plugin-priorities.noarch &color(blue){(オリジナルのyumサイトを優先させるための機構を入れます)};
デフォだとyumが参照するリポジトリは、/etc/yum.repos.dに存在して
CentOS-Base.repo
CentOS-Debuginfo.repo
CentOS-Media.repo
の3種です。参照項目がenabled=0と定義されているのは、yumの際、参照されないので、実質
CentOS-Base.repo
の
[base]、[updates]、[extras]が有効になってます。この3種に優先度(yum-plugin-priorities)を設けます。
priority=1
そしてrpmforgeの公開鍵を取得して
wget http://apt.sw.be/RPM-GPG-KEY.dag.txt
それをインストール
rpm --import RPM-GPG-KEY.dag.txt; rm -rf RPM-GPG-KEY.dag.txt
そして、http://pkgs.repoforge.org/rpmforge-release/ から必要なリポジトリを取得します。
#ref(2011y12m23d_205205201.png);
今回は「RHEL6 and CentOS-6 x86 64bit」なので、
wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
rpm -Uvh rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
yum -y update rpmforge-release &color(blue){(最新情報に更新)};
このままだとyumした際、rpmforgeも検索対象となります。なので、特別な時以外は検索対象にしたくない。
なので
vi /etc/yum.repos.d/rpmforge.repo
を修正して、[rpmforge]のenabled = 1をenabled = 0にして、標準では使わないようにします。
っで、このrpmforgeを使いたい場合は、
yum --enablerepo=rpmforge list
として使います。
***EPELリポジトリ追加 [#a42aa876]
EPEL(Extra Packages for Enterprise Linux)はRHELのアドオンパッケージ。っでそのリポジトリをCentOSに取り込むようにする。
まずは、リポジトリの採択・優先度を設けます。当然ながらオリジナルなリポジトリはそのままでもパッケージ検索対象として採用とするが、追加で入れたリポジトリは、通常では対象とせず、オプション操作で初めて検索対象としたい。加え、オリジナルにも存在した場合、オリジナルを優先したいものである。なので、まずは優先順位を有効にするパッケージを導入
#code{{
[root@c ~]# yum -y install yum-priorities
[root@c ~]# vi /etc/yum.repos.d/CentOS-Base.repo
}}
そして、既存の優先状況を調整。
|パッケージ|enabled|priority|
|[base]|enabled=1|1|
|[updates]|enabled=1|1|
|[extras]|enabled=1|1|
|[centosplus]|enabled=0|2|
|[contrib]|enabled=0|2|
例:
#code(nonumber){{
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
priority=1
enabled=1
}}
な感じで。
&color(green){*};この&color(green){''CentOS-Base.repo''};以外にも &color(green){/etc/yum.repos.d/CentOS-Debuginfo.repo};とか &color(green){/etc/yum.repos.d/CentOS-Vault.repo};があるが、基本&color(red){enebled=0};なので放置。
次に、本題のepelのリポジトリ情報を組み込ませる。これはOS毎、アーキティクチャ毎に定義ファイルが異なり
|OS名|アーキティクチャ名|取得ファイル|
|CentOS6.x|i386[32bit]|ftp://ftp.riken.jp/Linux/fedora/epel/6/i386/epel-release-6-8.noarch.rpm|
|CentOS6.x|x86_64[64bit]|ftp://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm|
な関係となる。っで、目的に合致したファイルは、下記コマンドで読み込ませる
#code{{
[root@c ~]# rpm -Uvh http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
}}
一応、上記コマンドの結果、下記ファイルがインストールされます。
-/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
-/etc/rpm/macros.ghc-srpm
-/etc/yum.repos.d/epel-testing.repo
-/etc/yum.repos.d/epel.repo
-/usr/share/doc/epel-release-6
-/usr/share/doc/epel-release-6/GPL
ここでリポジトリの採択・優先度をこのepelリポジトリに設けます。
#code{{
[root@c ~]# vi /etc/yum.repos.d/epel.repo
[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
priority=2
(中略)
}}
|パッケージ|enabled|priority|
|[epel]|-|2|
|[epel-debuginfo]|-|2|
|[epel-source]|-|2|
このepelリポジトリまで検索対象としたい場合は、
&color(green){yum --enablerepo=epel list};
として使用します。
***ELRepoリポジトリ追加 [#c23868ea]
an RPM repository for Enterprise Linux packages.
本家様 http://elrepo.org/tiki/tiki-index.php
仮想テープ装置(VirtualTapeLibrary)を入れたくて、調べたらELRepoリポジトリあったので。
#code(nonumber){{
[root@c ~]# rpm --import http://elrepo.org/RPM-GPG-KEY-elrepo.org
[root@c ~]# rpm -Uvh http://elrepo.org/elrepo-release-6-5.el6.elrepo.noarch.rpm
}}
これで /etc/yum.repos.d に新しいリポジトリファイルに elrepo.repo が置かれる。
っで、この中には
-elrepo
-elrepo-testing
-elrepo-kernel
-elrepo-extras
の4つのリポジトリがあり、インストール時点で&color(red){elrepo};のみが''enabled=1''となっている。
普段はCentOS標準のリポジトリを使いたいので、このelrepoを''enabled=0''に変更して、普段は参照されないようにする。
#code(nonumber){{
[elrepo]
name=ELRepo.org Community Enterprise Linux Repository - el6
baseurl=http://elrepo.org/linux/elrepo/el6/$basearch/
mirrorlist=http://elrepo.org/mirrors-elrepo.el6
enabled=0 **ここを0にする
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-elrepo.org
protect=0
}}
その上であえてelrepoを使いたい場合、
#code(nonumber){{
[root@c ~]# yum --enablerepo=elrepo list
}}
として利用する。