2014/02/17(月)FreeBSD 9.1/9.2 における ports/packages 管理に異変

2017/10/12 17:08 サーバ運営・管理
まだ、運用サービスに FreeBSD 10 を入れるのは多少早い感があるので、
当方管轄で FreeBSD 10 を突っ込むのは 2台だけにして、残りは FreeBSD 9.1/8.4 を従来どおり稼動させています。

ですが、ports にてアプリケーションソフトウェアの更新をしていると、
/!\ WARNING /!\
pkg_install EOL is scheduled for 2014-09-01. Please consider migrating to pkgng
http://blogs.freebsdish.org/portmgr/2014/02/03/time-to-bid-farewell-to-the-old-pkg_-tools/
If you do not want to see this message again set NO_WARNING_PKG_INSTALL_EOL=yes in your make.conf
というメッセージが時折出てくるようになりました。

要するに
・ pkg_install ユーティリティは 2014/09/01 には使えなくなる予定です。
・ だから pkgng に切り替えることを検討して欲しいです。
・ このメッセージがウザい場合は、貴方のマシンの /etc/make.conf に
  NO_WARNING_PKG_INSTALL_EOL=yes という設定を追加してください。

というメッセージです。
FreeBSD 9.1/9.2 にて pkgng に切り替えるには、
まず、
/usr/sbin/pkg
を、コマンドラインで実行し、更に、
rehash
pkg2ng
と順番にコマンドラインで実行して、管理データを変換し、最後に /etc/make.conf に
WITH_PKGNG=yes
を追加することで、使用できます。
筆者は、/etc/make.conf への設定追加を忘れて、しばし嵌りました・・orz

(引用:http://www.freebsd.org/doc/ja/books/handbook/pkgng-intro.html 〔5.5. pkgng によるバイナリ package の管理〕)

2014/02/15(土)FreeBSD 10 上で Apache 2.4.7 やPHP は動作しない?

2017/10/12 17:06 サーバ運営・管理
clang 検証作業で最も嵌ったのはこれでした。orz
20140215_2.png

具体的には Apache 2.4.7 + mod_perl 2.0.8(スタティックリンク) + PHP 5.5.9
という組み合わせ。
Apache 2.4 において、mod_perl は公式には使えないですが、Apache 2.4 用にパッチを充てているため、使用可能にしております。

FreeBSD 10.0R の openssl バージョンは 1.0.1e が組み込まれています。
蛇足ですが、openssl のこのバージョンではブラウザ側さえ対応すれば、ネームベースのバーチャルセキュアSSLサーバが提供できるようになります。(普及の足を引っ張っているのは IE なわけだが・・)

まず、clang 環境で構築すると、mod_perl ライブラリをリンクするところで、原因不明の「シンボルが未定義っす。。」みたいなメッセージをかなり大量に吐いてコケます。つまり、「使えそうに無い」のです。
Apache 2.4.7 単体、あるいは動的リンクだと clang 環境でも構築可能かもしれませんが、こちらでは未検証です。

ならば、gcc 環境を強制すればいいのですが、環境変数 CC を gcc に設定するだけでは駄目で、mod_perl 側の Makefile をコンパイル前に書き換える必要があります。

mod_perl のトップディレクトリにて、
 perl -pi -e 's/CC = cc/CC = gcc/' Makefile
 perl -pi -e 's/CC = cc/CC = gcc/' */Makefile
 perl -pi -e 's/CC = cc/CC = gcc/' */*/Makefile
 perl -pi -e 's/CC = cc/CC = gcc/' */*/*/Makefile
 perl -pi -e 's/LD = cc/LD = gcc/' */Makefile
 perl -pi -e 's/LD = cc/LD = gcc/' */*/Makefile
 perl -pi -e 's/LD = cc/LD = gcc/' */*/*/Makefile
 perl -pi -e 's/\tcc \-E/\tgcc \-E/' Makefile
 perl -pi -e 's/\tcc \-E/\tgcc \-E/' */Makefile
 perl -pi -e 's/\tcc \-E/\tgcc \-E/' */*/Makefile
 perl -pi -e 's/\tcc \-E/\tgcc \-E/' */*/*/Makefile
のようにして、コンパイラ gcc 使用を強制させる必要があります。
(このままでは、デフォルトコンパイラ clang 使用が強制されるため)

ところがこのようにして構築しても、Apache 2.4.7 + mod_perl を起動させても、
表示はハングしてしまい、まともに使えません。
Apache 2.4.6 まで使えていた mod_perl の Apache 2.4 パッチが利用できない状況になったのかもしれません。

Apache 2.4.6 であれば、上記の手法にて FreeBSD 10 上で運用できます。

もうひとつの問題は、PHP 5.5.9。
どういうわけか libphp5.so が作成されません。
configure でも shered Library Support は no とされてしまいます。。

原因は判らないが、構築環境の問題であることは確か。
下記ページを参考に、手動で .so ファイルを作成しました。
Permanent Link to How to compile PHP5 on 64bit Linux (CentOS) [hiro345]

ところで、提起ページでいう「かなり長いコマンド」は、実に20000文字近い長さがあり、通常環境では、上手くいきません。こんなときは、バイナリエディトするのです。
unix 環境では、hexedit とかあるのですが、インストールが面倒なので以下で示すようにして、「かなり長いコマンド」をファイルにして、編集しました。こんな感じです:
vimでバイナリを表示し、値を変更したい [rdera ブログ]

これで、こんな感じで構築できました。
20140215_3.png

2014/02/15(土)FreeBSD10 でアプリケーションを構築してみる

2017/10/12 17:04 サーバ運営・管理
freebsd-update だと、named.conf 設定ファイルが消えるとかの報告が入っているので、subversion によるソースコード取得をして、自力構築でやってみました。
この方法だと、構築に要する時間はかかりますが、旧環境は温存できます。

それはさておき、FreeBSD 10 はどんなものか、を把握するために、ちょっとやってみたところが・・・
20140215_1.png

正直、嵌ったので・・・orz
情報で得る内容と、実際に実務作業して得る内容は概して異なることが多いので、こうして経験することが重要なのです。

まず、ports の内部管理方法が変わり、portupgrade コマンドでアプリケーションの更新をしようとすると、「pkgng をインストールしろ」みたいなメッセージが出て怒られてしまい、以下のような手順が表示される :
- switch to pkgng:
    1) Add WITHOUT_PKGNG to /etc/make.conf
    2) Install ports-mgmt/pkg
    3) Convert your package database by running pkg2ng
    4) Remove WITHOUT_PKGNG from /etc/make.conf
提示されたとおりにして、再び portupgrade コマンドでアプリケーションの更新を行うことができました。
portsnap コマンド、portversion コマンドなどは、画面表示が若干変更されていますが、従来どおり使用できます。

気になる(ここからが本題)のが、デフォルトのコンパイラが clang に変わったことによる影響です。
当方では、痒いところに手が届くよう、一部の主要ソフトウェアをソースコードから構築しています。それらソフトウェアに対する影響です。
結果、これに嵌りました・・・ 以下、こちらで判明した内容です。
ただ、十分な確認はしていません。
筆者の通常環境である、環境変数 CC を未定義にしておいたときの状態です。

・Postfix  : clang 環境でも問題無さそう
・dovecot  : clang 環境でも問題無さそう
・PostgreSQL : configure が gcc を強制する。
・OpenLDAP  : clang 環境でも問題無さそう
・Courier-Authlib: configure が gcc を強制する。
・Maildrop  : configure が gcc を強制する。
・ClamAV   : configure が gcc を強制する。
・Apache 2.4 : clang 環境では構築不可。 環境変数 CC で gcc を強制要。
・PHP 5.5  : clang 環境では構築不可。 環境変数 CC で gcc を強制要。
・mod_perl  : clang 環境では構築不可。 環境変数 CC で gcc を強制要。
・rsyncd   : configure が gcc を強制する。
・proftpd  : configure が gcc を強制する。

筆者の環境では、Web サーバにて Apache 2.4 + mod_perl + PHP 5.5 という組み合わせと、 Apache 2.2 + mod_perl + PHP 5.4 という組み合わせで運用しています。

実は、この組み合わせでも嵌ったのですが、別記事にします。

2014/02/13(木)この風景も見納め??

久々に、雪祭り(大通り会場)に行ってきました。
これは駅前通り(国道36号線)の様子。
20140213_1.jpg

左側に三越が見えますが、このあたりから、南4条までこの道路の両脇を路面電車が通ることになります。

ええ、雪解けたら工事が始まるんです。
札幌市からは何も言ってきませんが、中央分離帯に生えている大きい木は、路面電車の架線の安全性確保から見て、撤去されると思います。

札幌で唯一残っている路面電車を、南1条と南4条の間を接続して「ループ化」するという事業。
地元市民の中では、どちらかといえば「反対」の声の方が多い。
#客観的データ取ったわけではないが、当方が会う人は「反対」のほうが圧倒的。

現市長の自己満足的強引な事業と言ってもいい。いますぐ辞めさせたいのは山々だが、今は後釜にまともな人がいないので我慢している、と言う感じ。

この道路、元々片側3車線幅あったわけではなく、1960年代初頭に激しい拡幅反対運動が起き、苦渋の立ち退きをした沿線住民の犠牲の上に拡幅された道路。
ただでさえ渋滞するのに、更に渋滞に拍車かけて、車両締め出して旧市街化しようとでもしているのかの模様。全く現実的ではないんです。

この道路の北側、大通りから札幌駅前までも既に現市長の自己満足事業で歩道が拡幅され、中央分離帯の大木が引き抜かれ、車線が1つ減っています。

変なところにカネかけて、肝心な部分をケチる現市長の行政は、「コンクリートから人へ」と豪語していたどこかの政党と同じ香りです。

2014/02/12(水)MZ-2500 の FDD を修理する - 収納工作編

2017/10/12 6:01 修理や再生など
前回は動作確認まで行い、今回はいかにケースに収納するかを思案した記録です。
構造を検討したところ、以下の材料で収まりました:
20140212_1.jpg
20140212_2.jpg

10mm 角の木材・6mm 角の木材・2.4x16mm の木ネジ
材料費の合計は 270円。

FDDが収まらないため、90度に曲げられていたコーナーをこのように延ばしました。
20140212_3.jpg

このガイドは幅 3mm 、下のFDDドライブから3mm 浮いています。
20140212_4.jpg

長さ 15.8cm に木材を切断し、6mm 角材と 10mm 角材を接着。
この時、面のひとつの高さを合わせる。
20140212_5.jpg

こうすることで、コーナーの段差を無くし、これから上に載せるFDDの土台を形成します。

これは、FDDを抜き差しするときのツマミですが、MZ-2500 本体に空いている穴の位置がずれていて、操作の妨げになるので、数mm 削る必要があります。
20140212_6.jpg

このように、土台をネジで固定。
20140212_7.jpg

更に前後の位置決めに注意しつつ、木ネジでユニットに固定。
20140212_8.jpg

これで、何とかFDDを MZ-2500 に固定できました。

また、MZ-2500 には、時計のバックアップの為にリチウム電池が基板直付けされています。
さすがに 30年近い歳月が経過し、このリチウム電池が逝っていたので、代わりに 単3乾電池を2本を接続しています。
殆ど電気食わないので、単5電池2本でも大丈夫かと思われます。
(リチウム電池は電圧3Vなので、乾電池は2本必要。)
20140212_9.jpg

2014/02/05(水)MZ-2500 の FDD を修理する - 動作確認編

2017/10/12 5:58 修理や再生など
今や、SHARP の名機8bitパソコンと評価されている MZ-2500。
SuperMZ とか、火の鳥とか呼ばれていました。
筆者は 1986年、新品で購入しました。
このシリーズは4つあり、
MZ-2511:FDD 1台・80B/2000モード・フルロジカルコントロールデータレコーダ付き
MZ-2521:FDD 2台・80B/2000モード・フルロジカルコントロールデータレコーダ付き
MZ-2531:MZ-2521 の改良版(SuperMZ V2)
MZ-2520:MZ-2521 から 80B/2000モードとフルロジカルコントロールデータレコーダを取り去ったもの

とあります。Google で検索すると、このあたり結構間違った情報が書かれていますね。30年近く前のパソコンですから無理もありません。

この前、ハードウェア・ファームウェアの開発用として復活させようと(というより、前からやりかたかったがディスプレイが無かったままだったので)、いろいろチェックしていたら、FDDの1台が故障している ことが判明。

SHARP のパソコンは、回路図やBIOS の仕様などが事実上公開されているため、スキルの高いユーザが多い。AT互換機用のFDDが使えないかなと思って google に尋ねたら同じことを考えている人は他にも複数いるようで、どうやらこれでいけそうです。スキルの高いユーザに助けられています。

今回採用したのは、どこかから15年前くらいに貰ってきた CITIZEN のFDD.
たぶん LR102061 という型番ですが、現在は手に入らないと思います。
20140206_1.jpg

AT互換機のFDDはハードウェア的に「ドライブ番号:1」(DS1)と固定しているものが多く、このままでは MZ-2500 においては、「FDドライブ2」と認識されてしまうため、今回は、「ドライブ番号:0」(DS0) と認識させる改造が必要。

既存の故障していないFDDの設定を変える手もありますが、今回はFDDにドライブ番号を設定するジャンバ線があるので、これを DS0 にジャンバを移動させます。
他機種FDDでは、たぶん、配線を切り貼りする必要があります。
20140206_2.jpg

接続は、こんな感じで、このFDDの場合は、既存のFDDと同じ。
20140206_3.jpg

これで電源ONします。

黄色っぽい部分。。
これは本来は中間色表現ですが、液晶ディスプレイのせいなのか、現在のアナログRGBの仕様のせいなのか、うまく表現されません。。
20140206_4.jpg

BASIC-M25(6Z002 Ver 2.0B) が無事起動。
20140206_5.jpg

BASIC-S25(6Z003 Ver 1.0A) も問題なし。
20140206_6.jpg

最も使いたかった P-CP/M(6Z001) も起動しました。
20140206_7.jpg

これで、FDDの修理は出来ました。。
あとは、形状が少し違うので、どう筐体に収めるか。。です。。

ちなみに MZ-2000 モードにて、データレコーダが無事動作することも確認。
こんな感じ:
20140206_8.jpg
20140206_9.jpg

往年のゲームソフトも動作確認。
ハドソンソフトは札幌の会社ですが、当時は技術力が高く、ゲームソフトだけではなく、良質なシステムソフトも売っていました。
前述の BASIC-M25(6Z002) あたりもハドソンソフトが開発を担当した、と言われています。
(このあたり、記憶が曖昧です。。)

コナミかどこかに吸収されて、2012年5月だったと思いますが、消滅してしまいました。。

20140206_A.jpg
20140206_B.jpg

ちなみに当方では自分でゲームソフトを買ったことは殆どありません。
個人的には、パソコンゲームにはあまり興味ありません。
当時の友人が勝手に買って来て、勝手に遊んでいたんです。。(笑)