Re: milter-managerが起動しない
- Reply: Aoba Dai : "Re: milter-manager$B$,5/F0$7(B $B$J$$(B"
- In reply to: Aoba Dai : "Re: milter-manager$B$,5/F0$7(B $B$J$$(B"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 14 Aug 2022 09:00:57 UTC
On Sat, 13 Aug 2022 22:27:50 +1000 Aoba Dai <aobadai@gmail.com> wrote: > 再度すみません。 > > miter-managerは起動するようになったのですが、その過程で > ruby関係を削除した時に一緒に削除されたportupgradeを > portsから入れようとするとruby関連で色々とエラーになり > 入りませんでした。 > pkgで入れてみるとついでにruby2.7がruby3.0にアップ > グレードされてしまいましが一応入りました。 > この時点で milter-manager`も portupgrade も > 使えるようになったので問題が無いと言えば問題は無い > のですが、なんかしっくりしません。 > > こういうようなあっちを立てればこっちが立たない時は > どうするのが正解なのでしょうか? 青木@名古屋です。 packagesは特にバージョン指定で依存しているもの以外、3.0で ビルドされてます。 よって、lang/ruby30が入っておらず lang/ruby27が入っている状態なら強制的に更新されます。 (追加で入れてはくれない。) portupgradeのビルドに失敗したのは、databases/ruby-bdbが 3.0でビルドされたままの状態だったということはありませんか? また、portupgrade[-devel]をお使いなら、ruby更新関係で 見るべきUPDATINGのエントリは20190420のkang/ruby24の ものです。(以降のエントリではpkg以外は無視されています。) 今回のダウングレードの場合、24,25,2.5を各々30,27,2.7に 読み替える必要がありますね。 portupgrade自体がrubyで動いているのでちょっと面倒です。 あと、FreshPortsで見てみると、 https://www.freshports.org/mail/milter-manager/ mail/milter-manager自体はruby3.0対応っぽいですが、 https://www.freshports.org/devel/rubygem-gio2/ 依存物のdevel/rubygem-gio2がruby2.7前提のようですね。 そのまた依存物も2.7依存と3.0依存が混在しているようです。 ...が、lang/ruby27依存になっているもののMakefileを見ても それらしい指定がないのが不可解です。 ※FreshPortsのDBがおかしくなっている可能性は ありますが。 恐らくですが、本来ならmail/milter-managerが2.7でないと 正常動作しないなら明示的にlang/ruby27に依存させて、 依存するものも同様にすべきなのでしょうが、依存物の方は 3.0依存(2.xサポート廃止)のものも使っていたりすると 強制的に2.7依存にはできないので、FLAVORで両対応できる ようにしないといけないですね。 lang/ruby*同士は相互にCONFLICTしていなさそうですし、 /usr/local/lib/ruby/以下もサブディレクトリ毎に3.0の ようにバージョン毎のディレクトリを作るようになって いるので、複数のrubyを共存させることはできそうです。 Mk/bsd.ruby.mkやMk/Uses/gems.mkを見てもわざわざCONFLICT させるようなコードにはなっていないように見えます。 > > -- > Dai Aoba <aobadai@gmail.com> > > > On Sat, 13 Aug 2022 16:46:02 +1000 > Aoba Dai <aobadai@gmail.com> wrote: > > 悸村様 > > > > #MLのアドレス間違って送信したので再送メールになります。 > > > > コメントありがとうございます。 > > > > > 一方、 ports/UPDATING で示唆されている如く、ruby のバージョンを 2.7 に > > > 指定し make install した milter-manager は、起動します。 > > > (試験的にインストールしただけで、実使用していません)。 > > > > 貴重なご指摘ありがとうございます。 > > そういうことなんですね。 > > > > 私の環境で、 > > > > pkg delete ruby > > pkg delete ruby27 > > > > とruby関係をアンインストールしてから、make.conf に > > > > DEFAULT_VERSIONS+=ruby=2.7 > > > > を加え、milter-manager を make してみたら、 > > > > Installing rubygem-fiddle-1.1.0_1... > > ===> rubygem-gio2-3.5.1 depends on package: rubygem-fiddle>=0 - found > > ===> Returning to build of rubygem-gio2-3.5.1 > > ===> rubygem-gio2-3.5.1 depends on package: rubygem-gobject-introspection>=3.5.1 - not found > > ===> rubygem-gio2-3.5.1 depends on package: rubygem-gobject-introspection>=3.5.1 - not found > > *** Error code 1 > > > > Stop. > > make[2]: stopped in /usr/ports/devel/rubygem-gio2 > > *** Error code 1 > > > > Stop. > > make[1]: stopped in /usr/ports/mail/milter-manager > > *** Error code 1 > > > > Stop. > > make: stopped in /usr/ports/mail/milter-manager > > # > > > > となって、 rubyが2.7だとダメなエラーが出たので、改めて > > ports で rubygem-gobject-introspection をインストールしてから > > 再度 milter-manager をmakeしたら最後まで通りました。 > > この状態でmilter-managerが起動できるようになりました。 > > > > 念のためもう一度 ruby と milter-manager を消してから > > 同じ手順を踏むとエラー無くインストールが完了し、起動もできる > > ようになりました。 > > > > という事で、ports/UPDATING見ないとダメだったのですね。 > > > > 言い訳になりますけど、FreeBSD はサポートが切れるタイミング > > (枯れたタイミング)で次のリリースにアップグレードしてきたので > > この手のトラブルはほぼ淘汰されてるという先入観がありました。 > > アップグレード直後に portupgrade を ports で入れると > > ruby3,0で入ってしまいますし。 > > > > ともあれ、milter-managerがまた起動するようになりました。 > > ありがとうございました。 > > > > -- > > Dai Aoba <aobadai@gmail.com> > > > > > > On Sat, 13 Aug 2022 01:26:01 +0900 > > xlsvx <xlsvx@yahoo.co.jp> wrote: > > > 悸村です。 > > > milter-manager を使用していない者ですが、気付いた点を投稿させて頂きます。 > > > > > > 時系列を追うと、次のようになります。 > > > A. 2022.04.21 > > > 標準 ruby が 2.7 から 3.0 に更新された。 > > > /usr/ports/UPDATING > > > > > > B. 2022.05.16 > > > FreeBSD 13.1-RELEASE Announcement > > > https://www.freebsd.org/releases/13.1R/announce/ > > > > > > C. 2022.07.28 > > > mail/milter-manager/Makefile のタイムスタンプ (gitup ports で取得) > > > > > > 我が家の FreeBSD-13.1R でも、pkg でインストールした milter-manager は > > > 起動しません。同じエラーが表示されています。 > > > > > > 一方、 ports/UPDATING で示唆されている如く、ruby のバージョンを 2.7 に > > > 指定し make install した milter-manager は、起動します。 > > > (試験的にインストールしただけで、実使用していません)。 > > > > > > > # milter-manager > > > > failed to listen: failed to bind(): unix:/var/run/milter-manager/milter-manager.sock: そのようなファイルまたはディレクトリはありません > > > > > > 指定法(UPDATING から引用) > > > > If you compile your own ports you may keep 2.7 as the default version by > > > > adding the following lines to your /etc/make.conf file: > > > > > > > > # > > > > # Keep ruby 2.7 as default version > > > > # > > > > DEFAULT_VERSIONS+=ruby=2.7 > > > > > > 推測ですが、いま現在、FreeBSD ports/packages の milter-manager は > > > いまだ ruby-3.0 を前提に構築されていないのではないでしょうか。 > > > ruby-3.0 / 2.7 混在の環境で、動いているマシンがあるそうですが、私のほう > > > では何も解らない状態です。 > > > (妄言多謝) > > > > > > -- > > > 悸村成一 -- 青木 知明 [Tomoaki AOKI] <junchoon@dec.sakura.ne.jp>