差分
このページの2つのバージョン間の差分を表示します。
| |
freebsd_上で_ruby_を使って_milter_を書きたいときは [2025/05/16 10:37] ? 作成 a-gota | freebsd_上で_ruby_を使って_milter_を書きたいときは [2025/07/18 09:44] (現在) ? [なんか pkg upgrade したら milter が動かなくなってたんですが?!] a-gota |
---|
| |
''pkg upgrade'' 等でソフトウェアをアップデートする際は、その対象に Ruby が含まれていないか確認し、含まれていた場合はアップデート後に上記手順を再度実行して gem を再インストールしましょうね。うっかりすると、「ある時からメールが一切送受信できなくなってた」とか恐ろしい事態が…… :-? | ''pkg upgrade'' 等でソフトウェアをアップデートする際は、その対象に Ruby が含まれていないか確認し、含まれていた場合はアップデート後に上記手順を再度実行して gem を再インストールしましょうね。うっかりすると、「ある時からメールが一切送受信できなくなってた」とか恐ろしい事態が…… :-? |
| |
| ===== milter-manager の Ruby binding をビルドできない!!! ===== |
| |
| 環境によるのか Ruby のバージョンによるのか((3.2 が入っているマシンではビルドできているが、3.3 が入っているマシンではコケてしまう。))、''milter-manager-2.2.7'' の Ruby binding をビルドしようとすると ''binding/ruby/ext/core/'' の中で「''rbgobject.h'' がない!!」と言われて ''make'' が止まってしまう場合がある。このヘッダファイルは FreeBSD の場合 ''rubygem-glib2'' パッケージに含まれていて、実際に ''/usr/local/lib/ruby/gems/3.3/extensions/amd64-freebsd-13/3.3/glib2-4.2.9/'' や ''/usr/local/lib/ruby/gems/3.3/gems/glib2-4.2.9/lib/'' に当該ファイルが存在している。なので、web を検索して引っかかる「''rubygem-glib2'' を(再)インストールしてみたら?」という情報は、効果を持たない。''configure'' とは…… ''(-_-;'' |
| |
| ''milter-manager-2.1.5'' の頃は、milter manager の tar ball 自体に glib2 関連ソースが同梱されていた。一方、2.2.5 や 2.2.7 には同梱されていない。……そうこうしているうちにもメールの受信不能状態は続いているので((Rubu binding を使用した milter が起動不能になっているとき、とりあえずその milter のみを無効化して動作させようにも、「(あるはずなのに存在しない)milter の unix domain socket が unsafe だ!」と叫んで milter manager 自体が落ちてしまい、メールの送受信が一切不能という事態に。こういう時、milter manager の「milter 自動検出」機能はかえって迷惑…… ''(-.-;''。))、とりあえず急場をしのごうと 2.1.5 の Ruby binding をビルドしようとしたら、そっちは「型キャストが気に入らん!!!」とか言われてビルド不能。しくしくしく ''T_T'' |
| |
| 仕方がないので、milter manager のソース自体は最新版を使うことにし、''/usr/local/lib/ruby/gems/3.3/gems/glib2-4.2.9/lib/rbgobject.h'' の symlink を ''binding/ruby/ext/core/'' に作成。ところが、一男去ってまた次男、「今度はあれが足りない」「次はあれが欲しい」……と、次々に symlink を張る羽目に。 |
| |
| 最初は言われるがままにチマチマと 1 つづつ symlink を張っていたんだが、だんだん嫌になってきて、途中で ''/usr/local/lib/ruby/gems/3.3/gems/glib2-4.2.9/lib/'' 内の全ファイル(・ディレクトリ)の symlink を一括作成。ようやくビルドが通った。うーん、なんだかなぁ…… ''(_ _;'' |