3. メンテナンス・トラブルシュート - pkg・ports アップデート関連 - freebsd-update - 8.4-RELEASE から 9.3-RELEASE へ - perl のバージョンアップ

 
 freebsd-update により、OS のバージョンをあげたら、perl のバージョンが古いことが判明しました。
3.1 能書き
3.2 前準備
3.3 perl 5.22 インストール
3.4 perl 5.24 削除

3.1 前準備

 現在 5.14 が稼働中なのですが、既に 5.20 まで ports に存在するではないか。  やれやれ、以前に perl のバージョンアップ時は苦労した思い出があるからなぁ。  とこの記事を書いたのが 2015年5月10日で、2015年5月31日にやっと作業にかかろうと思ったら、やや、perl 5.22 があるではないですか、ということで、perl 5.22 へのバージョンアップとなります。焦ってバージョンアップしてなくてよかった。  と思ったら、一度にあげるんじゃなかった。下にぐだぐだ書いていますが、次にチャンスがあればもっとうまくやりたいと思います。  結論めいたことを言えば、perl は 4 とびこしは共存できないので  perl5.14 から perl5.22 にあげるには perl5.16 を install perl5.18 を install perl5.14 を deinstall perl5.20 を install perl5.16 を deinstall perl5.22 を install perl5.18 を deinstall  という手順でインストールして、その途中で依存関係をうまく解消していくしかなさそうです。  perl5.22 が出るまで 5.14 のままほったらかしていた、わたしが悪い…と。なので、perl はときどきリリース状況を見て、こまめにバージョンアップしましょう。  (クリーンインストールした方が早かったような気がする 汗)

3.2 前準備

 例のごとく、データベースとシステムのバックアップをとります。  「8.1 計画」のときと同じ要領で。

3.3 perl 5.22 インストール

 perl 5.14 を先に消すのか perl 5.22 を先にインストールするのかという問題がありますが、現在稼働しているアプリケーションで perl 5.14 を使用している者がある以上、perl 5.22 を先にインストールするのが筋でしょう。  ということで、

> /usr/ports/lang/perl5.22
> make
> make install
 make の時点で

===>  perl5.22-5.22.0.r2 conflicts with installed package(s):
      perl5.14-5.14.4_14

      They install files into the same place.
      You may want to stop build with Ctrl + C.
 と出ちゃってますが・・・。ままよ。  make install の時点で

> make install
===>  Installing for perl5.22-5.22.0.r2
===>  Checking if perl5.22 already installed
===>   Registering installation for perl5.22-5.22.0.r2
Installing perl5.22-5.22.0.r2...
pkg-static: perl5.22-5.22.0.r2 conflicts with perl5.14-5.14.4_14 (installs files into the same place).  Problematic file: /usr/local/bin/c2ph
*** [fake-pkg] Error code 70

Stop in /usr/ports/lang/perl5.22.
*** [install] Error code 1

Stop in /usr/ports/lang/perl5.22.
 やはり、無理があったか・・・。  いったんサーバアプリケーションを停止して、

3.4 perl 5.14 削除


> pkg delete perl5.14
Updating database digests format: 100%
Checking integrity... done (0 conflicting)
Deinstallation has been requested for the following 80 packages (of 0 packages in the universe):

Installed packages to be REMOVED:
        perl5.14-5.14.4_14
        autoconf-2.69
        help2man-1.43.3_1

		~ 中 略 ~

        suphp-0.7.2_1
        mod_dav_svn-1.8.13
        mod_php5-5.4.41,1

The operation will free 281 MiB.

Proceed with deinstalling packages? [y/N]:
 これはおそろしくインストールしなおさなければならなくなるのだな・・・。削除して

> /usr/ports/lang/perl5.22
> make install
 サーバアプリケーションを起動しようとして。おお、サーバアプリケーションそのものが消えているのがあるではないかこれらは、clean して install だな

> /usr/ports/www/apache22
> make clean
> make
> make install
 すると

===>   Registering installation for p5-Locale-gettext-1.05_4 as automatic
pkg-static: Unable to access file /usr/ports/devel/p5-Locale-gettext/work/stage/usr/local/./usr/local/lib/perl5/site_perl/mach/5.14/auto/Locale/gettext/.packlist: No such file or directory
*** [fake-pkg] Error code 74
 はいはい

> /usr/ports/devel/p5-Locale-gettext
> make clean
> make
> make install
 あれ、make install で同じことになる。しょうがないので pkg から install することにする。

> pkg install p5-Locale-gettext
Updating FreeBSD repository catalogue...
Fetching meta.txz: 100%    968 B   1.0kB/s    00:01
Fetching packagesite.txz: 100%    5 MiB   1.3MB/s    00:04
Processing entries: 100%
FreeBSD repository update completed. 24079 packages processed.
Updating database digests format: 100%
The following 60 package(s) will be affected (of 0 checked):

Installed packages to be REMOVED:
        python27-2.7.9_1
        scons-2.3.0_1
        python2-2_3
        python-2.7_2,2
        xcb-proto-1.11
        py27-setuptools27-5.5.1_1
        py27-MarkupSafe-0.23
        py27-Jinja2-2.7.3
        py27-Babel-1.3_2
        py27-pytz-2014.10,1
        py27-sphinx-1.2.3
        py27-pygments-2.0.2
        py27-docutils-0.12
        cmake-3.1.3
        libgd-2.1.0_5,1
        tiff-4.0.4.b_1
        analog-6.0_10,1
        ja-webalizer-2.23.8_3
        ruby21-bdb-0.6.6_4
        ruby-2.1.6,1
        portupgrade-2.4.14,2
        libxslt-1.1.28_6
        libarchive-3.1.2_2,1

New packages to be INSTALLED:
        p5-Locale-gettext: 1.05_4
        perl5: 5.20.2_4
        libXaw: 1.0.12_3,2
        printproto: 1.0.5
        libXp: 1.0.3,1
        libXmu: 1.1.2_3,1

Installed packages to be REINSTALLED:
        gettext-runtime-0.19.4 (ABI changed: 'freebsd:8:x86:32' -> 'freebsd:9:x86:32')
        libiconv-1.14_8 (ABI changed: 'freebsd:8:x86:32' -> 'freebsd:9:x86:32')
        gettext-tools-0.19.4 (ABI changed: 'freebsd:8:x86:32' -> 'freebsd:9:x86:32')
        expat-2.1.0_2 (ABI changed: 'freebsd:8:x86:32' -> 'freebsd:9:x86:32')
        gnupg1-1.4.19 (ABI changed: 'freebsd:8:x86:32' -> 'freebsd:9:x86:32')
        libxml2-2.9.2_2 (ABI changed: 'freebsd:8:x86:32' -> 'freebsd:9:x86:32')
        freetype2-2.5.5 (ABI changed: 'freebsd:8:x86:32' -> 'freebsd:9:x86:32')
        jpeg-8_6 (ABI changed: 'freebsd:8:x86:32' -> 'freebsd:9:x86:32')
        t1lib-5.1.2_4,1 (ABI changed: 'freebsd:8:x86:32' -> 'freebsd:9:x86:32')
        libXau-1.0.8_3 (ABI changed: 'freebsd:8:x86:32' -> 'freebsd:9:x86:32')
        libxcb-1.11_1 (ABI changed: 'freebsd:8:x86:32' -> 'freebsd:9:x86:32')
        libXdmcp-1.1.2 (ABI changed: 'freebsd:8:x86:32' -> 'freebsd:9:x86:32')
        xcb-util-0.4.0_1,1 (ABI changed: 'freebsd:8:x86:32' -> 'freebsd:9:x86:32')
        xcb-util-renderutil-0.3.9_1 (ABI changed: 'freebsd:8:x86:32' -> 'freebsd:9:x86:32')
        libpthread-stubs-0.3_6 (ABI changed: 'freebsd:8:x86:32' -> 'freebsd:9:x86:32')
        libX11-1.6.2_3,1 (ABI changed: 'freebsd:8:x86:32' -> 'freebsd:9:x86:32')
        libXt-1.1.4_3,1 (ABI changed: 'freebsd:8:x86:32' -> 'freebsd:9:x86:32')
        libSM-1.2.2_3,1 (ABI changed: 'freebsd:8:x86:32' -> 'freebsd:9:x86:32')
        libICE-1.0.9_1,1 (ABI changed: 'freebsd:8:x86:32' -> 'freebsd:9:x86:32')
        libXpm-3.5.11_3 (ABI changed: 'freebsd:8:x86:32' -> 'freebsd:9:x86:32')
        libXext-1.3.3_1,1 (ABI changed: 'freebsd:8:x86:32' -> 'freebsd:9:x86:32')
        subversion-1.8.13 (ABI changed: 'freebsd:8:x86:32' -> 'freebsd:9:x86:32')
        serf-1.3.8 (ABI changed: 'freebsd:8:x86:32' -> 'freebsd:9:x86:32')
        gdbm-1.11_2 (ABI changed: 'freebsd:8:x86:32' -> 'freebsd:9:x86:32')
        db5-5.3.28_2 (ABI changed: 'freebsd:8:x86:32' -> 'freebsd:9:x86:32')
        postgresql84-client-8.4.22_1 (ABI changed: 'freebsd:8:x86:32' -> 'freebsd:9:x86:32')
        postgresql84-server-8.4.22_2 (ABI changed: 'freebsd:8:x86:32' -> 'freebsd:9:x86:32')
        oniguruma4-4.7.1_1 (ABI changed: 'freebsd:8:x86:32' -> 'freebsd:9:x86:32')
        unbound-1.5.3_1 (ABI changed: 'freebsd:8:x86:32' -> 'freebsd:9:x86:32')
        bash-4.3.33 (ABI changed: 'freebsd:8:x86:32' -> 'freebsd:9:x86:32')
        libidn-1.29 (ABI changed: 'freebsd:8:x86:32' -> 'freebsd:9:x86:32')

The operation will free 83 MiB.
45 MiB to be downloaded.

Proceed with this action? [y/N]:
 なるほど、FreeBSD 8.4 RELEASE のままのものが相当あるわけね。非常事態なのでしょうがない。思い切って [y]  なんとかインストールできたみたいなので再度

> /usr/ports/www/apache22
> make clean
> make
> make install
 うむ、これは相当時間がかかるなぁ。100% で CPU が動いてますな。並行して他のアプリケーションもインストールしたいが、こういうときあせるとろくなことがないので我慢、我慢。  なんか…その…、SSL エンジン用のファイルを作成しているらしい…。

> /usr/local/etc/rc.d/apache22 configtest
Performing sanity check on apache22 configuration:
httpd: Syntax error on line 109 of /usr/local/etc/apache22/httpd.conf: Cannot load /usr/local/libexec/apache22/mod_dav_svn.so into server: Cannot open "/usr/local/libexec/apache22/mod_dav_svn.so"
 んで

> /usr/ports/www/mod_dav_svn
> make clean
> make
> make install
 apache が動くようになったかと思えば、php が動かない。
/usr/ports/lang/php5
/usr/ports/lang/php5-extensions
/usr/ports/www/mod_php5
 をいれたり
/usr/ports/editors/vim
/usr/ports/mail/spamassassin
 をいれたり、もう整理できなくらいいろいろなことがあって…。  どうしてもはいらないようなものは pkg でインストールしたりして…。上の結論に達するのです。