パッケージ管理しりーず リポジトリについて(Red Hat系)
リポジトリとは
リポジトリとはネットワーク上のソフトウェアの倉庫のようなもの。
デフォルトで置いてあるリポジトリに追加することによって、参照する倉庫が増える(=使用可能なソフトが増える)。
だがやたら増やし過ぎると依存関係でエラーが出たり、yum の読み込みがやたら遅くなったりするのでそのあたりはお好みで。
追加と削除
リポジトリは追加と削除が可能。
CentOSの場合、リポジトリは/etc/repos.d/にある。
.repoというのがリポジトリ。
$ ls -la /etc/yum.repos.d/
合計 60
drwxr-xr-x. 2 root root 4096 4月 11 05:51 2016 .
drwxr-xr-x. 114 root root 12288 5月 7 11:54 2016 ..
-rw-r--r-- 1 root root 1991 8月 4 01:13 2015 CentOS-Base.repo
-rw-r--r-- 1 root root 647 8月 4 01:13 2015 CentOS-Debuginfo.repo
-rw-r--r-- 1 root root 630 8月 4 01:13 2015 CentOS-Media.repo
-rw-r--r-- 1 root root 6259 8月 4 01:13 2015 CentOS-Vault.repo
-rw-r--r-- 1 root root 289 8月 4 01:13 2015 CentOS-fasttrack.repo
-rw-r--r-- 1 root root 180 9月 30 16:30 2014 WANdisco.repo
-rw-r--r-- 1 root root 183 4月 2 02:00 2011 adobe-linux-x86_64.repo
-rw-r--r-- 1 root root 193 4月 11 05:51 2016 emacs.repo
-rw-r--r-- 1 root root 1056 11月 5 12:52 2012 epel-testing.repo
-rw-r--r-- 1 root root 957 11月 5 12:52 2012 epel.repo
追加したいリポジトリがある場合、基本的にはDLしてここに突っ込めばいい。
実行例
CentOS6系のemacsは23系しかなく、24系を入れるにはリポジトリ追加か自前ビルドしかない。
ちなみにemacsは24系で新機能がたくさん搭載されてて24系が使いたい。
$ cd /etc/yum.repos.d/
$ sudo wget https://gist.githubusercontent.com/AaronTheApe/5540012/raw/5782a8d6a95f76daeed6073dc0c90612fefe2fb3/emacs.repo
$ sudo yum install emacs --nogpgcheck
$ emacs --version
GNU Emacs 24.5.1
Copyright (C) 2015 Free Software Foundation, Inc.
GNU Emacs comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of Emacs
under the terms of the GNU General Public License.
For more information about these matters, see the file named COPYING.
なお、追加したリポジトリを削除したいときは単純に/etc/yum.repos.d/hoge.repoを削除すればよい。
また、リポジトリをいじったおかげでなんだかyumの動きがおかしくなった(エラーが出るようになった)際には
デフォルトに戻す→キャッシュクリア→check-update→updateで通ることを確認すると良いだろう。
$ sudo mv /etc/yum/repos.d/emacs.repo ~/emacs.repo.bac
$ sudo yum clean
$ sudo yum check-update
$ sudo yum update
リポジトリファイルの中身
なんのことはない。参照するリポジトリのURLとgpg公開鍵情報が書いてあるだけ。
$ cat /etc/yum.repos.d/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
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
[epel-debuginfo]
name=Extra Packages for Enterprise Linux 6 - $basearch - Debug
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch/debug
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-6&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
gpgcheck=1
[epel-source]
name=Extra Packages for Enterprise Linux 6 - $basearch - Source
#baseurl=http://download.fedoraproject.org/pub/epel/6/SRPMS
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-source-6&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
gpgcheck=1
リポジトリ追加するたびにyum実行時に読み込みに行くURLが増えるため、追加しすぎるとyumが遅くなる。
ちなみにgpgは公開鍵。鍵が無いと認証エラーが出ることがあるが、--nogpgcheckで飛ばすことが可能。
ただしこれをやると、配布元が信頼できないときにおかしなパッケージ混ぜられたりすることがあるかもしれない。
yumの設定ファイル
/etc/yum.conf
$ cat /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=19&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release
cachedir=/var/cache/yum/$basearch/$releasever
キャッシュおいておくディレクトリ。この場合、/var/cache/yum/配下に
$basearch(x86_64 or i386)ディレクトリ/リリース番号(CentOS 6.xなら6)というディレクトリが作られ、
そこにキャッシュが保存される。
$ ls /var/cache/yum/x86_64/6
WANdisco adobe-linux-x86_64 base emacs epel extras pjku timedhosts.txt updates
keepcache=0
インストール成功後、ヘッダーとパッケージのキャッシュを保持しない。
0⇒1にすると保持するようになる。
logfile=/var/log/yum.log
ログファイルの保管場所。上記場合は/var/log/yum.logがログファイルになる。
gpgcheck=1
GPG署名(リポジトリが本物であるか)のチェック。0で無効。
plugins=1
プラグイン有効。0で無効。
yumのプラグインはシステム根幹に大きくかかわる為有効が推奨。
distroverpkg=centos-release
デストリビューション判別する項目。