[FreeBSD-users-jp 93767] Re: sshfs 上で cp -p を実行すると FreeBSD 9.0-RELEASE が Panic する
稲員です。 手元の 9.0 マシン(i386,amd64両方)で試してみましたが、そういった 症状は再現しませんでした。 9.0 へアップグレードした際に fusefs-sshfs 関連の ports のどれか に rebuild 洩れがあって、旧版用のままになっている可能性はありま せんか? -- Rikito INAKAZU (稲員力士) riki1017k...@gmail.com
[FreeBSD-users-jp 93707] Re: パーティション(i-node) について
稲員です。 On Thu, 05 Jan 2012 14:53:56 +0900 Dobashi.Mmd...@luna.wak2.jp wrote: 1: 9.0RC3(Vbox)(/のみ) の時に portsの xfce4をmake中に /: create/symlink failed, no inodes free となったものです。 Xfce4 は依存関係が深いですから、それらを全部手元で build すると なるとかなりの数のファイルが出来そうですね。 余裕のない環境だとそういう事も起きそうです。 portmaster 等の tool を使えば install が終った下位の依存 ports は都度 clean してくれるでしょうから、ファイル数が爆発的に増えて しまう事は避けられるんじゃないでしょうか。 使用している容量で見ると iused(合計)Used(合計) 1: 394k+126k=520k 3.5G : 520/3.5= 148.57 2: 4.6k+28k+364k+630k=1026.6k 5.4G+257M : 1026.6/5.657= 181.47 ほぼ近い i-nodeの比を示しているようです。 全く無意味とは言いませんが、 iused と Used の比を取るなら iused/Used よりは Used/iused の方がファイルシステム中の平均ファ イルサイズという分かりやすい数値になると思います。 (1) の例なら 3.5G/520k=6.9k bytes/inode ですね。 似た様な使い方のファイルシステムなら平均ファイルサイズも似た様な ものでしょうから、その逆数もだいたい似た様なものでしょう。 そこで残りの容量と ifreeの比...? ifree(合計) Avail(合計) :比 1: 126k3.4G 37.059 2: 630k+28k8.2G+206M78.277 i-node は UFS のファイル管理の根本となるデータですから、基本的 に 1 つのファイルを作成する毎に 1 つの i-node が必要で、それは管 理するファイルのサイズに依りません。 つまり 0B のファイルだろう と 1GB のファイルだろうと 1 つの i-node で管理されます。 ですから、サイズの小さなファイルを大量に作ると Avail はだだ余り なのに ifree が無くなってファイルが作れないという事態が起こりま す。 これを踏まえて ifree/Avail という数値の意味を考えると、単位空き 容量当たりの利用可能 i-node 数ですから、数値が小さい方が i-node が先に無くなり易く、大きい方が空きディスク容量が先に無くなり易い という事でしょうかね。 # 本当か? なんにしても、これは Dobashi.M さんが知りたい事とは違うような気 がします。 -- Rikito INAKAZU (稲員力士) riki1017k...@gmail.com
[FreeBSD-users-jp 93710] dbus のゴミファイル処理
稲員です。 On Thu, 05 Jan 2012 21:13:36 +0900 Dobashi.Mmd...@luna.wak2.jp wrote: そう云えば 8.0になったころから /var/tmp/に dbus-038Kp7PPlQなどと 0Bの ファイルが起動する度に作成されているようで、気が付いては削除していまし たが、今は作年3月ぐらいからの分 2000ぐらいが溜っています; MLにメールするまでもないかと思っていましたが、何かの設定ミスでもあるの でしょうか? 例えば /etc/rc.conf に「clear_tmp_enable=YES」の設定がありますが、そ うして clearしていいものでしょうか? dbus-cleanup-sockets というコマンドがあると思いますので、これを 実行すればゴミソケットを処分してくれます。 使用中のソケットはちゃんと残してくれますので、実行のタイミングを 気にする必要はないはずです。 これを cron で週一くらいで回しておいてはいかがでしょうか。 あと、 clear_tmp_enable=YES は /var/tmp までは面倒みてくれない と思います。 -- Rikito INAKAZU (稲員力士) riki1017k...@gmail.com
[FreeBSD-users-jp 93712] Re: dbus のゴミファイル処理
稲員です。 On Thu, 05 Jan 2012 22:42:50 +0900 Dobashi.Mmd...@luna.wak2.jp wrote: # find /tmp /var/tmp -type f -atime +7 -delete # find /var/tmp/orbit-mit -name linc-* -print /var/tmp/orbit-mit/linc-7ad-0-1069555034695 /var/tmp/orbit-mit/linc-584-0-5f66fb0c40ade /var/tmp/orbit-mit/linc-589-0-3ca22c2ad0253 /var/tmp/orbit-mit/linc-538-0-7f52154e4e5c9 /var/tmp/orbit-mit/linc-584-0-264ad60ad5231 ... (1600ぐらいあります;) # find /var/tmp/orbit-mit -type f -atime +7 -delete # # find /var/tmp/orbit-mit -name linc-* -print /var/tmp/orbit-mit/linc-7ad-0-1069555034695 /var/tmp/orbit-mit/linc-584-0-5f66fb0c40ade /var/tmp/orbit-mit/linc-589-0-3ca22c2ad0253 /var/tmp/orbit-mit/linc-538-0-7f52154e4e5c9 /var/tmp/orbit-mit/linc-584-0-264ad60ad5231 ... あれ? linc-* はソケットファイルなので -type f には引っかからないです。 -type s を使いましょう。 -- Rikito INAKAZU (稲員力士) riki1017k...@gmail.com
[FreeBSD-users-jp 93714] Re: dbus のゴミファイル処理
稲員です。 書き忘れました。 linc-* には linc-cleanup-sockets という、さっきの dbus のやつと 同じ事をしてくれるコマンドがあります。 -- Rikito INAKAZU (稲員力士) riki1017k...@gmail.com
[FreeBSD-users-jp 93705] Re: パーティション(i-node) について
稲員です。 On Thu, 05 Jan 2012 10:31:14 +0900 Dobashi.Mmd...@luna.wak2.jp wrote: バラバラの値で分かりにくいかも知れませんが、残りの i-nodeを見てみます。 Avail ifree 比率(ifree/Avail) - 1:(/)3.4G 126k37.059 2:(/)206M28k135.92 2:(/usr) 8.2G 630k76.829 3:(/)736M 139k188.86 3:(/usr) 2.7G 406k150.37 何故かは分かりません... これは一体何を計算しているんでしょうか? 疑問点をもう少し端的に 書いてもらえると答え易いかもしれません。 # 何となくは分かる気もしますが… あと追加情報として、 FreeBSD 9.0 ではデフォルトのブロックサイズ が 8.x までの 16k から 32k に変更されています。 このため最大 i-node 数も影響を受けます。 具体的には、同一サイズ のパーティションなら最大 i-node 数はこれまでの約半分になります。 -- Rikito INAKAZU (稲員力士) riki1017k...@gmail.com
[FreeBSD-users-jp 93688] Re: 9.0 でのブートマネージャがない !?
稲員です。 On Sun, 01 Jan 2012 01:17:46 +0900 Dobashi.Mmd...@luna.wak2.jp wrote: 当方は amd64です。 試しに Windows7/x64 上の VirtualBox 4.1.8 に FreeBSD/amd64 9.0-RC3 をインストールしてみました。 インストールには FreeBSD-9.0-RC3-amd64-bootonly.iso を使用しています。 MBR 形式でパーティションを切り、無事インストール完了。 その後、 GRUB2 を以下の手順でインストール。 # cd /usr/ports/sysutils/grub2 # make BATCH=yes install clean # rehash # grub-install /dev/ada0 Installation finished. No error reported. # grub-mkconfig /boot/grub/grub.cfg Generating grub.cfg ... Found kernel of FreeBSD: /boot/kernel/kernel done # shutdown -r now これで無事 GRUB2 から boot 出来るみたいです。 で、今さらですが [FreeBSD-users-jp 93682] で Dobashi.M さんが報 告されている gpart show の結果がなんかおかしいですね。 どうやら MBR 形式になっていないようです。 もしかしてインストールする時 に、パーティション形式の選択で [MBR] ではなく [BSD] をいきなり選 ばなかったでしょうか? [MBR] を選んでから FreeBSD 用の領域を確保 していけば gpart show は以下の様な感じになると思います。 # gpart show = 63 134217665 ada0 MBR (64G) 63 134217657 1 freebsd [active] (64G) 134217720 8- free - (4.0k) =0 134217657 ada0s1 BSD (64G) 0 12582912 1 freebsd-ufs (6.0G) 125829124194304 2 freebsd-swap (2.0G) . -- Rikito INAKAZU (稲員力士) riki1017k...@gmail.com
[FreeBSD-users-jp 93691] Re: 9.0 でのブートマネージャがない !?
稲員です。 On Sun, 01 Jan 2012 09:08:38 +0900 Dobashi.Mmd...@luna.wak2.jp wrote: MBR 形式でパーティションを切り、無事インストール完了。 こちらのVBでは 新規で「新規仮想マシン作成ウィザード」が始まって 「名前」「OSタイプ」の入力となり 「オペレーティングシステム」の選択で「BSD」を選びました。 そして「メモリ」「仮想ハードディスク」などへと進み「完了」...です。 その結果が % gpart show = 0 16777216 ada0 BSD (8.0G) 0 15935488 1 freebsd-ufs (7.6G) 15935488837632 2 freebsd-swap (409M) 16773120 4096- free - (2.0M) です。MBR形式...? 「パーティションを切る」云々というのは VirtualBox の仮想マシン作 成時の話ではなく FreeBSD のインストーラ上での話です。 あと BSD-Partition (a とか b とか) の事でもなく、 BSD 用語的には スライスの話です。 用語の使い方が悪かったですね。 Dobashi.M さんの仮想マシン上の Guest の FreeBSD はどういう方法で インストールされたものでしょう? -- Rikito INAKAZU (稲員力士) riki1017k...@gmail.com
[FreeBSD-users-jp 93374] Re: 8.1 to 8.2 upgrade
稲員です。 On Sun, 27 Feb 2011 03:06:55 +0900 kodama kod...@waitress.jp wrote: cvs update make installkernel したところboot中にrootfsを見つけれなく なってしまいました。 サーバにしているマシンなのでとりあえずもともと使ってたkernelで再起動して いろいろしらべてるのですが さすがに情報がありません。 どこら辺から調べて行けばよいのでしょうか? kernelは GENERICから何も変更していません。 なんとなく流れるログ何回か見た感じだとad0を認識してないかんじぽいのです が・・・。 とりあえず 8.2-RELEASE の Install DVD とかで boot してみて、本当 に ad0 を認識出来ていないのかどうかを確認してはどうでしょうか。 あと、ZFS の version が 8.1-8.2 で上っているので、その辺りが ちょっと気になりますが。 -- Rikito INAKAZU (稲員力士) riki1017k...@gmail.com
[FreeBSD-users-jp 93333] Re: rsyncd.conf ファイル
稲員です。 On Fri, 04 Feb 2011 19:36:48 +0900 Kenji Kawachi k.kawa...@nasuinfo.or.jp wrote: 以前ports からインストールした時は、/usr/local/etcにrsyncd.confが あり、このファイルのhosts.allowに許可するIPを登録し、rc.confに rsyncd_enable=YESにしたらうまく動いたので同様にしようと思って いたら、rsyncd.confがなかったのであれっと思った次第です。 同様のことをしたいのですが、/usr/local/etcにrsyncd.confをおき、 rsyncd_enable=YESにしたら動くのでしょうか?。 ports からインストールした時 rsyncd_enable=YES が有効なのは、 ports がその為の仕掛けを用意してくれるからです。 なので tar ball から野良インストールしただけでは上記の設定を書い ても動作しません。 rsyncd.conf のサンプルと同じ場所に置いてある rsyncd.sh.in を参考にして適切な設定を行なえば、同じ様に動作させ ることは出来ます。(詳細は man rc) というか、元メールにある様なエラーが出る事がそもそも好ましく無い 状態にあると思うので、そちらを直して ports を使う方が良いんじゃ ないでしょうか。 /etc/make.conf で X11BASE を不用意に変更していたりしませんか? -- Rikito INAKAZU (稲員力士) riki1017k...@gmail.com
[FreeBSD-users-jp 93226] Re: xeyes を入れると X が立ち上がらない件
稲員です。 On Sun, 26 Sep 2010 20:19:52 +0900 ikesan ike...@1kw.jp wrote: ~/.xinitrc に xeyes の呼び出しを書いていたので立ち上がらないように見えた のですが、X を立ち上げてから xeyes を呼び出すと落ちました。 xeyes に +render オプションを付けるか、若しくは ~/.Xdefaults か ~/.Xresources に *eyes.render: FALSE を書いておくと回避出来たりしませんか? 元メールを読んだ直後に試したマシンでは問題の現象自体が発生しない 様だったのでそのまま忘れていたんですが、先日別のマシンでやってみ たら見事に落ちました。上記の回避方法はその時有効だったものです。 本質的な原因がどのコンポーネントにあるのかは不明ですが、 Video Driver との組み合せに依るのかも。 因に、落ちた方は xf86-video-intel-2.7.1_3 で使ってるやつです。 -- Rikito INAKAZU (稲員力士) riki1017k...@gmail.com
[FreeBSD-users-jp 93214] Re: WITHOUT_MODULES の挙動
稲員です。 On Sat, 18 Sep 2010 23:31:58 +0900 Hiroyuki Seino seichan...@wakhok.ne.jp wrote: Handbook の 8.5 に書かれているように指定しているんですよね… http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig-building.html emu10k1 emu10kx と sound/driver を消しても結果は変わらずでした. サウンド関係だけ,うまく制御出来ていない状態で,WITHOUT_MODULES で 指定した他の物はきちんとよけてくれています. Handbook の WITHOUT_MODULES の説明にある This variable sets up a list of ***top level modules*** to exclude... という記述がミ ソなんじゃないですかね。 /sys/modules/Makefile を読んでみても、 どうやら WITHOUT_MODULES は /sys/modules 直下の directory しか 除外してくれない様に見えます。その為 netgraph や sound の様に階 層構造になっている driver は個別に制御できないんじゃないかと。 sys/modules/sound/driver/Makefile を編集し emu10k1 と emu10kx を削除する事で回避は出来るのですが,ソースツリーを他と使いまわし ている為,この対応はなるべくやりたくありません. との事なので、別解としてこんなのはどうでしょう。やはりスマートで はありませんし、 Makefile 自体を弄りたくないという事であればこの 方法も駄目ですけど。 --- /sys/modules/sound/driver/Makefile.orig 2010-09-19 00:28:45.0 +0900 +++ /sys/modules/sound/driver/Makefile 2010-09-19 00:28:59.0 +0900 @@ -19,4 +19,8 @@ SUBDIR+= ai2s davbus .endif +.for reject in ${WITHOUT_MODULES} +SUBDIR:= ${SUBDIR:N${reject}} +.endfor + .include bsd.subdir.mk これで一応 WITHOUT_MODULES=... emu10k1 emu10kx が効いてくれる と思います。ただちゃんと確認してはいません。 -- Rikito INAKAZU (稲員力士) riki1017k...@gmail.com
[FreeBSD-users-jp 93190] Re: attic pkg of ja-xemacs
稲員です。 On Fri, 10 Sep 2010 07:57:39 +0900 S.Kimura (木村成一) rikim...@a011.broada.jp wrote: インストールした xemacs ですが、別の問題が存在します。 japanese/xemacs21-canna はそのままだとファイルのオープンや dired に失敗するようです。 editors/xemacs-packages をインストールすれば解決するのですが……。 $ pkg_info -d xemacs-mule-packages-4.6 (中略) This port provides a set of the mule-packages category packages provided by xemacs.org(www.xemacs.org). You should be used with editors/xemacs-packages. とあるので、「普通入れるよね」とは思っているけど敢て DEPEND は してないんですかね? 理由は分かりませんが。 でも editors/{xemacs,xemacs-devel} は DEPEND しているので、実は 単にあまりメンテナンスされてないだけなのかも。 Makefile に RUN_DEPEND を追加しようとしたら、巧くいきませんでした。関係するファイルを 全部列挙する必要があるのかも知れないようです。 詳細が書かれていないのでアレなんですが、察するに japanese/xemacs21-canna/Makefile の方に書いたという事ですか? もしそうなら、確かにそれだと上手く いかないと思います。 理由は master port の方の Makefile である editors/xemacs21-mule/Makefile を読めば分かるのではないかと思い ますが。 -- Rikito INAKAZU (稲員力士) riki1017k...@gmail.com
[FreeBSD-users-jp 93187] Re: attic pkg of ja-xemacs
稲員です。 On Thu, 9 Sep 2010 10:52:52 +0900 S.Kimura rikim...@a011.broada.jp wrote: japanese/xemacs21-canna はそのままだと fetch に失敗するようです。 失敗するのは具体的にはどのファイルでしょうか?手元でやってみた限 りでは全て fetch 出来るみたいです。 少なくとも /usr/ports/distfiles/xemacs/* は local に持っていない 状態から試したので、そこのファイルは大丈夫じゃないかと。 # X-Mailer: Sylpheed version 1.0.6 (GTK+ 1.2.10; i386-xpc98-netbsd1.4.3) # 試験的に違うマシンから投稿しています。 # # NetBSD/pc98 か……何もかも皆懐かしい -- Rikito INAKAZU (稲員力士) riki1017k...@gmail.com
[FreeBSD-users-jp 93162] Re: FYI: Watching Youtube without browsers
稲員です。 On Tue, 24 Aug 2010 00:18:06 +0900 S.Kimura (木村成一) rikim...@a011.broada.jp wrote: A. multimedia/youtube-viewer 今月入荷した新顔。X、(X 対応の) mplayer、perl 他が必要。 | Usage: youtube-viewer || [url] || [words] kterm 上などで、youtube-viewer [beatles | rolling stones | ayaka | superfly] 等と打てば、使用法どおり観れます。 タイトル、歌手名など、日本語が見えない。unicode の端末は未テスト。 kterm は UTF-8 を扱かえないですからね。他の UTF-8 に対応した端末 エミュレータなら正常に表示できると思います。私が試した範囲では、 ports/x11/{Terminal,gnome-terminal,mlterm} は大丈夫でした。 但し LANG=ja_JP.UTF-8 以外 (例えば私の様に eucJP) で使っている 場合には LANG の調整なり各端末エミュレータの設定なりが必要でしょう。 また、 kterm 上でも kterm が扱かえる漢字コードに変換してやれば正常な 表示で利用可能です。やり方はいくつかあるでしょうが、一例として FDclone (ports/shells/fd) を使った方法を。 1. 次の様に fd を起動。 (以下 kterm は euc で利用していると仮定) $ fd -LANGUAGE=euc -PTYMODE=1 -PTYOUTKCODE=utf8 2. 'x' や 'h' コマンドを使って FDclone から youtube-viewer を実行。 以上で FDclone が youtube-viewer の出力を UTF-8 から EUC-JP に 変換してくれるので kterm 上でも日本語が崩れずに利用可能です。 B. multimedia/minitube multimedia/mplayer minitube で検索し、gmplayer で視聴、できます。 うちでは minitube 単体では視聴できていません。何が悪いのか、不明。 詳細省略 たまに使っていますが、こちらでは minitube 単体で普通に使えてますよ。 環境は 8.1-STABLE と 7.3-STABLE で Phonon の構成が若干違ったり しますが、どちらも単体で動画再生できています。 -- Rikito INAKAZU (稲員力士) riki1017k...@gmail.com
[FreeBSD-users-jp 93115] Re: Warning ports/editors/emacs 23.2
稲員です。 On Tue, 3 Aug 2010 14:20:54 +0900 S.Kimura (木村成一) rikim...@a011.broada.jp wrote: cc: unrecognized option '-2.0/' コンパイル中のこの表示に、単に、いささかの見苦しさを感じたのですが。 Emacs の本家には既に bug#5857 として報告され修正もされているようです。 23 系列に backport もされているので放って置いても 23.3 になれば勝手に 治ると思います。 emacs22 の方は流石にもう新版は出ないでしょうけど。 メンテナが承知の上で「害無し」として放置しているのかそうで無いのかは分かり ませんが、木村さんがどうしても気になるのであれば「本家の bug#5857 の件に 対処して欲しい」旨を send-pr されてはどうでしょう? あるいは local の ports tree に下のような patch でも放り込んでお茶を 濁しておくかでしょうか。 --- configure.orig 2010-05-08 12:10:16.0 +0900 +++ configure 2010-08-03 23:26:08.0 +0900 @@ -25820,7 +25820,7 @@ # the C preprocessor to some helpful value like 1, or maybe the empty # string. Needless to say consequent macro substitutions are less # than conducive to the makefile finding the correct directory. -cpp_undefs=`echo $srcdir $configuration $canonical | +cpp_undefs=`echo $srcdir $configuration $canonical unix | sed -e 's/[^a-zA-Z0-9_]/ /g' -e 's/^/ /' -e 's/ *$//' \ -e 's/ */ -U/g' -e 's/-U[0-9][^ ]*//g'` -- Rikito INAKAZU (稲員力士) riki1017k...@gmail.com
[FreeBSD-users-jp 93063] Re: pkg_add でエラー
稲員です。 On Mon, 05 Jul 2010 15:06:04 +0900 ke...@kens.fm ke...@kens.fm wrote: pkg_add -r phpMyAdmin をすると Error: Unable to get ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8.1-release/All/pdflib-7.0.4.tbz: File unavailable (e.g., file not found, no access) となって依存関係で困るようですが こんな場合はどうされますか? ports から pdflib-7.0.4 を先に入れておけば解決しますが もっとスマートな方法はありませんか? 一番 smart なのは、「PDFlib の license を確認する」ことでしょう。 個人利用以外は有償じゃありませんでしたっけ? pdflib-7.0.4のパッケージは何処へ行ってしまったんでしょうか? License が変更にでもならない限り package の提供は無理かと。 -- Rikito INAKAZU (稲員力士) riki1017k...@gmail.com
[FreeBSD-users-jp 93065] Re: pkg_add でエラー
稲員です。 On Mon, 05 Jul 2010 21:26:09 +0900 ke...@kens.fm ke...@kens.fm wrote: それならパッケージの依存関係に存在しないパッケージが含まれるのは使いにくいですね。 それでは ports-mgmt/portupgrade をインストールして portinstall -P databases/phpmyadmin でどうでしょうか。 ports-mgmt/portmaster でも確かできたと思います。 # 最初からそれを教えろって? そんな事もあってみなさんportsばかりを御利用になられるのでしょうか? 私はmakeの時間がじれったくってパッケージがあるものはなるべく パッケージで入れたいと思ったのですが、殆んどの方はパッケージなどは あまり利用されませんか? そんな事はないんじゃないですかねぇ。ただ素の pkg_add とかよりは皆さん portupgrade/ portmaster のようなツールを使われてるんじゃないかと思いますが。 -- Rikito INAKAZU (稲員力士) riki1017k...@gmail.com
[FreeBSD-users-jp 92976] Re: 7.2 で postfix が Bus error( closefrom で Bus error )
稲員です。 On Fri, 16 Apr 2010 11:32:18 +0900 もじもじ mojimoji...@yahoo.co.jp wrote: % grep __FreeBSD_version /usr/include/sys/param.h # grep __FreeBSD_version /usr/include/sys/param.h * __FreeBSD_version numbers are documented in the Porter's Handbook. #undef __FreeBSD_version #define __FreeBSD_version 702106/* Master, propagated to newvers */ の実行結果はどうなりますか? もし __FreeBSD_version が 702104 以上の値になっているなら、ユーザーランド が closefrom(2) 導入後のものになっているのだと思います。あと、 みたいです・・・どこでどうなったのやら・・・ と思ったら・・・ http://www.freebsd.org/doc/en/books/porters-handbook/freebsd-versions.html によるとソースツリーは 7.2 だけど、closefrom が入ってる・・・ これはどう解釈したらいいのでしょうか? いや、ですから closefrom(2) は 7.2R と 7.3R の間で MFC されたんですよ。 __FreeBSD_version 順にならべると、 702000(2009/04/15) -- 7.2-RELEASE 702104(2009/07/14) -- MFC: closefrom(2) ready! 702106(2009/09/14+) -- your system userland 703000(2010/02/09) -- 7.3-RELEASE となります。おそらく、件のソースツリーは 2009/09/14 から 2010/02/09 までの どこかの時点の RELENG_7 枝のソースなのでしょう。 ところで、既に件のソースツリー上で buildworld buildkernel されている ようですが、それならその kernel を installkernel すれば、とりあえずの 問題は解決しそうに思えます。 (installworld は多分不要) 最終的に最新版に上げるかどうかは別として。 -- Rikito INAKAZU riki1017k...@gmail.com
[FreeBSD-users-jp 92977] Re: 7.2 で postfix が Bus error( closefrom で Bus error ) 【解決!?】
稲員です。 On Fri, 16 Apr 2010 12:10:49 +0900 もじもじ mojimoji...@yahoo.co.jp wrote: まず、postfix(ports) のパッチに +#if (__FreeBSD_version = 702104 __FreeBSD_version = 80) \ こんな行があるのを発見。というか、以前出てました。 これ、703000 では無いかと思う、今日この頃。 702104 で導入された機能ですからこのパッチで正しいのでは? いや、702104 でももっているのでしょうが、まともに動かな いのでは、と。Bus error だし。 そちらの環境で「まともに動かない」のは、ユーザーランドだけが 702104 以降に なっていて、カーネルは closefrom(2) に対応していない 702000 のものになっているからでしょう。 ところが、これを 703000 にすると、今度はコンフリクトが・・・ http://d.hatena.ne.jp/lipbalm/20100327/1269622446 では、7.3 でコンフリクトされた方の解決方法が載ってます。 色々調べている時、このページを見ましたが、「あっぶねーなー」 と思って見てましたが、いざ、こちらもその状態になり納得。 HAS_CLOSEFROM じゃないから自前の closefrom を使おうとす るんですが、これの戻り値が int。 って事は、postfix の各場所の使用箇所も int を念頭に作ら れてる。 でも、/usr/include/unistd.h では void 宣言。 自前の closefrom を使う時とシステム標準のものを使う時で、それぞれ正しい プロトタイプ宣言が有効になるように書かれているので問題ないでしょう。 ざっとソースを見ましたが postfix は closefrom の戻り値を使ってないので、 正しく宣言されているかぎり int でも void でもかまわないかと。 上でパッチの 702104 を 703000 に変更するとコンフリクトするとおっしゃっている のは、その変更がこの辺の仕組みを壊してしまっているからです。 どっち直すって、/usr/include/unistd.h かなぁ(^^; バカな真似はやめましょう (^^; これは、結構あっちこっちで騒がれているよう・・・ 少なくとも上の URL の事例は ports を使わずに野良ビルドしてはまった例で、 ports を使えばパッチで解決されている問題ですね。 追伸: いま、別の人間が同じ 702106 を使っていたので nm... を 実行してもらいました。そしたら closefrom が無かったで す。なんてこったい、と思って lib.so.7 をそのマシンで コンパイルして貰って、その lib.so.7 を nm して貰ったら・・・ 入ってます。がびーん。私が libc をリコンパイルしたのが 悪いの!?(T_T) その人が nm に -D オプション付けてなかったなんてオチでは? -- Rikito INAKAZU riki1017k...@gmail.com