2013年7月16日火曜日

CentOS設定: インストールメディアからyum




RPMコマンドを使ってRPMパッケージをインストールする場合、
依存関係の考慮が必要になる。

単独でインストール可能なパッケージであれば問題無いが、
依存関係を考慮しつつ正しい順序で必要なパッケージを全てインストールするとなると
発狂しそうな場合がある。


そういう時に便利なのが、yumコマンドである。


また、インストール時に必要最低限のパッケージしかインストールしていない場合や、
ネットワークに接続できる環境が無く、インストールメディアからyumコマンドを使って
インストールする方法を解説する。




対象OS:CentOS5.9

yumの設定変更



/etc/yum.repos.d/CentOS-Media.repo

# CentOS-Media.repo
#
# This repo is used to mount the default locations for a CDROM / DVD on
#  CentOS-5.  You can use this repo and yum to install items directly off the
#  DVD ISO that we release.
#
# To use this repo, put in your DVD and use it with the other repos too:
#  yum --enablerepo=c5-media [command]
#
# or for ONLY the media repo, do this:
#
#  yum --disablerepo=\* --enablerepo=c5-media [command]

[c5-media]
name=CentOS-$releasever - Media
baseurl=file:///root/wk/
        file:///media/CentOS_5.9_Final/
 ・・・ ①
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5  ・・・②


チェックするポイント
 ①インストールメディアのパスを記載
 ②OSによって異なるがGPGのキーが配置されているパスを記載


yum実行


サンプルとしてsubversionをインストールしてみる。

まずはRPMコマンド。

# rpm -Uvh subversion-*
エラー: 依存性の欠如:
        libapr-1.so.0 は subversion-1.6.11-10.el5_8.i386 に必要とされています
        libaprutil-1.so.0 は subversion-1.6.11-10.el5_8.i386 に必要とされています
        libneon.so.25 は subversion-1.6.11-10.el5_8.i386 に必要とされています
        apr-devel は subversion-devel-1.6.11-10.el5_8.i386 に必要とされています
        apr-util-devel は subversion-devel-1.6.11-10.el5_8.i386 に必要とされています
        apr-devel は subversion-devel-1.6.11-10.el5_8.x86_64 に必要とされています
        apr-util-devel は subversion-devel-1.6.11-10.el5_8.x86_64 に必要とされています
        libruby.so.1.8()(64bit) は subversion-ruby-1.6.11-10.el5_8.x86_64 に必要とされています
        ruby(abi) = 1.8 は subversion-ruby-1.6.11-10.el5_8.x86_64 に必要とされています
        ruby-libs >= 1.8.2 は subversion-ruby-1.6.11-10.el5_8.x86_64 に必要とされています


追加で「apr」と「ruby」などが必要なようである。
「libneon.so.25」はなんだろうか。。。

と、このあたりの依存関係の解消も必要となる。


yumコマンドでsubversionのインストール

# yum --disablerepo=\* --enablerepo=c5-media install subversion
Loaded plugins: aliases, allowdowngrade, changelog, downloadonly, fastestmirror, filter-data, keys, kmod, list-data, merge-conf, priorities, protect-
              : packages, protectbase, refresh-updatesd, security, tmprepo, tsflags, upgrade-helper, verify, versionlock
Loading mirror speeds from cached hostfile
 * c5-media:
Existing lock /var/run/yum.pid: another copy is running as pid 4793.

~省略~

Skipping filters plugin, no data
0 packages excluded due to repository protections
Reading version lock configuration
Setting up Install Process
Resolving Dependencies
Skipping filters plugin, no data
--> Running transaction check
---> Package subversion.i386 0:1.6.11-10.el5_8 set to be updated
--> Processing Dependency: libneon.so.25 for package: subversion
--> Processing Dependency: libapr-1.so.0 for package: subversion
--> Processing Dependency: libaprutil-1.so.0 for package: subversion
---> Package subversion.x86_64 0:1.6.11-10.el5_8 set to be updated
--> Running transaction check
---> Package apr.i386 0:1.2.7-11.el5_6.5 set to be updated
---> Package apr-util.i386 0:1.2.7-11.el5_5.2 set to be updated
--> Processing Dependency: libsqlite3.so.0 for package: apr-util
--> Processing Dependency: libpq.so.4 for package: apr-util
---> Package neon.i386 0:0.25.5-10.el5_4.1 set to be updated
--> Running transaction check
---> Package postgresql-libs.i386 0:8.1.23-6.el5_8 set to be updated
---> Package sqlite.i386 0:3.3.6-6 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================================================================================================
 Package                                  Arch                            Version                                    Repository                         Size
=============================================================================================================================================================
Installing:
 subversion                               i386                            1.6.11-10.el5_8                            c5-media                          3.1 M
 subversion                               x86_64                          1.6.11-10.el5_8                            c5-media                          3.2 M
Installing for dependencies:
 apr                                      i386                            1.2.7-11.el5_6.5                           c5-media                          124 k
 apr-util                                 i386                            1.2.7-11.el5_5.2                           c5-media                           80 k
 neon                                     i386                            0.25.5-10.el5_4.1                          c5-media                          101 k
 postgresql-libs                          i386                            8.1.23-6.el5_8                             c5-media                          197 k
 sqlite                                   i386                            3.3.6-6                                    c5-media                          213 k

Transaction Summary
=============================================================================================================================================================
Install       7 Package(s)
Upgrade       0 Package(s)

Total download size: 7.1 M
Is this ok [y/N]: y
Downloading Packages:
-------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                        1.3 GB/s | 7.1 MB     00:00
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : neon                                                                                                                                  1/7
  Installing     : apr                                                                                                                                   2/7
  Installing     : sqlite                                                                                                                                3/7
  Installing     : postgresql-libs                                                                                                                       4/7
  Installing     : subversion                                                                                                                            5/7
  Installing     : apr-util                                                                                                                              6/7
  Installing     : subversion                                                                                                                            7/7

Installed:
  subversion.i386 0:1.6.11-10.el5_8                                            subversion.x86_64 0:1.6.11-10.el5_8

Dependency Installed:
  apr.i386 0:1.2.7-11.el5_6.5  apr-util.i386 0:1.2.7-11.el5_5.2  neon.i386 0:0.25.5-10.el5_4.1  postgresql-libs.i386 0:8.1.23-6.el5_8  sqlite.i386 0:3.3.6-6

Complete!



使用したオプション解説

オプション 種類
--disablerepo=\* リポジトリを無効化
--enablerepo=c5-media CentOS-Media.repoで設定したリポジトリを利用
install パッケージ名 インストールするパッケージ名を指定




一般的によく使うオプション
コマンド
概要
check-update アップデート可能なパッケージの一覧を表示
clean ダウンロードしたパッケージと古いヘッダを削除する。clean allと同じ
clean oldheaders 古いヘッダを削除
clean packages ダウンロードしたパッケージを削除
info 利用可能なパッケージの情報を表示
info パッケージ名 指定したパッケージの情報を表示
install パッケージ名 指定したパッケージをインストール
list 利用可能なパッケージの一覧を表示
list installed インストール済みのパッケージ一覧を表示
list updates アップデート可能なパッケージの一覧を表示
provides パッケージ名 パッケージに含まれるファイルの一覧を表示
remove パッケージ名 指定したパッケージをアンインストールする。指定したパッケージと依存関係があるパッケージは、削除するかど うか確認を求める
search キーワード キーワードでパッケージを検索する。検索の対象は、RPMファイルのName、Packager、 Dummary、Descriptionの各フィールド
update アップデート可能な全パッケージをアップデート
update パッケージ名 指定したパッケージをアップデート



インストール確認
# rpm -qa | grep subversion
subversion-1.6.11-10.el5_8
subversion-1.6.11-10.el5_8


Another app is currently holding the yum lock 対応



yumコマンド実行時に以下が表示され、待たされることがある。

Another app is currently holding the yum lock; waiting for it to exit...
  The other application is: yum-updatesd-he
    Memory :  23 M RSS (254 MB VSZ)
    Started: Tue Jul 16 16:51:21 2013 - 03:59 ago
    State  : Sleeping, pid: 4793

アップデートプロセスが残っていることが原因で
10分~15分程度待つとインストールできるが、毎回10分待ちはなかなか手間である。



yum-updatesdサービスの停止と次回以降のOS起動時に
yum-updatesdが立ち上がらないように設定を行なう。

# ps -ef | grep yum | grep -v grep
root      3393     1  0 Jul09 ?        00:00:00 /usr/bin/python -tt /usr/sbin/yum-updatesd


# chkconfig yum-updatesd off

# chkconfig --list yum-updatesd
yum-updatesd    0:off   1:off   2:off   3:off   4:off   5:off   6:off

# service yum-updatesd stop
yum-updates を停止 中:                                      [  OK  ]

# ps -ef | grep yum | grep -v grep


これでyumコマンドを発行した場合に待たされることは無くなると思う。
(消せばよいだけだが、pidを管理しているファイルが残っていたという事例もあるみたい)

0 件のコメント:

コメントを投稿