2012/10/27(土)FreeBSD ports にて cvsup 利用の場合は、portsnap へ移行必要
2017/10/12 5:03
Ports に cvsup が「そのうち(来年2月末に)使えなくなる」という話です。
FreeBSD 本体のソースツリー管理に cvsup をご利用の諸氏は多いと思いますが、現時点ではこちらの方は提供継続のようです。
慣れ親しんだ管理手法が変わるので面倒くさいのですが、提供する側も面倒くさいことしているそうなので。。orz
portsnap というものを cvsup/csup の代わりに使うのですが、
使い方が日本語で以下で掲載されています:
A.6. Portsnap を使う 《リンク切れ確認 2022/11/07》
しかし、cvsup/csup から、 portsnap へ移行する場合は、最初の1回は移行作業が必要で、以下で日本語にて示されています:
5.5. Ports Collection の利用
(このページの 5.5.2. CVSup/csup から portsnap への移行 を参照)
移行には10分程度かかります。コーヒーブレイクでもしながら待ちましょう。 :-)
あとは、portversion,portupgrade などが今までとおり使うことができます。
2012/08/12(日)samba 3.6.7 は FreeBSD 8.3R でソースコードからそのまま構築できない
2017/10/12 5:01
samba は、構築に難儀するサーバアプリケーションのひとつで、個人的にはどうも好きにはなれません。Windows 絡みというものもあるが(爆)
samba 3.6.7 をソースコードから構築しようとすると、以下のような md5 部分のコンパイルエラーで途中で停止します:
../lib/crypto/md5.c:142: error: 'struct MD5Context' has no member named 'bits'
../lib/crypto/md5.c:144: error: 'struct MD5Context' has no member named 'buf'
../lib/crypto/md5.c:144: error: 'struct MD5Context' has no member named 'in'
../lib/crypto/md5.c:145: error: 'struct MD5Context' has no member named 'buf'
../lib/crypto/md5.c:146: error: 'struct MD5Context' has no member named 'buf'
The following command failed:
gcc -O -I. -I/usr/local/src/samba-3.6.7/source3
-I/usr/local/src/samba-3.6.7/source3/../lib/popt
-I/usr/local/src/samba-3.6.7/source3/../lib/iniparser/src
-Iinclude -I./include -I. -I. -I./../lib/replace
-I./../lib/tevent -I./librpc -I./.. -I./../lib/talloc -I../lib/tdb/include
-DHAVE_CONFIG_H -Iinclude -I./include -I. -I. -I./../lib/replace
-I./../lib/tevent -I./librpc -I./.. -I./../lib/popt -I/usr/local/include
-I/usr/local/src/samba-3.6.7/source3/lib -I.. -D_SAMBA_BUILD_=3
-D_SAMBA_BUILD_=3 -fPIC -DPIC -c ../lib/crypto/md5.c -o ../lib/crypto/md5.o
gmake: *** [../lib/crypto/md5.o] エラー 1
これは、FreeBSD8.3R の場合、samba で意図している <md5.h> の構造体の定義が異なっているためで、lib/crypto/md5.h を下記のように一部をコメントアウトする必要があります:
#define MD5_H
#ifndef HEADER_MD5_H
/* Try to avoid clashes with OpenSSL */
#define HEADER_MD5_H
#endif
/* #ifdef HAVE_MD5_H */
/*
* Try to avoid clashes with Solaris MD5 implementation.
* ...where almost all implementations follows:
* "Schneier's Cryptography Classics Library"
*/
/* #include <md5.h> */
/* #else */
struct MD5Context {
uint32_t buf[4];
uint32_t bits[2];
uint8_t in[64];
};
typedef struct MD5Context MD5_CTX;
void MD5Init(struct MD5Context *context);
void MD5Update(struct MD5Context *context, const uint8_t *buf,
size_t len);
void MD5Final(uint8_t digest[16], struct MD5Context *context);
/* #endif !HAVE_MD5_H */
#endif /* !MD5_H */
赤文字部分のようにコメントアウトします。
さらに、lib/crypto/md5.c を以下のように変更します:
#include "replace.h"
#include "md5.h"
変更 → #include "../lib/crypto/md5.h"
これらの変更後、コンパイルすると上手くいくようです。
2012/08/12(日)JETWAY PA74M2-LF では FreeBSD 9.0R は使えない?
2017/10/12 5:00
JETWAY 社 PA74M2-LF という サイズが microATX のマザーボード。
こちらで FreeBSD 8.3R-p1 から FreeBSD 9.0R-p4 へアップデートしようとしたが、
FreeBSD 9.0R-p4 は起動しない。
どうやら ACPI まわりの問題です。
現在、実運用しているサーバなので、いろいろ調べることもできず、とりあえず FreeBSD 8.3R に戻しました。設定が一部消えたので難儀しました。
9.1R がリリースされたときに再挑戦しようと思います。
起動オプションにて、ACPI サポートをOFF にするといけそうなのですが、
このマザーボードで FreeBSD 9.0R が使用できたという奇特な方が居られたら、コメントお願いします。
2012/07/06(金)FreeBSD 9.1R を出すらしい&8.1R/8.2R サポート終了間近
2017/10/12 4:59
2012/05/10(木)Apache 2.4 + mod_perl を導入してみた
2017/10/12 4:58
まだ置き換えるには時期尚早ではありますが、近い未来 2.0系/2.2系から置き換わっていくのは流れとしては自明なので、取り扱いを確立させるために、弊社の実験サーバにて、2.2.22 から、最新バーション 2.4.2 へ置き換えてみました。
付属マニュアルの日本語訳は、現状、2.2 系のものが流用されているようです。
上記のような感じです。
perl 5.14.2 + mod_perl 2.0.6 + Apache 2.4.2 + PHP 5.4.2 という組み合わせですが、
mod_perl がまだApache 2.4 には対応しておらず、そのままでは、コンパイル自体が通りません。
既に幾つか言及されていますが、2.2系からの変更が地味に多いです。
正直なところ、しばし嵌りましたorz
気づいた点を列挙してみましょう:
○ apr, apr-util, pcre は、ビルドインで提供されなくなった
apr 、apr-util、 pcre 、これら3つのユーティリティ は、Apache の構築に欠かせないものですが、それ故 2.2 系までは Apache ソースツリーと一緒に配布されていました。
なぜか 2.4 系では、これらは提供されなくなり、自前で構築するか、拾ってくる必要があります。
先ず、apr と apr-util を ここからダウンロードで持ってきて、 apache ソースツリーの srclib ディレクトリ配下にソースツリーごと置きます。
現在(2012/05/10) のバージョンは、 apr-1.4.6 , apr-util-1.4.1。
#英文ですが、 INSTALL ファイルにそう書いてある模様です。
ソース配置手順はこんな感じ:
# cd httpd-2.4.2/srclib
# cp ../../apr-1.4.6.tar.bz2 ./
# cp ../../apr-util-1.4.1.tar.bz2 ./
# tar xvzf apr-1.4.6.tar.bz2
# tar xvzf apr-util-1.4.1.tar.bz2
# mv apr-1.4.6 apr
# mv apr-util-1.4.1 apr-util
apr と apr-utilを事前インストールする方法もあるようですが、筆者の環境ではApache本体のコンパイルそのものが上手くいきませんでした。
○ pcre , expat は ports 等で。
pcre は 8.20 以降、 expat は 2.0 以降が必要です。
事前にインストールしておくとよいです。
○ Apache 2.2系では、構築デフォルトが「スタティックリンク」
Apache 2.4系では、構築デフォルトが「DSO」
→ ソースコードからコンパイルする際、2.2系の configure オプションそのままでは、同じように構築されず、結局は httpd.conf の構文エラーとなって不具合を起こす。
エンタープライズ系には有益な場面も多いのでしょうが、この変更は「何を勘違いしたか?」的な感覚を覚える。
2.4系では、明示的に「スタティックリンク」を指定することで、凌ぐ。
○ Apache 2.4 系で アクセス制御の文法が変わっている
httpd.conf などのサーバ設定ファイル、.htaccess などの挙動変更設定ファイルは全て見直して、変更する必要があります。
ここまでは、結構記載があります。
しかし、嵌ったのは SSI の挙動。どこにも記載がない。
2.2.22 で普通に動作していた、以下のような SSI が認識されません。
<!--#if expr="'$REMOTE_ADDR' = '/^192.168.1.1/'" -->
このような評価式は、perl と同じ書式にすることで解決しました。
<!--#if expr="'$REMOTE_ADDR' eq '/^192.168.1.1/'" -->
構築オプションの問題かもしれませんが、原因はわかりません。
2.2系までは、pcre が内包された形で配布されていたけれども、2.4系では、予め別途インストールするようになったため、数式評価の部分で挙動が変わったということでしょう。
○ 削除ディレクティブなどがある
LockFile ← 文法エラー
SSLMutex ← 文法エラー
DefaultType ← text/plain の指定は、「無視する」と警告が出る。
NameVirtualHost ← 「次バーションで削除」という警告が出る。
当面は、弊社実験サーバでの運用の留めたいと考えています。
2012/04/19(木)FreeBSD 8.3R リリース
2017/10/12 4:57
苦手な英語の意訳をすると、今回は、
・TCP/IP プロトコルスタックにて mod_cc(9) を実装した。
これは、プラグイン的に利用できる輻輳制御フレームワーク。
・grdid(8) という、BIOS ソフトウェアにて実現するタイプの RAIDコントローラを追加実装した。
・ZFS サブシステムを SPA Version 28 に更新した。
・Gnome を Version 2.32.1 に、 KDE を Version 4.7.4 に更新した。
あと、 usb(4)にて、USB パケットフィルタをサポート。
とあります。
他には、ネットワークカード絡みで幾つかの修正が入っています。
2012/04/12(木)ノートパソコンのACアタプタ修復
2012/04/11(水)また移転(引越し)しますた。。
2017/10/12 4:54
移転の案内も出来ずじまいで、関係者の皆様には失礼致します。
とりあえず、近隣の状況です:
以前の住居から、直線距離で 300m 程度しか離れていません。
行政的な地域も同じ。
先月上旬に引越しを行い、やっと通常の生活サイクルに戻る目処が立ったところです。
引越し先の契約を済ませ、水抜き栓(寒冷地では普通にある)を回して、水道を通そうとしたところ、水道管の継ぎ目から勢いよく水が噴き出し、一部が水浸し。更にトイレの配水管詰まりが、最初の事件でした。
修理に数日かかりました。風呂とトイレが使えず、これには参った。。orz
今冬シーズンの札幌は記録的な寒さだったのですが、不凍液も凍るほどの寒さだったらしい。誰も住んでいないと、ただでさえ寒い構造の居住家屋(すぐ下の階は倉庫)なので、余計に冷え込む。
寒さ対策にも明け暮れた1ヶ月でした。
2012/04/03(火)温度センサーの改良
2017/10/12 4:53
〔改造前〕
〔改造後〕
改造後の画像で、左側がサーバ設置室の室温、右側が外気の気温。
ここ札幌は、4月になったというのに、マイナス(氷点下)の気温です。
マイナス符号が点灯していますが、画像ではわかりにくい。。orz
ここ数年、あまり無かった寒さが続いています。
回路設計・組み上げよりも、収納ケースの加工にえらい時間かかって、結局、着手から10日くらいかかっています。
2012/02/21(火)perl で PDF ファイルのサムネイルを表示
2017/10/12 4:52
perl にて「PDF文書の1ページをサムネイルのように表示させたい」という場合、そのままでは出来ないため、ImageMagick本体、Image::Magick、Ghostscript 、vflib といったようなものを使い、PDF 文書の特>定のページを png か jpeg に変換してブラウザに出力するような CGI を使うことになります。
Image::Magick は Perl モジュールですが、ImageMagick を構築する際、 --with-perl オプションをつけると、一緒にインストールされます。
また、PDF 文書から jpeg や png に変換する際は、Ghostscript と vflib を予めインストールし、ImageMagick を構築する際に
--with-gslib
--with-gs-font-dir=/usr/local/share/ghostscript/fonts
を追加すると確実です。
こうして
use Image::Magick
my $pdffile = "sample.pdf[0]" ; # [0] で最初のページという意味になる。
my $tmbfile = "sample.png" ;
my $image_width = 500 ; # 横幅をpx 数 で。縦は同じ比で拡縮する。
my $pdfobj = Image::Magick->new ;
$pdfobj->Read($pdffile) ;
$pdfobj->Transform(geometry => $image_width) ;
$pdfobj->Write('png:' . $tmbfile) ;
のようにすると出来るはずだが・・・
実際には何も表示されず、サーバのエラーログに
gs: command not found
が出る始末。
どうも /usr/bin/gs へアクセスしようとして、その実体は FreeBSD のポリシー的な内容からして、 /usr/local/bin/gs にあるのが原因らしい。
おそらく、構築時か実行環境の問題なのだろうが、root になって、
# cd /usr/bin
# ln -s /usr/local/bin/gs
とすると、回避する。
すっきりしませんが、これで稼動できたのでとりあえずこのまま。