パッケージ管理
≫yumとは
RedHat系ディストリビューションのパッケージ管理システムの事
≫パッケージグループ
共通の目的をもったパッケージのまとまりの事
コマンド | 説明/使用例 |
---|---|
yum list [all | パッケージ名] | リポジトリにあるパッケージや、インストールされているパッケージの一覧を確認 |
# yum list gcc* ワイルドカードを使って確認 | |
yum list installed [パッケージ名] | インストール済みのパッケージだけを一覧表示 |
# yum list installed gcc* | |
yum list available [パッケージ名] | リポジトリ上の利用可能なパッケージだけを表示 |
# yum list available gcc* | |
yum grouplist | 全てのパッケージグループを一覧表示 |
# yum grouplist | |
yum search パッケージ名や、用語 | リポジトリ上のRPMのパッケージ名、詳細、サマリから対象のパッケージを検索 |
# yum search bind | |
yum provides ファイル名 | ファイル名からパッケージを検索 |
# yum provides /bin/gawk | |
rpm -qf ファイル名 | ファイル名からインストール済みパッケージを検索 |
# rpm -qf /bin/gawk | |
yum install パッケージ名 [パッケージ名2 パッケージ名3...] | 任意のパッケージをインストールし、依存関係を自動的に調べて解決してくれる |
# yum install php | |
yum groupinstall グループ名|グループID | パッケージグループ単位でインストールし |
# yum -v grouplist FTP* グループ名 (グループID)の確認 利用可能なグループ FTP サーバー (ftp-server) グループ名 (グループID) # yum groupinstall "FTP サーバー" |
|
yum info パッケージ名… | パッケージに関する情報を表示明 |
# yum info php | |
yum groupinfo グループID | パッケージグループに関する情報を表示 |
# yum groupinfo ftp-server | |
yum check-update | パッケージに更新があるかどうかを確認 |
# yum check-update curl curl.x86_64 7.19.7-53.el6_9 updates |
|
yum update [パッケージ名 [パッケージ名]] | 更新が存在するパッケージをアップデートする |
# yum update curl 更新: curl.x86_64 0:7.19.7-53.el6_9 |
|
yum remove パッケージ名 | yumでパッケージを削除 |
# yum remove php-* | |
yum groupremove パッケージグループ名|グループID | パッケージグループを削除する |
# yum groupremove "FTP サーバー" |
≫/etc/yum.conf
yum コマンドの関連ユーティリティの動作を決めるための設定ファイル
≫/etc/yum.repos.d/配下
リポジトリ名.repo の名前でそれぞれのリポジトリを定義することが推奨されている
/etc/yum.repos.d/配下
# ls -l /etc/yum.repos.d/ -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 entOS-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 1056 11月 5 12:52 2012 epel-testing.repo -rw-r--r-- 1 root root 957 11月 5 12:52 2012 epel.repo -rw-r--r-- 1 root root 422 10月 1 23:58 2015 puppetlabs-pc1.repo |
リポジトリを確認
# yum repolist リポジトリー ID リポジトリー名 状態 base CentOS-6 - Base 6,706 epel Extra Packages for Enterprise Linux 6 - x86_64 12,317 extras CentOS-6 - Extras 64 puppetlabs-pc1 Puppet Labs PC1 Repository el 6 - x86_64 121 updates CentOS-6 - Updates 252 |
Remiリポジトリの追加
# yum install http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
追加されたリポジトリ # yum repolist リポジトリー ID リポジトリー名 状態 remi-safe Safe Remi's RPM repository for Enterprise Linux 6 - x86_64 1,769
追加されたリポジトリファイル # ls -l /etc/yum.repos.d | grep remi -rw-r--r-- 1 root root 457 2月 10 22:27 2017 remi-php54.repo -rw-r--r-- 1 root root 1316 2月 10 22:27 2017 remi-php70.repo -rw-r--r-- 1 root root 1316 2月 10 22:27 2017 remi-php71.repo -rw-r--r-- 1 root root 751 2月 10 22:27 2017 remi-safe.repo -rw-r--r-- 1 root root 2609 2月 10 22:27 2017 remi.repo |
yumコマンドで特定のリポジトリだけを動作の対象にする
# yum --disablerepo=* --enablerepo=remi-safe repolist リポジトリー ID リポジトリー名 状態 remi-safe Safe Remi's RPM repository for Enterprise Linux 6 - x86_64 1,769 全てのリポジトリを無効にして、remi-safeだけ有効にする |
≫リポジトリを作成
createrepo コマンドを使って、yum のリポジトリを作成。リポジトリのパスに配置されている
rpmパッケージの情報を読み取ってメタデータが作成され、リポジトリとして動作する形になる
# createrepo [オプション] リポジトリのパス
1. yumリポジトリの作成コマンドをインストール
# yum install createrepo
# which createrepo
2. rpmパッケージのダウンロードコマンドをインストール ## yum install yum-utils
# which yumdownloader
3. rpmパッケージの格納先を作成して、rpmパッケージをダウンロード # mkdir /tmp/rep # yumdownloader --destdir=/tmp/repo nkf vim-enhanced
# ls /tmp/repo
4. リポジトリの作成 # createrepo /tmp/repo
# ls -d /tmp/repo/*
5. 作成したリポジトリへアクセス # vi /etc/yum.repos.d/my_repo.repo
[my_repo] HTTP/HTTPS 経由でアクセスする場合は baseurl=http://servername/repo
6. 確認する # yum repolist my_repo -v
リポジトリー ID : my_repo
7. リポジトリの内容を更新する場合 createrepo コマンドを再実行してメタデータを作成しなおす # createrepo --update /tmp/repo/
8. my_repoリポジトリだけ有効にしてrpmパッケージをインストール # yum --disablerepo=* --enablerepo=my_repo install nkf -y
インストール: |