[an error occurred while processing this directive]
■ 【ぷろじぇくと ぞうさん】 〜E-Bananaサーバ 構築日記〜

目次に戻る
1日目 2日目 3日目 4日目 5日目 6日目 7日目
8日目 9日目 10日目 11日目 12日目 13日目 14日目
15日目 16日目 17日目 18日目 19日目 20日目 21日目
22日目 23日目 24日目 25日目 26日目 27日目 28日目
29日目 30日目 31日目 32日目 33日目 34日目 35日目
36日目 37日目 38日目 39日目 40日目 41日目 42日目
43日目 44日目 45日目 46日目 47日目 48日目 49日目
50日目 51日目 52日目 53日目 54日目 55日目 56日目
57日目 58日目 59日目 60日目 61日目 62日目 63日目
64日目 65日目 66日目 67日目 68日目 69日目 70日目
71日目 72日目 73日目 74日目 75日目 76日目 77日目
78日目 79日目 80日目 81日目 82日目 83日目 84日目
85日目 86日目 87日目 88日目 89日目 90日目 91日目
92日目 93日目 94日目 95日目 96日目 97日目 98日目
99日目 100日目 101日目 102日目 103日目 104日目 105日目
106日目 107日目 108日目 109日目 110日目 111日目 112日目
113日目 114日目 115日目 116日目 117日目 118日目 119日目
120日目 121日目 122日目 123日目 124日目 125日目 126日目
127日目 128日目 129日目 130日目 131日目 132日目 133日目
134日目 135日目 136日目 137日目 138日目 139日目 140日目
141日目 142日目 143日目 144日目 145日目 146日目 147日目
148日目 149日目 150日目 151日目 152日目 153日目 154日目
155日目 156日目 157日目 158日目 159日目 160日目 161日目
162日目 163日目 164日目 165日目 166日目 167日目 168日目
169日目 170日目 171日目 172日目 173日目 174日目 175日目
176日目 177日目 178日目 179日目 180日目 181日目 182日目
183日目 184日目 185日目 186日目 187日目 188日目 189日目
190日目 191日目 192日目 193日目 194日目 195日目 196日目
197日目 198日目 199日目 200日目 201日目 202日目 203日目
204日目 205日目 206日目 207日目 208日目 209日目 210日目
211日目 212日目 213日目 214日目 215日目 216日目 217日目
218日目 219日目 220日目 221日目 222日目 223日目 224日目
225日目 226日目 227日目 228日目 229日目 230日目 231日目
232日目 233日目 234日目 235日目 236日目 237日目 238日目
239日目 240日目 241日目 242日目 243日目 244日目 245日目
246日目 247日目 248日目 249日目 250日目 251日目 252日目
253日目 254日目 255日目 256日目 257日目 258日目 259日目
260日目 261日目 262日目 263日目 264日目 265日目 266日目
267日目 268日目 269日目 270日目 271日目 272日目 273日目
274日目 275日目 276日目 277日目 278日目 279日目 280日目
281日目 282日目 283日目 284日目 285日目 286日目 287日目
288日目 289日目 290日目 291日目 292日目 293日目 294日目
295日目 296日目 297日目 298日目 299日目 300日目 301日目
302日目 303日目 304日目 305日目 306日目 307日目 308日目
309日目 310日目 311日目 312日目 313日目 314日目 315日目
316日目 317日目 318日目 319日目 320日目 321日目 322日目
323日目 324日目 325日目 326日目 327日目 328日目 329日目
330日目 331日目 332日目 333日目 334日目 335日目 336日目
337日目 338日目 339日目 340日目 341日目 342日目 343日目
344日目 345日目 346日目 347日目 348日目 349日目 350日目
351日目 352日目 353日目 354日目 355日目 356日目 357日目
358日目 359日目 360日目 361日目 362日目 363日目 364日目
第107日目:試しに7.2RサーバのPerlを5.10にupgradeしてみました。

どうも、('A`)です。
今日はひっそり&こっそり更新です。

さて、今回はFreeBSD 8.0-BETA2が出るのを待っている傍らで、7.2RのサーバのPerlを
5.8.8から5.10にアップグレードしてみようかな、と思いアップグレードの方法を
勉強していました。
最初に結論から言うと、OSのバージョンによって、以下の様な結果になりました。
7.0R amd64 :失敗
        (依存関係のあるパッケージの再インストール時にエラー。詳しくは後述)
7.2R amd64 :成功
8.0BETA1 amd64 :成功

えーと、方法を確立したという事で、まだ正式リリースではないので、あしからず。
(会社の中で徹底的にテストしてもらわなきゃいけないのですよ・・・)

いやあ、、、単純にpkg_delete/pkg_addじゃあダメなのね・・・
Perlって他のアプリケーションソフトが依存関係を結んでいるので、pkg_deleteしようものなら
「その前にこいつらを削除してよっ」とズラズラとアプリケーションの一覧が表示されます。
うーん、うーん。
で、依存関係も考慮しながらアップグレードする方法として portupgrade を使う方法が
あります。まずは、最新のportsを手にいれましょう。
Perl5.10は7.x系を例にすると、7.2Rからportsライブラリにperl-5.10.0_2として登場します。
それ以前のportsには入っていないのです。

最新のPortsを取得する方法としては、この日記でも何度かご紹介しましたcvsupを使います。
pkg_add http://banana244.maido3.com/~pkg/ports/amd64/packages-7.0-release/All/cvsup-without-gui-16.1h_3.tbz
で、supfileを以下の様に記述してみます。
(今回は札幌に設置している社内サーバを使うので、取得元を日本のFTPサーバにしています。)

[supfile (/root/FreeBSD7.2-standard-supfile.v1) の中身]
*default host=cvsup.jp.FreeBSD.org
*default base=/var/db
*default prefix=/usr
*default release=cvs tag=.
#*default release=cvs tag=RELENG_7_2
*default delete use-rel-suffix
*default compress
ports-all
Portsの場合本家サイトのハンドブックでも書いているのですが「tag=.」と書いて下さい。

で、アップグレード作業の際に注意してもらいたいのは、Portsを格納したり、コンパイル時に
作られるオブジェクト(obj)を格納するディレクトリがあるパーティションが領域不足で
あふれたりしないように手当して置いて下さい。
(T-Bananaサーバのパーティション構成は / 1GB、/usr 2GB、/var 8GB、/home 207GB
SWAP 8GBとなっていまして、、、('A`)の場合は /usr/ports と /usr/obj を /home上に
仮で作りました。/usrが2GBだと、領域が足りなくなりますので。)
mkdir /home/admin/obj
mkdir /home/admin/ports
ln -s /home/admin/obj /usr/obj
ln -s /home/admin/ports /usr/ports
で、ここまで準備できたら、こんな風にcvsupを実行してportsを取得します。
cvsup -g -L2 /root/FreeBSD7.2-standard-supfile.v1

最新のportsを手に入れたら、まずはportupgradeをインストールします。
まずはportupgradeのある処までcdコマンドで移動します。
cd /usr/ports/ports-mgmt/portupgrade
次に以下のコマンドを実行します。
make config-recursive
この時にオプションを指定する子画面が表示されますが、矢印キー
(←、→)で「CANCEL」->「OK」の順にカーソルを移動させ、抜けます。
次に以下のコマンドを実行します。
make install clean
最後にrehashをしてハッシュテーブルの再構築をし、コマンドが認識するようにします。
rehash

さて、これでperlをアップグレードする下準備が終わりました。
では、Perlをアップグレードしましょう。
まず、以下のコマンドを実行します。
pkgdb -Ff
これはパッケージ管理のデータベース(パッケージデーターベースと呼ばれます。)を
更新し、パッケージの依存関係に万一誤りがあれば修正します。
この方法は/usr/ports/UPDATINGというファイルにこんな風に書かれています。
20090328:
  AFFECTS: users of lang/perl*
  AUTHOR: skv@FreeBSD.org

  lang/perl5.10 is out. If you want to switch to it from, for example
  lang/perl5.8, that is:

  Portupgrade users:
    0) Fix pkgdb.db (for safety):
        pkgdb -Ff

    1) Reinstall perl with new 5.10:
        portupgrade -o lang/perl5.10 -f perl-5.8.\*

    2) Reinstall everything that depends on Perl:
        portupgrade -fr perl

  Portmaster users:
        portmaster -o lang/perl5.10 lang/perl5.8
        portmaster -r perl\*
ここで pkgdb -Ff を実行した時にソースからインストールした
Speedy-CGIの情報が修正されます。
T-BananaサーバではSpeedy-CGIはソースコードをコンパイルしてインストール
しています。が、その際にパッケージデータベースには以下の様に認識されます。

bsdpan-CGI-SpeedyCGI-2.22 SpeedyCGI - Speed up perl scripts by running them persisten
これが pkgdb -Ff 実行しに以下の様な認識に変更されます。
w44# pkgdb -Ff
--->  Checking the package registry database
[Rebuilding the pkgdb  in /var/db/pkg ... - 120 packages found (-0 +120) 
....................................................................................................
100.................... done]
Missing origin: bsdpan-CGI-SpeedyCGI-2.22
/usr/ports/INDEX-7.bz2                        100% of 1262 kB  416 kBps
done
[Updating the portsdb  in /usr/ports ... - 20379 port entries found .........1000
.........2000.........3000.........4000.........5000.........6000.........7000.........8000
.........9000.........10000.........11000.........12000.........13000.........14000.........15000
.........16000.........17000.........18000.........19000.........20000... ..... done]
(? bsdpan-CGI-SpeedyCGI-2.22)Fixed. (-> www/p5-CGI-SpeedyCGI)
w44# 
で、次に以下のコマンドを実行します。

portupgrade -o lang/perl5.10 -f perl-5.8.\*

これは単にperl5.10だけをインストールします。
CPANからソースのtarボールを取得してきてインストールされます。
(依存関係とかの修正とかは行われません。なので、ここで作業を終えてはいけません。
必ず以下のコマンドを実行して下さい。

portupgrade -fr perl

このコマンドを実行すると、まずは perl5.10が一度再インストールされます。で、次に
パッケージデーターベース(/var/db/pkg/)で登録されている各パッケージでperlと関連を
持っているものが見つかると、そのパッケージを/usr/ports/ディレクトリに格納されている
ソースコード(またはバイナリ)を使って再インストールしていきます。
もしも/usr/portsに必要なパッケージが見当たらない場合には、外部から取得してきます。
これは通常のパッケージインストールと同じ動きです。

正直ここがすごく時間がかかるのです。。。
パッケージの再インストール時に時々オプションを指定する子画面が表示されますが、
矢印キー(←、→)で「CANCEL」->「OK」の順にカーソルを移動させ、抜けて下さい。
パラメータの値はいじらなくて大丈夫です。
p5-なんちゃら系はもちろん、ImageMagickとかも再インストール対象になってしまいます。
(ちなみにFreeBSD 7.0Rではこの段階で以下のエラーになりました。トホホ・・・)
===>   Compressing manual pages for shared-mime-info-0.60_1
===>   Registering installation for shared-mime-info-0.60_1
===>  Cleaning for intltool-0.40.6
===>  Cleaning for p5-XML-Parser-2.36
===>  Cleaning for shared-mime-info-0.60_1
--->  Cleaning out obsolete shared libraries
[Updating the pkgdb  in /var/db/pkg ... - 178 packages found (-0 +1) . done]
--->  Skipping 'x11-toolkits/gtk20' (gtk-2.12.1_1) 
because a requisite package 'pango-1.18.3' (x11-toolkits/pango) failed (specify -k to force)
--->  Skipping 'editors/emacs' (emacs-22.1_2) 
because a requisite package 'pango-1.18.3' (x11-toolkits/pango) failed (specify -k to force)
** Listing the failed packages (-:ignored / *:skipped / !:failed)
        ! x11-toolkits/pango (pango-1.18.3)     (configure error)
        * x11-toolkits/gtk20 (gtk-2.12.1_1)
        * editors/emacs (emacs-22.1_2)

アップグレードにかかる時間は、だいたい1時間半くらい見ておいたらいいかと思います。
成功すれば実行後にrehashして perl -v と叩くと
w44# perl -v

This is perl, v5.10.0 built for amd64-freebsd

Copyright 1987-2007, Larry Wall

Perl may be copied only under the terms of either the Artistic License or 
the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl".  If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.

w44#
と表示されます。試しにテストのCGIを動かしてみても、ちゃんと動いた。
Speedyの方も動いた。とりあえず、よかったよかった。
まあ、アップグレードのやり方が確立できただけでもよしとしましょう。
(でも、7.0Rでうまくいかなかったのは残念。たぶん5.10は7.0と7.1では
入れられないかも)
あ、そうだ。ソースからインストールしていたSpeedyCGIはこの再インストールによって、
こんな風になります。
bsdpan-CGI-SpeedyCGI-2.22 SpeedyCGI - Speed up perl scripts by running them persistently

     ↓

p5-CGI-SpeedyCGI-2.22_4 Speed up perl CGI scripts by running them persistently

さて、今週はBETA2が発表されるのか?楽しみです。
それでは、また。


【絵日記 7/13】

 |
 |  ('A`)    今日も雨、なのだ・・・
/ ̄ノ( ヘヘ ̄ ̄

えー、「北海道には梅雨が無い」などと言われていますが、今年は例年になく雨の日が続いて、
天候不順の日が続いています。
通常6、7月の北海道って晴れの日が多いのですが、今年はYOSAKOIも北海道神宮のお祭りも
雨に振られてしまいました。日照時間も過去最少とニュースになりました。
今年は夏が来るのかなあ・・・とちょっと心配。
あと農作物の収穫がどうなるかも心配です。。。
あー、そうだ。来週の水曜日(7/22)は日食の日だ。
('A`)の会社の近くには「札幌市青少年科学館」がありまして、当日9:30から日食観望会が
行われます。
日食なんて滅多に見れないので、当日雨が降らなければいいなあ・・・


106日目に戻る。   108日目に続く。

目次に戻る
1日目 2日目 3日目 4日目 5日目 6日目 7日目
8日目 9日目 10日目 11日目 12日目 13日目 14日目
15日目 16日目 17日目 18日目 19日目 20日目 21日目
22日目 23日目 24日目 25日目 26日目 27日目 28日目
29日目 30日目 31日目 32日目 33日目 34日目 35日目
36日目 37日目 38日目 39日目 40日目 41日目 42日目
43日目 44日目 45日目 46日目 47日目 48日目 49日目
50日目 51日目 52日目 53日目 54日目 55日目 56日目
57日目 58日目 59日目 60日目 61日目 62日目 63日目
64日目 65日目 66日目 67日目 68日目 69日目 70日目
71日目 72日目 73日目 74日目 75日目 76日目 77日目
78日目 79日目 80日目 81日目 82日目 83日目 84日目
85日目 86日目 87日目 88日目 89日目 90日目 91日目
92日目 93日目 94日目 95日目 96日目 97日目 98日目
99日目 100日目 101日目 102日目 103日目 104日目 105日目
106日目 107日目 108日目 109日目 110日目 111日目 112日目
113日目 114日目 115日目 116日目 117日目 118日目 119日目
120日目 121日目 122日目 123日目 124日目 125日目 126日目
127日目 128日目 129日目 130日目 131日目 132日目 133日目
134日目 135日目 136日目 137日目 138日目 139日目 140日目
141日目 142日目 143日目 144日目 145日目 146日目 147日目
148日目 149日目 150日目 151日目 152日目 153日目 154日目
155日目 156日目 157日目 158日目 159日目 160日目 161日目
162日目 163日目 164日目 165日目 166日目 167日目 168日目
169日目 170日目 171日目 172日目 173日目 174日目 175日目
176日目 177日目 178日目 179日目 180日目 181日目 182日目
183日目 184日目 185日目 186日目 187日目 188日目 189日目
190日目 191日目 192日目 193日目 194日目 195日目 196日目
197日目 198日目 199日目 200日目 201日目 202日目 203日目
204日目 205日目 206日目 207日目 208日目 209日目 210日目
211日目 212日目 213日目 214日目 215日目 216日目 217日目
218日目 219日目 220日目 221日目 222日目 223日目 224日目
225日目 226日目 227日目 228日目 229日目 230日目 231日目
232日目 233日目 234日目 235日目 236日目 237日目 238日目
239日目 240日目 241日目 242日目 243日目 244日目 245日目
246日目 247日目 248日目 249日目 250日目 251日目 252日目
253日目 254日目 255日目 256日目 257日目 258日目 259日目
260日目 261日目 262日目 263日目 264日目 265日目 266日目
267日目 268日目 269日目 270日目 271日目 272日目 273日目
274日目 275日目 276日目 277日目 278日目 279日目 280日目
281日目 282日目 283日目 284日目 285日目 286日目 287日目
288日目 289日目 290日目 291日目 292日目 293日目 294日目
295日目 296日目 297日目 298日目 299日目 300日目 301日目
302日目 303日目 304日目 305日目 306日目 307日目 308日目
309日目 310日目 311日目 312日目 313日目 314日目 315日目
316日目 317日目 318日目 319日目 320日目 321日目 322日目
323日目 324日目 325日目 326日目 327日目 328日目 329日目
330日目 331日目 332日目 333日目 334日目 335日目 336日目
337日目 338日目 339日目 340日目 341日目 342日目 343日目
344日目 345日目 346日目 347日目 348日目 349日目 350日目
351日目 352日目 353日目 354日目 355日目 356日目 357日目
358日目 359日目 360日目 361日目 362日目 363日目 364日目

いま一番お得なページ! 解析
[an error occurred while processing this directive]