ラベル yum の投稿を表示しています。 すべての投稿を表示
ラベル yum の投稿を表示しています。 すべての投稿を表示

2014/09/09

CentOS 7でmozcを使う・その8・デスクトップの設定

デスクトップ右上の「ja」をクリックする。

「地域と言語の設定」を選択する。
「地域と言語」の「設定」画面が表示される。

CentOS 7でmozcを使う・その7・Emacsの設定

Emacsでmozcを利用できるよう設定する。
[alice@centos02 SPECS]$ cd
[alice@centos02 ~]$ cat >> .emacs <<'EOL'

;; for mozc
(require 'mozc)
(setq default-input-method "japanese-mozc")
[alice@centos02 ~]$ emacs -nw
EOL
[alice@centos02 ~]$ 

その0・Fedora 19レポジトリの準備
その1・mozcのビルド#1/2
その2・protobufのビルドとインストール
その3・zinniaおよびtomoeのビルドとインストール
その4・gypのビルド・インストール
その5・mozcのビルド#2/2とインストール
その6・Emacsの設定
その7・デスクトップの設定

CentOS 7でmozcを使う・その6・mozcのビルド#2/2とインストール

mozcのビルドに必要なパッケージはすべて準備出来た。

mozcのビルドを試みる。
[alice@centos02 SPECS]$ rpmbuild -ba mozc.spec
実行中(%prep): /bin/sh -e /var/tmp/rpm-tmp.hQQUlx
+ umask 022
+ cd /home/alice/rpmbuild/BUILD
+ cd /home/alice/rpmbuild/BUILD
<<略>>
  g++ '-DOS_LINUX' '-DMOZC_BUILD' '-DCHANNEL_DEV' '-DENABLE_GTK_RENDERER' '-DMOZC_ENABLE_UNITTEST' '-DNDEBUG' '-DQT_NO_DEBUG' '-DNO_LOGGING' '-DIGNORE_HELP_FLAG' '-DIGNORE_INVALID_FLAG' -I. -Iout_linux/Release/obj/gen  -Wall -Wno-char-subscripts -Wno-sign-compare -Wno-deprecated-declarations -Wwrite-strings -fPIC -fno-exceptions -fmessage-length=0 -fno-strict-aliasing -funsigned-char -include base/namespace.h -pipe -pthread -fno-omit-frame-pointer -fstack-protector --param=ssp-buffer-size=4 -O2 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic -Wno-deprecated -std=gnu++0x -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic -MMD -MF out_linux/Release/.deps/out_linux/Release/obj.target/http_client/net/proxy_manager.o.d.raw  -c -o out_linux/Release/obj.target/http_client/net/proxy_manager.o net/proxy_manager.cc
net/http_client.cc:587:9: note: #pragma message: HTTPClient is disabled.
 MOZC_COMPILE_MESSAGE("HTTPClient is disabled.");
         ^
  LD_LIBRARY_PATH=/home/alice/rpmbuild/BUILD/mozc-1.15.1814.102/out_linux/Release/lib.host:/home/alice/rpmbuild/BUILD/mozc-1.15.1814.102/out_linux/Release/lib.target:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; cd gui; mkdir -p /home/alice/rpmbuild/BUILD/mozc-1.15.1814.102/out_linux/Release/obj/gen/gui/tool; /usr/lib64/qt-3.3/bin/rcc -o "/home/alice/rpmbuild/BUILD/mozc-1.15.1814.102/out_linux/Release/obj/gen/gui/tool/qrc_mozc_tool.cc" -name qrc_mozc_tool tool/mozc_tool.qrc
/bin/sh: /usr/lib64/qt-3.3/bin/rcc: No such file or directory
make: *** [out_linux/Release/obj/gen/gui/tool/qrc_mozc_tool.cc] Error 127
make: *** Waiting for unfinished jobs....
Traceback (most recent call last):
  File "build_mozc.py", line 1467, in 
    main()
  File "build_mozc.py", line 1463, in main
    procedure[1](cmd_opts, cmd_args, original_directory_name)
  File "build_mozc.py", line 1086, in BuildMain
    BuildOnLinux(options, targets, original_directory_name)
  File "build_mozc.py", line 1042, in BuildOnLinux
    RunOrDie([make_command] + build_args + target_names)
  File "/home/alice/rpmbuild/BUILD/mozc-1.15.1814.102/build_tools/util.py", line 97, in RunOrDie
    '==========']))
build_tools.util.RunOrDieError:
==========
 ERROR: make -j2 MAKE_JOBS=2 BUILDTYPE=Release builddir_name=out_linux V=1 ibus_mozc mozc_emacs_helper mozc_server mozc_tool mozc_renderer
==========
エラー: /var/tmp/rpm-tmp.nwszNW の不正な終了ステータス (%build)


RPM ビルドのエラー:
    /var/tmp/rpm-tmp.nwszNW の不正な終了ステータス (%build)
[alice@centos02 SPECS]$
ビルドが失敗する。
原因は、/usr/lib64/qt-3.3/bin/rccが存在しないため。

CentOS 7でmozcを使う・その5・gypのビルド・インストール

gypをビルドする。

展開する。
[alice@centos02 SPECS]$ cd
[alice@centos02 ~]$ rpm -ivh gyp-0.1-0.10.1617svn.fc19.src.rpm
警告: gyp-0.1-0.10.1617svn.fc19.src.rpm: ヘッダー V3 RSA/SHA256 Signature、鍵 ID fb4b18e6: NOKEY
更新中 / インストール中...
   1:gyp-0.1-0.10.1617svn.fc19        ################################# [100%]
警告: ユーザー mockbuild は存在しません - root を使用します
警告: グループ mockbuild は存在しません - root を使用します
警告: ユーザー mockbuild は存在しません - root を使用します
<<略>>
警告: グループ mockbuild は存在しません - root を使用します
[alice@centos02 ~]$ 

CentOS 7でmozcを使う・その4・zinniaおよびtomoeのビルドとインストール

続いて、zinniaのビルドを試みる。
[alice@centos02 SPECS]$ cd
[alice@centos02 ~]$ rpm -ivh zinnia-0.06-16.fc19.src.rpm
警告: zinnia-0.06-16.fc19.src.rpm: ヘッダー V3 RSA/SHA256 Signature、鍵 ID fb4b18e6: NOKEY
更新中 / インストール中...
   1:zinnia-0.06-16.fc19              ################################# [100%]
警告: ユーザー mockbuild は存在しません - root を使用します
警告: グループ mockbuild は存在しません - root を使用します
警告: ユーザー mockbuild は存在しません - root を使用します
<<略>>
警告: グループ mockbuild は存在しません - root を使用します
[alice@centos02 ~]$ cd rpmbuild/SPECS/
[alice@centos02 SPECS]$ rpmbuild -ba zinnia.spec
警告: %changelog に偽の日付: Fri Mar 04 2010 Liang Suilong  - 0.05-3
警告: %changelog に偽の日付: Wed Mar 02 2010 Liang Suilong  - 0.05-2
エラー: ビルド依存性の失敗:
        tomoe は zinnia-0.06-16.el7.centos.x86_64 に必要とされています
[alice@centos02 SPECS]$
パッケージtomoeが不足していることが判る。

tomoeは、CentOS 7用レポジトリに存在していない。
[alice@centos02 SPECS]$ cd
[alice@centos02 ~]$ yum info tomoe
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
エラー: 表示するパッケージはありません
[alice@centos02 ~]$

CentOS 7でmozcを使う・その3・protobufのビルドとインストール

まず、protobufのビルドを試みる。
基本的な手順は、mozcと同じ。
[alice@centos02 ~]$ rpm -ivh protobuf-2.5.0-4.fc19.src.rpm
警告: protobuf-2.5.0-4.fc19.src.rpm: ヘッダー V3 RSA/SHA256 Signature、鍵 ID fb4b18e6: NOKEY
更新中 / インストール中...
   1:protobuf-2.5.0-4.fc19            ################################# [100%]
警告: ユーザー mockbuild は存在しません - root を使用します
警告: グループ mockbuild は存在しません - root を使用します
<<略>>
警告: グループ mockbuild は存在しません - root を使用します
[alice@centos02 ~]$ cd rpmbuild/SPECS/
[alice@centos02 SPECS]$ rpmbuild -ba protobuf.spec
Package emacs was not found in the pkg-config search path.
Perhaps you should add the directory containing `emacs.pc'
to the PKG_CONFIG_PATH environment variable
No package 'emacs' found
エラー: ビルド依存性の失敗:
        emacs-el >= 24.1 は protobuf-2.5.0-4.el7.centos.x86_64 に必要とされてい ます
        python-devel は protobuf-2.5.0-4.el7.centos.x86_64 に必要とされています
        java-devel >= 1.6 は protobuf-2.5.0-4.el7.centos.x86_64 に必要とされています
        maven-local は protobuf-2.5.0-4.el7.centos.x86_64 に必要とされています
        maven-compiler-plugin は protobuf-2.5.0-4.el7.centos.x86_64 に必要とされています
        maven-install-plugin は protobuf-2.5.0-4.el7.centos.x86_64 に必要とされ ています
        maven-jar-plugin は protobuf-2.5.0-4.el7.centos.x86_64 に必要とされてい ます
        maven-javadoc-plugin は protobuf-2.5.0-4.el7.centos.x86_64 に必要とされ ています
        maven-resources-plugin は protobuf-2.5.0-4.el7.centos.x86_64 に必要とさ れています
        maven-surefire-plugin は protobuf-2.5.0-4.el7.centos.x86_64 に必要とされています
        maven-antrun-plugin は protobuf-2.5.0-4.el7.centos.x86_64 に必要とされています
[alice@centos02 SPECS]$
不足しているパッケージについて、CentOS 7用レポジトリからインストールを試みる。

CentOS 7でmozcを使う・その2・mozcのビルド#1/2

mozcのSRPMをダウンロードし、ビルド(コンパイル)を試みる。
[alice@centos02 ~]$ yumdownloader --source --enablerepo=fedora,fedora-updates mozc
読み込んだプラグイン:fastestmirror, langpacks
Enabling base-source repository
Enabling updates-source repository
<<略>>
警告: /home/alice/mozc-1.15.1814.102-1.fc19.src.rpm: ヘッダー V3 RSA/SHA256 Signature、鍵 ID fb4b18e6: NOKEY
mozc-1.15.1814.102-1.fc19.src.rpm の公開鍵がインストールされていません
mozc-1.15.1814.102-1.fc19.src.rpm                          |  35 MB   02:40
[alice@centos02 ~]$

rpm -ivh」で展開する。
~/rpmbuildに展開される。
[alice@centos02 ~]$ rpm -ivh mozc-1.15.1814.102-1.fc19.src.rpm
警告: mozc-1.15.1814.102-1.fc19.src.rpm: ヘッダー V3 RSA/SHA256 Signature、鍵 ID fb4b18e6: NOKEY
更新中 / インストール中...
   1:mozc-1.15.1814.102-1.fc19        ################################# [100%]
警告: ユーザー mockbuild は存在しません - root を使用します
警告: グループ mockbuild は存在しません - root を使用します
<<略>>
警告: グループ mockbuild は存在しません - root を使用します
[alice@centos02 ~]$

CentOS 7でmozcを使う・その1・Fedora 19レポジトリの準備

Fedora 19用yumレポジトリを利用できるようにする。

RPMファイルを展開するために、rpmdevtoolsを導入する。
[root@centos02 ~]# yum install -y rpmdevtools
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
依存性の解決をしています
<<略>>
インストール:
  rpmdevtools.noarch 0:8.3-5.el7

完了しました!
[root@centos02 ~]#

RPMパッケージをダウンロードする。
[alice@centos02 ~]$ wget 'http://ftp.jaist.ac.jp/pub/Linux/Fedora/releases/19/Fedora/x86_64/os/Packages/f/fedora-release-19-2.noarch.rpm'
--2014-09-08 21:54:53--  http://ftp.jaist.ac.jp/pub/Linux/Fedora/releases/19/Fedora/x86_64/os/Packages/f/fedora-release-19-2.noarch.rpm
ftp.jaist.ac.jp (ftp.jaist.ac.jp) をDNSに問いあわせています... 150.65.7.130, 2001:df0:2ed:feed::feed
ftp.jaist.ac.jp (ftp.jaist.ac.jp)|150.65.7.130|:80 に接続しています... 接続しま した。
<<略>>
2014-09-08 21:54:54 (77.5 KB/s) - `fedora-release-19-2.noarch.rpm' へ保存完了 [32472/32472]

[alice@centos02 ~]$

CentOS 7でmozcを使う・その0・概要

RHEL 7 (Red Hat Enterprise Linux 7)やCentOS 7などの互換OSでは、標準で日本語入力にkkcを利用できる。
しかし、このkkcは、非常に使いづらい。
この代替として、mozcを導入する方法を紹介する。

Mozcは、Google 日本語入力の流れを汲む、日本語IME(Input Method Editor)。
複数のUNIX系OSをはじめ、Windowsにも対応している。

2014/08/24

CentOS 7のKickstartファイル中でrepoコマンドのnameオプションを使う場合の注意

Red Hat Enterprise Linux 7 (RHEL7)互換OS、CentOS 7のインストールをAnaconda Kickstartで自動化する場合、CentOS 6までとは、異なる動作をする場合がある。

Kickstartファイルでrepoコマンドを使う場合、CentOS 6までは、
repo --name="CentOS Update (Local)" --baseurl=http://centos.repository.local/centos/6/updates/x86_64 --cost=1
の様に、nameオプションに空白を含んだ文字列を指定しても問題なく動作したと思う

ところが、CentOS 7では、このように指定した場合、このレポジトリは無視されてしまう。
従って例えば、
repo --name=CentOS-Update-Local --baseurl=http://centos.repository.local/centos/7/updates/x86_64 --cost=1
の様に、空白を含まない文字列を指定する必要がある。

2008/07/09

Xen DomUのKickstartインストール時、すべてのパッケージのインストールを指定する方法

CentOSやFecora、Red Hat Enterprise Linux (RHEL)などは、Anaconda Kickstartで自動インストールすることができる。このとき、(ほとんど)すべてのRPMパッケージをインストールしたいとする。非Xenのバニラカーネルなら、%packageセクションで
%packages
@everything
とだけ書けば問題ない。

しかし、Xen DomUの場合はこれではエラーになる。理由は、@everythingのみを指定すると、Xen DomUが必要とするカーネルRPMパッケージ・kernel-xenだけでなく、kernelやkernel-PAEもインストールされ、OS起動時にkernelやkernel-PAEが選択されることがあるからだ。

これを避けるために、%packagesセクションに以下の様に記述する。
%packages
@everything
-kernel
-kernel-PAE
-kmod-gfs
-kmod-gfs-PAE
-kmod-gfs2
-kmod-gfs2-PAE
-kmod-gnbd
-kmod-gnbd-PAE
-libvirt
-xen
-gnome-applet-vm
-libvirt-devel
-libvirt-python
-python-virtinst
-virt-manager
-virt-viewer
Xen DomUをKickstartインストールする方法については、『Red Hat Cluster: CentOS 5.1上でRHCSを使ってみる・その3・DomU dcXのインストール』等を参照。

2008/07/08

CentOS 5.2でanaconda kickstartのバグが修正

CentOS5.2では、CentOS5.1までに存在した、ある不具合が修正された。

例えば、Xen環境では、RPMパッケージkernel-xenをインストールするので、RPMパッケージkernelは不要。そこで、kernelがインストールされないよう、Anaconda Kickstart設定ファイル(『Red Hat Cluster: CentOS 5.1上でRHCSを使ってみる・その4・DomU bs1のインストール』等を参照)の%packagesセクションに
%packages
kernel-xen
-kernel
と書く。しかし、CentOS 5.1では、このように記述しても、kernelがインストールされる。この不具合を回避するため、%postセクションに
%post
yum -y remove kernel
と書く必要があった。

逆に、CentOS 5.2では、Kickstart設定ファイルを上の様に記述すると、別の不具合が発生する。元々RPMパッケージkernelがインストールされないため、代わりにRPMパッケージkernel-xenが削除される。結果として、正常に起動しなくなる。例えば、DomUをインストールすると、インストール後の再起動時に以下の様なメッセージが表示される。
sending termination signals...done
sending kill signals...done
disabling swap...
/dev/mapper/VolGroup00-LogVol01
unmounting filesystems...
/mnt/runtime done
disabling /dev/loop0
/proc done
/dev/pts done
/sys done
/tmp/ramfs done
/selinux done
/mnt/sysimage/boot done
/mnt/sysimage/sys done
/mnt/sysimage/proc done
/mnt/sysimage/selinux done
/mnt/sysimage/dev done
/mnt/sysimage done
rebooting system
Restarting system.

Guest installation complete... restarting guest.
virDomainCreate() failed POST operation failed: (xend.err "Error creating domain: Boot loader didn't return any data!")
Domain installation may not have been
successful. If it was, you can restart your domain
by running 'virsh start dc1'; otherwise, please
restart your installation.
Tue, 08 Jul 2008 11:25:06 ERROR virDomainCreate() failed POST operation failed: (xend.err "Error creating domain: Boot loader didn't return any data!")
Traceback (most recent call last):
File "/usr/sbin/virt-install", line 502, in ?
main()
File "/usr/sbin/virt-install", line 488, in main
dom.create()
File "/usr/lib/python2.4/site-packages/libvirt.py", line 228, in create
if ret == -1: raise libvirtError ('virDomainCreate() failed', dom=self)
libvirtError: virDomainCreate() failed POST operation failed: (xend.err "Error creating domain: Boot loader didn't return any data!")
#

2008/07/07

CentOS 5.1からCentOS 5.2へアップグレードする

CentOS5.1からCentOS5.2へアップグレードを行ってみた。前回の『CentOS 5.0からCentOS 5.1へアップグレードする』もどうぞ。

手順はごく単純。基本的には、CentOS 5.1が動いているマシン上で、yum upgradeコマンドを実行するだけ。
ただし、インターネットへHTTPでの接続性が確保されている必要がある。無理ならば、ローカルミラーリポジトリを作って作業する。『ローカルミラーレポジトリ』参照(最近の流行はcobblerらしいが、まだ試していない)

以下詳細。

まず、更新されるRPMパッケージを確認する。
# yum check-update
Loading "dellsysidplugin" plugin
Loading "installonlyn" plugin
Setting up repositories
fwupdate 100% |=========================| 1.9 kB 00:00
dell-software 100% |=========================| 1.9 kB 00:00
dell-hardware-auto 100% |=========================| 951 B 00:00
base 100% |=========================| 1.1 kB 00:00
updates 100% |=========================| 951 B 00:00
addons 100% |=========================| 951 B 00:00
dell-hardware-main 100% |=========================| 951 B 00:00
extras 100% |=========================| 951 B 00:00
Reading repository metadata in from local files
primary.xml.gz 100% |=========================| 856 kB 00:00
################################################## 2458/2458
primary.xml.gz 100% |=========================| 91 kB 00:00
################################################## 165/165
primary.xml.gz 100% |=========================| 194 B 00:00
primary.xml.gz 100% |=========================| 74 kB 00:00
################################################## 244/244

Deployment_Guide-en-US.noarch 5.2-9.el5.centos base
Deployment_Guide-ja-JP.noarch 5.2-9.el5.centos base
<<略>>
yum.noarch 3.2.8-9.el5.centos.2.1 updates
yum-metadata-parser.i386 1.1.2-2.el5 base
yum-updatesd.noarch 1:0.9-2.el5 base
#
パッケージ一覧が表示されることを確認する。

アップグレードを行う。
# yum -y upgrade
Loading "dellsysidplugin" plugin
Loading "installonlyn" plugin
Setting up Upgrade Process
Setting up repositories
Reading repository metadata in from local files
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for chkconfig to pack into transaction set.
chkconfig-1.3.30.1-2.i386 100% |=========================| 24 kB 00:00
---> Package chkconfig.i386 0:1.3.30.1-2 set to be updated
---> Downloading header for gnome-screensaver to pack into transaction set.
gnome-screensaver-2.16.1- 100% |=========================| 27 kB 00:00
---> Package gnome-screensaver.i386 0:2.16.1-8.el5 set to be updated
<<略>>
---> Downloading header for crypto-utils to pack into transaction set.
crypto-utils-2.3-2.el5.i3 100% |=========================| 7.8 kB 00:00
---> Package crypto-utils.i386 0:2.3-2.el5 set to be updated
--> Running transaction check
--> Processing Dependency: gtk-vnc-python for package: virt-manager
--> Processing Dependency: gecko-libs = 1.9 for package: yelp
--> Processing Dependency: python-imaging for package: luci
<<略>>
--> Processing Dependency: setroubleshoot-server = 2.0.5-3.el5 for package: setroubleshoot
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for device-mapper-event to pack into transaction set.
device-mapper-event-1.02. 100% |=========================| 7.6 kB 00:00
---> Package device-mapper-event.i386 0:1.02.24-1.el5 set to be updated
---> Downloading header for gtk-vnc-python to pack into transaction set.
gtk-vnc-python-0.3.2-3.el 100% |=========================| 2.9 kB 00:00
---> Package gtk-vnc-python.i386 0:0.3.2-3.el5 set to be updated
<<略>>
ヘッダがダウンロードと依存関係が繰り返される。
続けて、パッケージ一覧が表示される。
--> Running transaction check

Dependencies Resolved

=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
dhcpv6-client i386 1.0.10-4.el5_2.2 updates 121 k
replacing dhcpv6_client.i386 0.10-33.el5

kernel-xen i686 2.6.18-92.1.6.el5 updates 15 M
kmod-gfs-xen i686 0.1.23-5.el5 base 138 k
libhugetlbfs i386 1.2-5.el5 base 14 k
replacing libhugetlbfs-lib.i386 1.0.1-1.el5

Updating:
Deployment_Guide-en-US noarch 5.2-9.el5.centos base 7.0 M
Deployment_Guide-ja-JP noarch 5.2-9.el5.centos base 7.1 M
NetworkManager i386 1:0.6.4-8.el5 base 400 k
<<略>>
virt-viewer i386 0.0.2-2.el5 base 24 k
xulrunner i386 1.9-0.beta5.6.el5 base 9.9 M
yum-fastestmirror noarch 1.1.10-9.el5.centos base 13 k

Transaction Summary
=============================================================================
Install 20 Package(s)
Update 244 Package(s)
Remove 0 Package(s)
20パッケージが新たにインストールされ、244パッケージが更新されることが解る。当然環境によってこの辺りの数値は変わる。
続けて、RPMパッケージのダウンロードが行われる。
Total download size: 354 M
Downloading Packages:
(1/264): chkconfig-1.3.30 100% |=========================| 159 kB 00:00
(2/264): gnome-screensave 100% |=========================| 1.8 MB 00:00
(3/264): device-mapper-ev 100% |=========================| 19 kB 00:00
<<略>>
ダウンロードが終了すると、新規インストールもしくは更新が行われる。
(262/264): microcode_ctl- 100% |=========================| 449 kB    00:00
(263/264): ntsysv-1.3.30. 100% |=========================| 24 kB 00:00
(264/264): crypto-utils-2 100% |=========================| 35 kB 00:00
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Updating : libgcc ##################### [ 1/511]
Updating : glibc-common ##################### [ 2/511]
Updating : glibc ##################### [ 3/511]
<<略>>
この作業中、いくつか警告が表示される。以下にその警告の一覧を示す。
  Updating  : pam                                                [ 25/511]warning: /etc/pam.d/system-auth created as /etc/pam.d/system-auth.rpmnew
<<略>>
Updating : lvm2 [136/511]warning: /etc/lvm/lvm.conf created as /etc/lvm/lvm.conf.rpmnew
<<略>>
Installing: perl-XML-LibXML ##################### [139/511]
could not find ParserDetails.ini in /usr/lib/perl5/vendor_perl/5.8.8/XML/SAX
<<略>>
Updating : xen [148/511]warning: /etc/xen/xend-config.sxp created as /etc/xen/xend-config.sxp.rpmnew
<<略>>
Updating : bind [236/511]warning: /etc/sysconfig/named created as /etc/sysconfig/named.rpmnew
<<略>>
この内、bindについては、RPMパッケージbind-chrootをインストールしているため、xenは、VLAN設定のため、設定ファイルを変更しているために警告されている。残りのlvm2およびpamに関しては、システムに変更を加えていなければ、.rpmnewファイルで元ファイルを上書きした方がよいだろう。
この他に、SELinuxの設定を変更するスクリプトが動くため、以下の様なメッセージも大量に発生する。
<<略>>
Updating : selinux-policy-targeted ##################### [248/511]
/sbin/restorecon reset /bin/alsaunmute context system_u:object_r:bin_t:s0->system_u:object_r:alsa_exec_t:s0
/sbin/restorecon reset /etc/rc.d/init.d/auditd context system_u:object_r:initrc_exec_t:s0->system_u:object_r:auditd_script_exec_t:s0
/sbin/restorecon reset /etc/rc.d/init.d/httpd context system_u:object_r:initrc_exec_t:s0->system_u:object_r:httpd_script_exec_t:s0
<<略>>
最後に、インストール・更新されたパッケージの一覧が表示される。
  Cleanup   : microcode_ctl                ##################### [509/511]
Cleanup : ntsysv ##################### [510/511]
Cleanup : crypto-utils ##################### [511/511]

Installed: dhcpv6-client.i386 0:1.0.10-4.el5_2.2 kernel-xen.i686 0:2.6.18-92.1.6.el5 kmod-gfs-xen.i686 0:0.1.23-5.el5 libhugetlbfs.i386 0:1.2-5.el5
Dependency Installed: device-mapper-event.i386 0:1.02.24-1.el5 <<略>> yum-fastestmirror.noarch 0:1.1.10-9.el5.centos
Updated: Deployment_Guide-en-US.noarch 0:5.2-9.el5.centos Deployment_Guide-ja-JP.noarch 0:5.2-9.el5.centos <<略>> make.i386 1:3.81-3.el5
Replaced: dhcpv6_client.i386 0:0.10-33.el5 libhugetlbfs-lib.i386 0:1.0.1-1.el5
Complete!
#
再起動する。
# shutdown -r now

Broadcast message from root (pts/2) (Sun Jul 6 20:55:59 2008):

The system is going down for reboot NOW!
#
起動中に表示されるバージョン番号を確認する。
unmounting old /dev
unmounting old /proc
unmounting old /sys
audit(1215345577.104:2): policy loaded auid=4294967295 ses=4294967295
INIT: version 2.86 booting
Welcome to CentOS release 5.2 (Final)
Press 'I' to enter interactive startup.
Starting udev: (utc): Sun Jul 6 20:59:39 JST 2008 [ OK ]
起動後、ログを確認し、正常起動出来たかをチェックする。

2008/07/01

How do I migrate a system from RHEL 3 to CentOS 3?

CentOSのFAQに『How do I migrate a system from WBEL-3 (White Box Enterprise Linux) to CentOS 3?』という記事がある。この方法は、RHEL (Red Hat Enterprise Linux)にも適用可能とあるので、実際に検証してみた。

CentOS 3用RPMパッケージの署名鍵(sign key)をインストールする。
# rpm --import http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-3
#

RPMパッケージredhat-releaseをcentos-releaseに置き換える。
# rpm -q redhat-release
redhat-release-3ES-1
# rpm -Uvh http://mirror.centos.org/centos/3/os/i386/RedHat/RPMS/centos-release-3-9.1.i386.rpm
http://mirror.centos.org/centos/3/os/i386/RedHat/RPMS/centos-release-3-9.1.i386.rpm を取得しています
Preparing... ########################################### [100%]
1:centos-release ########################################### [100%]
# rpm -q redhat-release
パッケージ redhat-release はインストールされていません
#
RPMパッケージcentos-releaseで更新すれば、redhat-releaseと置き換えられる。
ここでは、バージョン3-9.1をインストールしているが、これは実際にhttp://mirror.centos.org/centos/3/os/i386/RedHat/RPMS/をブラウジングして、最新のバージョン番号で置き換える必要があるかもしれない。

CentOSリポジトリは、yumで管理するが、当然だが、RHEL3の状態では、yumはインストールされていない。
# which yum
/usr/bin/which: no yum in (/usr/kerberos/sbin:/usr/kerberos/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin
:/usr/local/sbin:/usr/bin/X11:/usr/X11R6/bin:/root/bin)
#
Yum関連のRPMパッケージをインストールする。
# rpm -Uvh http://mirror.centos.org/centos/3/os/i386/RedHat/RPMS/yum-2.0.8-2.cen
tos3.noarch.rpm
http://mirror.centos.org/centos/3/os/i386/RedHat/RPMS/yum-2.0.8-2.centos3.noarch.rpm を取得しています
Preparing... ########################################### [100%]
1:yum ########################################### [100%]
# rpm -Uvh http://mirror.centos.org/centos/3/os/i386/RedHat/RPMS/centos-yumconf-1-11.noarch.rpm
http://mirror.centos.org/centos/3/os/i386/RedHat/RPMS/centos-yumconf-1-11.noarch.rpm を取得しています
Preparing... ########################################### [100%]
1:centos-yumconf ########################################### [100%]
# which yum
/usr/bin/yum
#
この作業についても、実際にリポジトリを覗き見して、適宜最新のバージョン番号に変える。

実際にアップグレードする前に、更新されるRPMパッケージを確認する(しなくてもよい)
# yum list update
Gathering header information file(s) from server(s)
Server: CentOS-3 - Addons
Server: CentOS-3 - Base
Server: CentOS-3 - Extras
Server: CentOS-3 - Updates
Finding updated packages
Downloading needed headers
emacs-0-21.3-4.10.i386.hd 100% |=========================| 49 kB 00:00
pango-0-1.2.5-5.i386.hdr 100% |=========================| 6.4 kB 00:00
lockdev-0-1.0.1-5.1.i386. 100% |=========================| 2.5 kB 00:00
<<略>>
gtk+-devel-1-1.2.10-31.i3 100% |=========================| 13 kB 00:00
freetype-devel-0-2.1.4-10 100% |=========================| 7.9 kB 00:00
Looking in Available Packages:
Name Arch Version Repo
--------------------------------------------------------------------------------

Looking in Installed Packages:
Name Arch Version Repo
--------------------------------------------------------------------------------

#

アップグレードする。
# yum update
Gathering header information file(s) from server(s)
Server: CentOS-3 - Addons
Server: CentOS-3 - Base
Server: CentOS-3 - Extras
Server: CentOS-3 - Updates
Finding updated packages
Downloading needed headers
Resolving dependencies
.Dependencies resolved
I will do the following:
[install: kernel-smp 2.4.21-57.EL.i686]
[install: kernel 2.4.21-57.EL.i686]
[update: emacs 21.3-4.10.i386]
<<略>>
[deps: bind-libs 20:9.2.4-21.el3.i386]
[deps: elfutils-libelf-devel 0.94.1-2.i386]
Is this ok [y/N]: y
Downloading Packages
Getting emacs-21.3-4.10.i386.rpm
emacs-21.3-4.10.i386.rpm 100% |=========================| 12 MB 02:26
Getting pango-1.2.5-5.i386.rpm
pango-1.2.5-5.i386.rpm 100% |=========================| 337 kB 00:04
Getting lockdev-1.0.1-5.1.i386.rpm
lockdev-1.0.1-5.1.i386.rp 100% |=========================| 12 kB 00:00
<<略>>
Getting man-1.5k-13.rhel3.i386.rpm
man-1.5k-13.rhel3.i386.rp 100% |=========================| 90 kB 00:00
Running test transaction:
Test transaction complete, Success!
hwdata 100 % done 1/854
filesystem 100 % done 2/854
redhat-logos 100 % done 3/854
<<略>>
XFree86-twm 100 % done 432/854
gdm 100 % done 433/854
Completing update for emacs - 434/854
Completing update for pango - 435/854
Completing update for lockdev - 436/854
<<略>>
0.33.7.1-25.3.rhel3.i386 net-snmp-libs 5.0.9-2.30E.24.i386 gdk-pixbuf 1:0.22.0-13.el3.3.i386 jaf 20030319-1.
i386 javamail 20031006-1.i386 FreeWnn-libs 1.11-36.3.i386 bind-libs 20:9.2.4-21.el3.i386 elfutils-libelf-dev
el 0.94.1-2.i386
Transaction(s) Complete
#
ところどころエラーが出るが、無視した。
再起動する。
# shutdown -r now

カーネルのバージョンを確認する。
# uname -a
Linux ホスト名 2.4.21-4.ELsmp #1 SMP Fri Oct 3 17:52:56 EDT 2003 i686 i686 i386 GNU/Linux
#
カーネルが古いままになっている。おそらく、grubの設定ファイルが書き換わっていないのだろう。
# cat /boot/grub/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/sda2
# initrd /initrd-version.img
#boot=/dev/sda
default=2
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
title CentOS (2.4.21-57.ELsmp)
root (hd0,0)
kernel /vmlinuz-2.4.21-57.ELsmp ro root=LABEL=/
initrd /initrd-2.4.21-57.ELsmp.img
title CentOS (2.4.21-57.EL)
root (hd0,0)
kernel /vmlinuz-2.4.21-57.EL ro root=LABEL=/
initrd /initrd-2.4.21-57.EL.img
title Red Hat Enterprise Linux ES (2.4.21-4.ELsmp)
root (hd0,0)
kernel /vmlinuz-2.4.21-4.ELsmp ro root=LABEL=/
initrd /initrd-2.4.21-4.ELsmp.img
title Red Hat Enterprise Linux ES-up (2.4.21-4.EL)
root (hd0,0)
kernel /vmlinuz-2.4.21-4.EL ro root=LABEL=/
initrd /initrd-2.4.21-4.EL.img
#
default=2」となっているため、2+1=3番目のエントリ、「title Red Hat Enterprise Linux ES (2.4.21-4.ELsmp)」に対応するものが起動されている。これを、「default=0」に書き換える。
# cp -p /boot/grub/grub.conf /boot/grub/grub.conf.orig
# sed 's/^default=2/default=0/' < /boot/grub/grub.conf.orig > /boot/grub/grub.conf
再起動する。
# shutdown -r now
<<略>>
INIT: version 2.85 bootingiver loaded
Setting default font (lat0-sun16): [ OK ]

Welcome to CentOS
Press 'I' to enter interactive startup.
Configuring kernel parameters: [ OK ]
Setting clock (localtime): 2008 7dered data mode. OK ]
<<略>>
# uname -a
Linux ホスト名 2.4.21-57.ELsmp #1 SMP Wed May 7 06:10:55 EDT 2008 i686 i686 i386 GNU/Linux
#
カーネルのバージョンが新しくなっていることを確認できた。

2007/12/10

CentOS 5.0からCentOS 5.1へアップグレードする・補足

前のエントリで、
ファイル/etc/redhat-releaseの中身は、
CentOS release 5 (Final)
のままで変化がなかった(ホンマにこれでエエんかいな?)
と書いた。

調べてみると、/etc/redhat-releaseはcentos-releaseというパッケージに含まれている。CentOS 5.1では、このパッケージのバージョンは、5-1.0.el5.centos.1。このパッケージを実際に展開してみると、
$ ls
centos-release-5-1.0.el5.centos.1.i386.rpm
$ rpm2cpio centos-release-5-1.0.el5.centos.1.i386.rpm | cpio -id
75 blocks
$ cat etc/redhat-release
CentOS release 5 (Final)
$
ということで、「CentOS release 5」のまま変化しないのが正しいようだ。

レポジトリを調べてみると、ディレクトリ5.0および5.1が存在していて、5が5.1へのシンボリックリンクになっている様に見える。
なので、CentOS 5.0も、普通にyum updateすれば、自然に5.1へアップグレードしている、と言うことになる。

2007/12/04

CentOS 5.0からCentOS 5.1へアップグレードする

RHEL 5.1リリース! CentOS 5.1も近日中に」で紹介したCentOS5.1がついにリリースされた。ということで、Xen DomU上のCentOS 5(CentOS5.0)ををCentOS 5.1へアップグレード(バージョンアップ)してみた(こんなときには、VLMのスナップショット機能とXenの組合が便利だ)

2008/7/7追記:
CentOS 5.1からCentOS 5.2へアップグレードする』を公開した。

手順は簡単で、単に
# yum update
とするだけ(手間を省くため、-yオプションを付けてyum -y updateとしてもいい)
ただ、手元の環境で実際に作業を行ってみると、halパッケージが欠損していて、これを除外する必要があった。
# yum --exclude=hal update
これは、ミラーリングの時間差の問題で、時間が解決する問題だと思われる。
LVMを認識する際に警告が出ている。特に問題はないようだ。
ファイル/etc/redhat-releaseの中身は、
CentOS release 5 (Final)
のままで変化がなかった(ホンマにこれでエエんかいな?)(2007/12/10(月): これに関して追記した)。
作業ログは、記事の最後を参照。

なお、リリースノートによると、CentOS 5.1では、以前『Red Hat Cluster: 予告編+x』で報告した、/etc/redhat-releaseを修正しなければCongaが正常に動作しない、という問題が解決されたそうだ。
しかし一方、
仮想化ソフトウェア(Xenなど)を使用すると、libvirtパッケージがインストールされます。このパッケージはCentOS5.1以来、 dnsmasqパッケージと依存があります。(dnsmasqは軽量のDNSとDHCPサーバです)。他のDNSかDHCPデーモンにも同じシステムで動かせのであれば、あなたは、dnsmasqがそれらの動作を妨げないことを確認する必要があります。
という記述もあり、Xenを使用している場合には注意が必要だ。

[root@localhost ~]# yum update
Loading "installonlyn" plugin
Setting up Update Process
Setting up repositories
base 100% |=========================| 1.1 kB 00:00
updates 100% |=========================| 951 B 00:00
addons 100% |=========================| 951 B 00:00
ftp://ftp.oss.eznetsols.org/linux/centos/5.1/extras/i386/repodata/repomd.xml: [Errno 4] IOError: [Errno ftp error] (113, 'No route to host')
Trying other mirror.
extras 100% |=========================| 1.1 kB 00:00
Reading repository metadata in from local files
primary.xml.gz 100% |=========================| 834 kB 00:14
base : ################################################## 2400/2400
Added 743 new packages, deleted 677 old in 11.02 seconds
primary.xml.gz 100% |=========================| 63 kB 00:01
updates : ################################################## 118/118
Added 0 new packages, deleted 764 old in 0.89 seconds
primary.xml.gz 100% |=========================| 157 B 00:00
Added 0 new packages, deleted 0 old in 0.01 seconds
primary.xml.gz 100% |=========================| 60 kB 00:01
extras : ################################################## 190/190
Added 0 new packages, deleted 166 old in 0.31 seconds
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for openssh-clients to pack into transaction set.
openssh-clients-4.3p2-24. 100% |=========================| 35 kB 00:00
---> Package openssh-clients.i386 0:4.3p2-24.el5 set to be updated
---> Downloading header for libacl to pack into transaction set.
libacl-2.2.39-2.1.el5.i38 100% |=========================| 5.9 kB 00:00
---> Package libacl.i386 0:2.2.39-2.1.el5 set to be updated
---> Downloading header for libuser to pack into transaction set.
libuser-0.54.7-2.el5.2.i3 100% |=========================| 37 kB 00:01
---> Package libuser.i386 0:0.54.7-2.el5.2 set to be updated
---> Downloading header for kudzu to pack into transaction set.
kudzu-1.2.57.1.15-1.el5.c 100% |=========================| 57 kB 00:01
<<略>>
cluster-snmp-0.10.0-5.el5 100% |=========================| 6.9 kB 00:00
---> Package cluster-snmp.i386 0:0.10.0-5.el5.centos set to be updated
---> Downloading header for conman to pack into transaction set.
conman-0.1.9.2-8.el5.i386 100% |=========================| 7.7 kB 00:00
---> Package conman.i386 0:0.1.9.2-8.el5 set to be updated
--> Running transaction check
--> Processing Dependency: libkeyutils.so.1 for package: krb5-workstation
--> Processing Dependency: libkeyutils.so.1 for package: krb5-libs
--> Processing Dependency: yum-metadata-parser for package: yum
--> Processing Dependency: libkeyutils.so.1(KEYUTILS_0.3) for package: krb5-libs
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for keyutils-libs to pack into transaction set.
keyutils-libs-1.2-1.el5.i 100% |=========================| 5.0 kB 00:00
---> Package keyutils-libs.i386 0:1.2-1.el5 set to be updated
---> Downloading header for yum-metadata-parser to pack into transaction set.
yum-metadata-parser-1.0-8 100% |=========================| 3.6 kB 00:00
---> Package yum-metadata-parser.i386 0:1.0-8.fc6 set to be updated
--> Running transaction check

Dependencies Resolved

=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
kmod-gfs-xen i686 0.1.19-7.el5 base 137 k
kmod-gnbd-xen i686 0.1.4-12.el5 base 15 k
sos noarch 1.7-9.1.el5 base 108 k
replacing sysreport.noarch 1.4.3-10.el5

Updating:
Deployment_Guide-en-US noarch 5.1.0-11.el5.centos.1 base 7.1 M
OpenIPMI i386 2.0.6-5.el5.4 base 135 k
OpenIPMI-libs i386 2.0.6-5.el5.4 base 530 k
acl i386 2.2.39-2.1.el5 base 67 k
<<略>>
yum noarch 3.0.5-1.el5.centos.5 base 482 k
yum-updatesd noarch 3.0.5-1.el5.centos.5 base 11 k
Installing for dependencies:
keyutils-libs i386 1.2-1.el5 base 18 k
yum-metadata-parser i386 1.0-8.fc6 base 22 k

Transaction Summary
=============================================================================
Install 5 Package(s)
Update 120 Package(s)
Remove 0 Package(s)

Total download size: 149 M
Is this ok [y/N]: y
Downloading Packages:
(1/125): openssh-clients- 100% |=========================| 446 kB 00:09
(2/125): libacl-2.2.39-2. 100% |=========================| 19 kB 00:01
(3/125): libuser-0.54.7-2 100% |=========================| 434 kB 00:11
(4/125): kudzu-1.2.57.1.1 100% |=========================| 220 kB 00:04
(5/125): hal-0.5.8.1-25.el5_1.1.i386.rpm 1.8 kB 00:00
http://mirror.mirr4u.com/centos/5.1/updates/i386/hal-0.5.8.1-25.el5_1.1.i386.rpm: [Errno -1] Package does not match intended download
Trying other mirror.
http://ftp.daum.net/centos/5.1/updates/i386/hal-0.5.8.1-25.el5_1.1.i386.rpm: [Errno 14] HTTP Error 404: Not Found
Trying other mirror.
http://ftp.yz.yamagata-u.ac.jp/pub/linux/centos/5.1/updates/i386/hal-0.5.8.1-25.el5_1.1.i386.rpm: [Errno 14] HTTP Error 404: Not Found
Trying other mirror.
ftp://ftp.oss.eznetsols.org/linux/centos/5.1/updates/i386/hal-0.5.8.1-25.el5_1.1.i386.rpm: [Errno 4] IOError: [Errno ftp error] (113, 'No route to host')
Trying other mirror.
http://ftp2.tnc.edu.tw/pub1/centos/5.1/updates/i386/hal-0.5.8.1-25.el5_1.1.i386.rpm: [Errno 14] HTTP Error 404: Not Found
Trying other mirror.
http://ftp.iij.ad.jp/pub/linux/centos/5.1/updates/i386/hal-0.5.8.1-25.el5_1.1.i386.rpm: [Errno 14] HTTP Error 404: Not Found
Trying other mirror.
http://ftp.riken.jp/Linux/centos/5.1/updates/i386/hal-0.5.8.1-25.el5_1.1.i386.rpm: [Errno 14] HTTP Error 404: Not Found
Trying other mirror.
http://centost.centos.org/centos/5.1/updates/i386/hal-0.5.8.1-25.el5_1.1.i386.rpm: [Errno 14] HTTP Error 404: Not Found
Trying other mirror.
http://mirror.secuidc.com/centos/5.1/updates/i386/hal-0.5.8.1-25.el5_1.1.i386.rpm: [Errno 14] HTTP Error 404: Not Found
Trying other mirror.
http://ftp.tcc.edu.tw/Linux/CentOS/5.1/updates/i386/hal-0.5.8.1-25.el5_1.1.i386.rpm: [Errno 14] HTTP Error 404: Not Found
Trying other mirror.
(6/125): system-config-kd 100% |=========================| 117 kB 00:02
(7/125): system-config-ne 100% |=========================| 1.8 MB 00:25
(8/125): keyutils-libs-1. 100% |=========================| 18 kB 00:00
(9/125): dhclient-3.0.5-7 100% |=========================| 275 kB 00:07
<<略>>
(124/125): cluster-snmp-0 100% |=========================| 161 kB 00:04
(125/125): conman-0.1.9.2 100% |=========================| 109 kB 00:02


Error Downloading Packages:
hal - 0.5.8.1-25.el5_1.1.i386: failure: hal-0.5.8.1-25.el5_1.1.i386.rpm from updates: [Errno 256] No more mirrors to try.

[root@localhost ~]# yum --exclude=hal update
Loading "installonlyn" plugin
Setting up Update Process
Setting up repositories
base 100% |=========================| 1.1 kB 00:00
updates 100% |=========================| 951 B 00:00
addons 100% |=========================| 951 B 00:00
extras 100% |=========================| 1.1 kB 00:00
Reading repository metadata in from local files
Excluding Packages in global exclude list
Finished
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Package openssh-clients.i386 0:4.3p2-24.el5 set to be updated
---> Package libacl.i386 0:2.2.39-2.1.el5 set to be updated
---> Package libuser.i386 0:0.54.7-2.el5.2 set to be updated
<<略>>
---> Package cluster-snmp.i386 0:0.10.0-5.el5.centos set to be updated
---> Package conman.i386 0:0.1.9.2-8.el5 set to be updated
--> Running transaction check
--> Processing Dependency: libkeyutils.so.1 for package: krb5-workstation
--> Processing Dependency: libkeyutils.so.1 for package: krb5-libs
--> Processing Dependency: yum-metadata-parser for package: yum
--> Processing Dependency: libkeyutils.so.1(KEYUTILS_0.3) for package: krb5-libs
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Package keyutils-libs.i386 0:1.2-1.el5 set to be updated
---> Package yum-metadata-parser.i386 0:1.0-8.fc6 set to be updated
--> Running transaction check

Dependencies Resolved

=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
kmod-gfs-xen i686 0.1.19-7.el5 base 137 k
kmod-gnbd-xen i686 0.1.4-12.el5 base 15 k
sos noarch 1.7-9.1.el5 base 108 k
replacing sysreport.noarch 1.4.3-10.el5

Updating:
Deployment_Guide-en-US noarch 5.1.0-11.el5.centos.1 base 7.1 M
OpenIPMI i386 2.0.6-5.el5.4 base 135 k
OpenIPMI-libs i386 2.0.6-5.el5.4 base 530 k
acl i386 2.2.39-2.1.el5 base 67 k
<<略>>
yum noarch 3.0.5-1.el5.centos.5 base 482 k
yum-updatesd noarch 3.0.5-1.el5.centos.5 base 11 k
Installing for dependencies:
keyutils-libs i386 1.2-1.el5 base 18 k
yum-metadata-parser i386 1.0-8.fc6 base 22 k

Transaction Summary
=============================================================================
Install 5 Package(s)
Update 119 Package(s)
Remove 0 Package(s)

Total download size: 148 M
Is this ok [y/N]: y
Downloading Packages:
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Updating : libgcc ##################### [ 1/245]
Updating : libstdc++ ##################### [ 2/245]
Updating : audit-libs ##################### [ 3/245]
Updating : openldap ##################### [ 4/245]
<<略>>
Updating : xorg-x11-drv-evdev ##################### [123/245]
Updating : firstboot ##################### [124/245]
Cleanup : openssh-clients ##################### [125/245]
Cleanup : libacl ##################### [126/245]
Cleanup : libuser ##################### [127/245]
Cleanup : kudzu ##################### [128/245]
<<略>>
Cleanup : cluster-snmp ##################### [244/245]
Cleanup : conman ##################### [245/245]

Installed: kmod-gfs-xen.i686 0:0.1.19-7.el5 kmod-gnbd-xen.i686 0:0.1.4-12.el5 sos.noarch 0:1.7-9.1.el5
Dependency Installed: keyutils-libs.i386 0:1.2-1.el5 yum-metadata-parser.i386 0:1.0-8.fc6
Updated: Deployment_Guide-en-US.noarch 0:5.1.0-11.el5.centos.1 OpenIPMI.i386 0:2.0.6-5.el5.4 OpenIPMI-libs.i386 0:2.0.6-5.el5.4 acl.i386 0:2.2.39-2.1.el5 alsa-lib.i386 0:1.0.14-1.rc4.el5 alsa-utils.i386 0:1.0.14-2.rc4.el5 audit.i386 0:1.5.5-7.el5 audit-libs.i386 0:1.5.5-7.el5 audit-libs-python.i386 0:1.5.5-7.el5 autofs.i386 1:5.0.1-0.rc2.55 bind-libs.i386 30:9.3.3-10.el5 bind-utils.i386 30:9.3.3-10.el5 binutils.i386 0:2.17.50.0.6-5.el5 centos-release.i386 10:5-1.0.el5.centos.1 centos-release-notes.i386 0:5.1.0-2 cluster-cim.i386 0:0.10.0-5.el5.centos cluster-snmp.i386 0:0.10.0-5.el5.centos conman.i386 0:0.1.9.2-8.el5 coolkey.i386 0:1.1.0-5.el5 cpp.i386 0:4.1.2-14.el5 cpuspeed.i386 1:1.2.1-1.48.el5 cracklib.i386 0:2.8.9-3.3 cracklib-dicts.i386 0:2.8.9-3.3 crash.i386 0:4.0-4.6.1 device-mapper.i386 0:1.02.20-1.el5 device-mapper-multipath.i386 0:0.4.7-12.el5 dhclient.i386 12:3.0.5-7.el5 dmraid.i386 0:1.0.0.rc13-4.el5 e2fsprogs.i386 0:1.39-10.el5 e2fsprogs-libs.i386 0:1.39-10.el5 emacs.i386 0:21.4-19.el5 emacs-common.i386 0:21.4-19.el5 emacs-leim.i386 0:21.4-19.el5 fetchmail.i386 0:6.3.6-1.1.el5 firstboot.noarch 0:1.4.27.3-1.el5.centos firstboot-tui.noarch 0:1.4.27.3-1.el5.centos freetype.i386 0:2.2.1-19.el5 gfs-utils.i386 0:0.1.12-1.el5 gfs2-utils.i386 0:0.1.38-1.el5 gtk2.i386 0:2.10.4-19.el5 httpd.i386 0:2.2.3-11.el5.centos httpd-manual.i386 0:2.2.3-11.el5.centos hwdata.noarch 0:0.211-1 initscripts.i386 0:8.45.17.EL-1.el5.centos.1 irqbalance.i386 2:0.55-6.el5 kexec-tools.i386 0:1.101-194.4.el5 kpartx.i386 0:0.4.7-12.el5 krb5-libs.i386 0:1.6.1-17.el5 krb5-workstation.i386 0:1.6.1-17.el5 kudzu.i386 0:1.2.57.1.15-1.el5.centos libacl.i386 0:2.2.39-2.1.el5 libgcc.i386 0:4.1.2-14.el5 libpcap.i386 14:0.9.4-11.el5 libselinux.i386 0:1.33.4-4.el5 libselinux-python.i386 0:1.33.4-4.el5 libstdc++.i386 0:4.1.2-14.el5 libuser.i386 0:0.54.7-2.el5.2 libvolume_id.i386 0:095-14.9.el5 luci.i386 0:0.10.0-6.el5.centos.1 lvm2.i386 0:2.02.26-3.el5 lvm2-cluster.i386 0:2.02.26-1.el5 man-pages.noarch 0:2.39-10.el5 mcstrans.i386 0:0.2.6-1.el5 mesa-libGL.i386 0:6.5.1-7.5.el5 microcode_ctl.i386 1:1.17-1.42.el5 mkinitrd.i386 0:5.1.19.6-19 mod_ssl.i386 1:2.2.3-11.el5.centos modcluster.i386 0:0.10.0-5.el5.centos module-init-tools.i386 0:3.3-0.pre3.1.34.el5 nash.i386 0:5.1.19.6-19 nfs-utils.i386 1:1.0.9-24.el5 nspr.i386 0:4.6.5-3.el5 nss.i386 0:3.11.7-1.3.el5.centos nss-tools.i386 0:3.11.7-1.3.el5.centos nss_ldap.i386 0:253-5.el5 ntp.i386 0:4.2.2p1-7.el5 openais.i386 0:0.80.3-7.el5 openldap.i386 0:2.3.27-8 openldap-clients.i386 0:2.3.27-8 openssh.i386 0:4.3p2-24.el5 openssh-clients.i386 0:4.3p2-24.el5 openssh-server.i386 0:4.3p2-24.el5 pam.i386 0:0.99.6.2-3.26.el5 pam_krb5.i386 0:2.2.14-1 parted.i386 0:1.8.1-12.el5 pkinit-nss.i386 0:0.7.3-1.el5 pm-utils.i386 0:0.99.3-6.el5.centos.17 policycoreutils.i386 0:1.33.12-12.el5 popt.i386 0:1.10.2-47.el5 prelink.i386 0:0.3.9-2.1 redhat-artwork.i386 0:5.1.0-26.el5.centos redhat-logos.noarch 0:4.9.99-8.el5.centos redhat-lsb.i386 0:3.1-12.3.EL.el5.centos redhat-menus.noarch 0:6.7.8-2.el5 rgmanager.i386 0:2.0.31-1.el5.centos rhpxl.i386 0:0.41.1-1.el5 ricci.i386 0:0.10.0-6.el5.centos.1 rpm.i386 0:4.4.2-47.el5 rpm-libs.i386 0:4.4.2-47.el5 rpm-python.i386 0:4.4.2-47.el5 sabayon.i386 0:2.12.4-5.el5 sabayon-apply.i386 0:2.12.4-5.el5 sysklogd.i386 0:1.4.1-40.el5 system-config-cluster.noarch 0:1.0.50-1.3 system-config-kdump.noarch 0:1.0.12-1.el5 system-config-network.noarch 0:1.3.99-2.el5 system-config-network-tui.noarch 0:1.3.99-2.el5 tcp_wrappers.i386 0:7.6-40.4.el5 tcpdump.i386 14:3.9.4-11.el5 tog-pegasus.i386 2:2.6.1-2.el5 udev.i386 0:095-14.9.el5 vixie-cron.i386 4:4.1-72.el5 xorg-x11-drv-evdev.i386 1:1.0.0.5-3.el5 xorg-x11-drv-vesa.i386 0:1.3.0-8.1.el5 xorg-x11-server-Xnest.i386 0:1.1.1-48.26.el5 xorg-x11-server-Xorg.i386 0:1.1.1-48.26.el5 ypbind.i386 3:1.19-8.el5 yum.noarch 0:3.0.5-1.el5.centos.5 yum-updatesd.noarch 0:3.0.5-1.el5.centos.5
Replaced: sysreport.noarch 0:1.4.3-10.el5
Complete!
[root@localhost ~]# shutdown -r now

Broadcast message from root (xvc0) (Tue Dec 4 11:51:48 2007):

The system is going down for reboot NOW!
INIT: Switching to runlevel: 6
INIT: Sending processes the TERM signal
Shutting down Cluster Module - cluster monitor: [ OK ]
Shutting down ricci: [ OK ]
Stopping HAL daemon: [ OK ]
Shutting down oddjobd: [ OK ]
<<略>>
Unmounting pipe file systems:
Unmounting file systems:
Please stand by while rebooting the system...
md: stopping all md devices.
Restarting system.
.
[root@Dom0 ~]# xm console DomU
Linux version 2.6.18-53.1.4.el5xen (mockbuild@builder6.centos.org) (gcc version 4.1.2 20070626 (Red Hat 4.1.2-14)) #1 SMP Fri Nov 30 01:53:35 EST 2007
BIOS-provided physical RAM map:
Xen: 0000000000000000 - 0000000004800000 (usable)
0MB HIGHMEM available.
<<略>>
Making device-mapper control node
Scanning logical volumes
connect() failed on local socket: Connection refused
WARNING: Falling back to local file-based locking.
Volume Groups with the clustered attribute will be inaccessible.
Reading all physical volumes. This may take a while...
Found volume group "VolGroup00" using metadata type lvm2
Activating logical volumes
connect() failed on local socket: Connection refused
WARNING: Falling back to local file-based locking.
Volume Groups with the clustered attribute will be inaccessible.
Volume group "WARNING:" not found
Volume group "Falling" not found
Volume group "back" not found
Volume group "to" not found
Volume group "local" not found
Volume group "file-based" not found
Volume group "locking." not found
Volume group "Volume" not found
Volume group "Groups" not found
Volume group "with" not found
Volume group "the" not found
Volume group "clustered" not found
Volume group "attribute" not found
Volume group "will" not found
Volume group "be" not found
Volume group "inaccessible." not found
2 logical volume(s) in volume group "VolGroup00" now active
Creating root device.
Mounting root filesystem.
kjournald starting. Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
Setting up other filesystems.
Setting up new root fs
no fstab.sys, mounting internal defaults
Switching to new root and running init.
unmounting old /dev
unmounting old /proc
unmounting old /sys
audit(1196736762.418:2): policy loaded auid=4294967295
INIT: version 2.86 booting
Welcome to CentOS release 5 (Final)
Press 'I' to enter interactive startup.
Setting clock (localtime): Tue Dec 4 11:52:52 JST 2007 [ OK ]
Starting udev: [ OK ]
Setting hostname localhost.localdomain: [ OK ]
Setting up Logical Volume Management: connect() failed on local socket: Connection refused
WARNING: Falling back to local file-based locking.
Volume Groups with the clustered attribute will be inaccessible.
2 logical volume(s) in volume group "VolGroup00" now active
[ OK ]
Checking filesystems
Checking all file systems.
[/sbin/fsck.ext3 (1) -- /] fsck.ext3 -a /dev/VolGroup00/LogVol00
/dev/VolGroup00/LogVol00: clean, 81877/876960 files, 494367/876544 blocks
[/sbin/fsck.ext3 (1) -- /boot] fsck.ext3 -a /dev/xvda1
/boot: clean, 43/26104 files, 21540/104388 blocks
[ OK ]
Remounting root filesystem in read-write mode: [ OK ]
Mounting local filesystems: [ OK ]
Enabling local filesystem quotas: [ OK ]
Enabling /etc/fstab swaps: [ OK ]
INIT: Entering runlevel: 3
Entering non-interactive startup
Starting monitoring for VG VolGroup00: connect() failed on local socket: Connection refused
WARNING: Falling back to local file-based locking.
Volume Groups with the clustered attribute will be inaccessible.
2 logical volume(s) in volume group "VolGroup00" monitored
[ OK ]
Checking for hardware changes [ OK ]
Applying ip6tables firewall rules: [ OK ]
Applying iptables firewall rules: [ OK ]
Loading additional iptables modules: ip_conntrack_netbios_ns [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface eth0:
Determining IP information for eth0... done.
[ OK ]
Starting restorecond: [ OK ]
Starting auditd: [ OK ]
Starting system logger: [ OK ]
Starting kernel logger: [ OK ]
Starting irqbalance: [ OK ]
Starting mcstransd: [ OK ]
Starting portmap: [ OK ]
Starting setroubleshootd: [ OK ]
Starting RPC idmapd: [ OK ]
Starting system message bus: [ OK ]
Mounting other filesystems: [ OK ]
Starting autofs: Loading autofs4: [ OK ]
Starting automount: [ OK ]
[ OK ]
Starting snmpd: [ OK ]
Starting sshd: [ OK ]
Starting ntpd: [ OK ]
Starting sendmail: [ OK ]
Starting sm-client: [ OK ]
Starting console mouse services: [ OK ]
Starting crond: [ OK ]
Starting xfs: [ OK ]
Starting anacron: [ OK ]
Starting atd: [ OK ]
Starting HAL daemon: [ OK ]
Starting oddjobd: [ OK ]
Starting Cluster Module - cluster monitor: Setting verbosity level to LogBasic
[ OK ]
Starting ricci: [ OK ]

CentOS release 5 (Final)
Kernel 2.6.18-53.1.4.el5xen on an i686

localhost.localdomain login: root
Password:パスワード
Last login: Tue Dec 4 11:30:04 from SomeHost
[root@localhost ~]# rpm -q centos-release
centos-release-5-1.0.el5.centos.1
[root@localhost ~]# cat /etc/redhat-release
CentOS release 5 (Final)
[root@localhost ~]#

2007/06/21

PXEブートできない場合のネットワークインストール

PXEインストールは、ブートCD/DVDを使わずに、ネットワーク経由でOSをインストールする方法だ。これに関して、『CentOS 5でXenを使ってみる』でちょっとだけ触れた。

PXEインストールは、当然だがPXEブートに対応したBIOS/NICを持つマシンでしか利用できない。また、PXEブートに対応していても、なぜかTFTPに失敗してPXEインストールできない場合もあるようだ(手元の富士通FMV 6350CLではPXEインストールできなかった)。そういった場合にネットワークインストールをする方法。

Fedora/Fedora Coreの場合であれば、Rescue CDを使ってインストールする。途中でインストール元を選択する画面が出るので、そこでHTTPなりFTPなりを選択する。

一方、CentOSにはRescue CDが準備されていない。CentOSの場合は、CDの一枚目だけを準備しておき、起動直後のboot:プロンプトの時点で、
boot: linux askmethod
と入力し、[Enter]キーを押す。すると、Fedora/Fedora Coreと同様、インストールプロセスが開始され、途中でインストール元を選択する画面が現れる。

2007/06/01

ローカルミラーレポジトリ・その5・レポジトリの利用

ローカルミラーレポジトリシリーズ第五回。ローカルミラーを使って各サーバを更新できるよう設定する。

コマンドyumやその他yum関係のユーティリティは、設定ファイル/etc/yum.confおよび、/etc/yum.repos.d/*.repoを読み込む。公開レポジトリは、/etc/yum.repos.d/CentOS-Base.repoの中で記述されている。これをローカルレポジトリに変更すればよい。
# cd /etc/yum.repos.d
# mv CentOS-Base.repo CentOS-Base.repo.dist
# cat CentOS-Base.repo.dist | sed 's/mirrorlist=/#mirrorlist=/
s/#baseurl=/baseurl=/
s/mirror.centos.org/centos.repository.localdomain/' > CentOS-Base.repo
#
ホスト名の部分centos.repository.localdomainは、各環境に合わせて変更する。
後は通常と同じようにyum update等を実行する。実際にローカルレポジトリへアクセスしているかどうかは、ローカルレポジトリサーバのHTTPサーバのアクセスログを見てみればよい。

ローカルミラーレポジトリ・その1・概要
ローカルミラーレポジトリ・その2・レポジトリの準備と公開
ローカルミラーレポジトリ・その3・Baseレポジトリ
ローカルミラーレポジトリ・その4・レポジトリの更新(reposync & createrepo)
ローカルミラーレポジトリ・その5・レポジトリの利用

2007/05/31

ローカルミラーレポジトリ・その4・レポジトリの更新(reposync & createrepo)

ローカルミラーレポジトリシリーズ第四回。前回は、更新されないBaseレポジトリを構築したが、今回はUpdatesやExtrasなど、随時更新されるレポジトリを構築・運用する。

第一回目で書いた通り、公式レポジトリの内、Baseを除くUpdates、Addons、Extras、PlusおよびContribは、随時更新されるレポジトリなので、定期的に内容を同期(ミラーリング)しなければならない。同期する手段は、
  • lftpコマンドのmirrorコマンドを利用する
  • rsyncを利用する
  • reposyncコマンドを利用する
等の方法があるが、今回は最後のreposyncコマンドを利用する方法を紹介する。

このreposyncコマンドは、yumレポジトリの同期を取るコマンドで、yum-utilsパッケージに収録されている。もしこのパッケージがインストールされていなければ、インストールする。
# yum install yum-utils
reposyncコマンドのmanページは無い様だ。使い方は、reposync --helpを実行して確認する。

まず、レポジトリ管理は、root権限を必要としないので、レポジトリを管理するユーザを作成する。これは既存のユーザを流用してもいいが、レポジトリが汚染されると一大事なので、これ専用のユーザを準備し、レポジトリの所有者を変更する。
# useradd -c "Repository Maintainer" -d /home/reposer reposer
# cd /var/www/html/
# chown -R reposer.reposer centos/
以後、レポジトリに対する操作は、このユーザの権限で行う。

CentOSのレポジトリは通常、以下のようなディレクトリ構造を持つ。
$ pwd
/var/www/html
$ find . -type d
.
./centos
./centos/5
<<略>>
./centos/5/extras
./centos/5/extras/i386
./centos/5/extras/i386/repodata
./centos/5/contrib
<<略>>
repodataというディレクトリは、yumが利用するメタデータを格納したディレクトリで、RPMSは文字通り、RPMパッケージが格納されている。目標は、これと同じ構造をローカルに作ること、ということになる。

しかし、reposyncコマンドは、このようなディレクトリ構造を生成しない。例えば、
$ ls
$ reposync -r extras
Loading "installonlyn" plugin
Downloading Terminal-0.2.6-2.i386.rpm
<<略>>
Downloading yumex-1.2.2-1.0.el5.centos.noarch.rpm
$ find . -type d
.
./extras
./extras/RPMS
$
まず、パス中にi386ディレクトリが抜かれているし、repodataディレクトリも存在していない。これを解決するために、reposyncの実行に先立ち、必要なディレクトリ構造及びシンボリックリンクを作成するスクリプトCreateRepoDirs.sh/var/www/html/centos/5へ移動した後実行する。
$ cat CreateRepoDirs.sh
#!/bin/bash
REPOSITORIES="updates addons extras centosplus"
TOP=$PWD
for repository in $REPOSITORIES
do
repo_path=$TOP/$repository
mkdir $repo_path
mkdir $repo_path/RPMS
ln -s $repo_path/RPMS $repo_path/i386
done
続いて、パッケージをダウンロードするスクリプトCentOS-repository-mirror.shを準備する。Cronで実行するだけなので、どこに置いても構わないが、私は、/usr/local/sbinの下に置いた。
$ cat CentOS-repository-mirror.sh
#!/bin/bash
LANG=C
REPOSITORIES="updates addons extras centosplus"
TOP=$PWD
echo "## `date`: BEGIN MIRRORING"
for repository in $REPOSITORIES
do
echo "#### `date`: BEGIN REPOSITORY $repository"
repo_path=$TOP/$repository
reposync -c /usr/local/etc/yum.conf -r $repository
createrepo -v $repo_path/RPMS
echo "#### `date`: END REPOSITORY $repository"
done
echo "## `date`: END MIRRORING"
$
わざわざreposyncの設定ファイルを/usr/local/etc/yum.confに準備しているのは、パッケージを更新するのに参照するのをローカルミラーレポジトリに、reposyncが参照するのを公開ミラーレポジトリに変更するため。次のcreaterepoコマンドは、メタデータ(repodata)を作成するコマンド。
/usr/local/etc/yum.confの内容は以下の通り。
$ cat yum.conf
[main]
reposdir=/usr/local/etc/yum.repos.d
$
/usr/local/etc/yum.repos.dには/etc/yum.repos.d/CentOS-Base.repoをコピーしておく(BaseとContribは不要なので、セクションごとコメントアウトした方がいいかもしれない)
後は、/var/www/html/centos/5に移動して、CentOS-repository-mirror.shを実行すればOKだ。

これらのレポジトリは、随時更新されるので、このコマンドを定期的に実行するといいだろう。これは、ユーザreposerの権限でcronにより実行する。ユーザreposerでコマンドcrontab -eを実行し、ユーザのreposerのcrontabに以下の行を追加する。
13 2 * * * cd /var/www/html/centos/5; mv -f mirror.log mirror.log.old; /usr/local/sbin/CentOS-repository-mirror.sh > mirror.log 2>&1
上の設定は、毎日2:13にレポジトリを更新する例。時刻は環境に応じて変更する。

最後にPGPのキーをインストールする。CentOS 5のPGPのキーは、http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5にあるので、これを/var/www/html/centosに置く。
$ cd /var/www/html/centos
$ wget http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

ローカルミラーレポジトリ・その1・概要
ローカルミラーレポジトリ・その2・レポジトリの準備と公開
ローカルミラーレポジトリ・その3・Baseレポジトリ
ローカルミラーレポジトリ・その4・レポジトリの更新(reposync & createrepo)
ローカルミラーレポジトリ・その5・レポジトリの利用

ローカルミラーレポジトリ・その3・Baseレポジトリ

ローカルミラーレポジトリシリーズ第三回。レポジトリの内、更新されないBaseについて準備する。

第二回で、レポジトリを置くディレクトリを/var/www/html/centos/5とした。Baseは、この下の/var/www/html/centos/5/os以下に置くことにする。今回は、i386アーキテクチャの分のみを準備するので、この下の
/var/www/html/centos/5/os/i386
以下に必要なファイルを置くことになる。

もし、CentOS5用のDVDを持っているのなら、そのDVDの内容をすべてここにコピーすればよい。
そうでない場合は、そのDVDのISOイメージをダウンロードし、ここにマウントする。ISOイメージは、CentOSのミラーサイトからダウンロードできる(できないミラーサイトもある)が、可能な限りbittorrentを利用してもらいたい。イメージファイルは、公開ミラーサイトに合わせて、
/var/www/html/centos/5/isos/i386
に置ことにする。以下の通り、必要なディレクトリを作成する。
# mkdir -p /var/www/html/centos/5/os/i386
# mkdir -p /var/www/html/centos/5/isos/i386
念のため、md5sum.txtもしくはsha1sum.txtと、ダウンロードしたファイルのチェックサムを確認して欲しい。
# md5sum /var/www/html/centos/5/isos/i386/CentOS-5.0-i386-bin-DVD.iso


ISOイメージをダウンロードしたら、これをマウントする。/etc/fstabに次の行を追加する。
/var/www/html/centos/5/isos/i386/CentOS-5.0-i386-bin-DVD.iso /var/www/html/centos/5/os/i386 iso9660 loop,ro 0 0
再起動するか、mount -aコマンドを実行するとマウントされるはずだ。mountコマンドを引数なしで実行するか、ls /var/www/html/centos/5/os/i386コマンドを実行して、ファイルがあることを確認する(マウントできていなければ、空になっている)

なお、ローカルレポジトリを運用しているマシンでSELinuxが動作している場合、BaseのURL http://centos.repository.localdomain/centos/5/os/i386にアクセスできない場合がある。これを回避するには、SElinuxによるHTTPサーバ保護を無効(コマンドsetsebool -P httpd_disable_trans 1を実行)にするか、ISOイメージを一旦別のところにマウントし、その内容をコピーする。
# mkdir /mnt/CentOS5.0
# mount /var/www/html/centos/5/isos/i386/CentOS-5.0-i386-bin-DVD.iso /mnt/CentOS5.0 -t iso9660 -o loop,ro
# cp -rp /mnt/CentOS5.0/* /var/www/html/centos/5/os/i386
# umount /mnt/CentOS5.0
不要であれば、ISOイメージは削除してもよい。

ローカルミラーレポジトリ・その1・概要
ローカルミラーレポジトリ・その2・レポジトリの準備と公開
ローカルミラーレポジトリ・その3・Baseレポジトリ
ローカルミラーレポジトリ・その4・レポジトリの更新(reposync & createrepo)
ローカルミラーレポジトリ・その5・レポジトリの利用