FreeBSD / omake -P raises Fatal error: exception Invalid_argument("FAM not enabled")
FreeBSDは最後の理想郷に思えた。
なぜか、~/*.coreがいっぱいある。
$ sudo pkg_add -r omake ... $ omake -P *** omake: reading OMakefiles *** omake: finished reading OMakefiles (0.04 sec) Fatal error: exception Invalid_argument("FAM not enabled")
-Pの無いomakeなんて。
$ cd /usr/ports/devel/omake $ sudo make install clean ... --- Checking for FAM... (NOT found) ... $ ls -al /usr/local/lib/libfam* -rw-r--r-- 1 root wheel 137820 7 31 17:28 /usr/local/lib/libfam.a -rwxr-xr-x 1 root wheel 805 7 31 17:28 /usr/local/lib/libfam.la lrwxr-xr-x 1 root wheel 11 7 31 17:28 /usr/local/lib/libfam.so -> libfam.so.0 -rwxr-xr-x 1 root wheel 91159 7 31 17:28 /usr/local/lib/libfam.so.0
やはりomake -Pはできない。
どうやら、/usr/ports/devel/omake/work/omake-0.9.8.5/lib/configure/fam.omで何やらlibfamの存在チェックをしているが、そこでlibfamが存在しないと判定されてる気配。
/etc/make.confに、CFLAGS=-I/usr/local/include, LDFLAGS=-L/usr/local/libまたは、sudo CFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib make install clean
しょうがないから、ハードコード。gamin版。fam版は-DHAVE_FAMNOEXISTSを削除
$ cat ./work/omake-0.9.8.5/lib/configure/fam.om open configure/Configure # # Figure out if FAM is installed # .STATIC: FAM_AVAILABLE = true FAM_CFLAGS = -DFAM_ENABLED -DHAVE_FAMNOEXISTS FAM_CLIBS = -lfam # これ以降の設定は適用させない # コメントアウトなり条件文を調整するなり適宜
これだけだと、/usr/bin/ld: cannot find -lfamとか素敵なエラーを吐く。
FreeBSD的にそれが正しいのか悪いのか判断しかねるので、ld.so.confをいじったりはせず、ocamlopt.optからccを呼び出す時のCFLAGSを適当かつ強引に設定する。
$ sudo vim ./work/omake-0.9.8.5/lib/build/OCaml.om -public.OCAMLFLAGS = -warn-error A +public.OCAMLFLAGS = -warn-error A -ccopt -L/usr/local/lib
さらにfam.hがネーヨとかおっしゃりやがりますので、ln -s /usr/local/include/fam.h /usr/include/fam.h
本当は-I/usr/local/includeを指定すればいいんだけど、OCAMLFLAGSに指定しても、ccまで伝播しなかった。
ヘッダなら後で消しても平気ダシネ
厳かにsudo make install clean
fam.hのリンクを作っていたなら、rm /usr/include/fam.h
$ omake -P *** omake: reading OMakefiles *** omake: finished reading OMakefiles (0.06 sec) - scan sources/lib/core/config scan-cxx-config.cpp + g++ -pipe -std=c++0x -Wall -O0 -g -D_DEBUG -rdynamic -fPIC -fPIE -Wl,--export-dynamic,-rpath,$ORIGIN -I. -I/usr/local/include/ClearSilver -I/usr/local/include/python2.6 -I/usr/local/include -MM config.cpp cc1plus: error: unrecognized command line option "-std=c++0x" ...
・・・さて、gcc45いれようか。
ubuntu9.10 Windows7+wubi = No wubildr
Windows7+Wubiの場合に発生する?かもしれない素敵なエラー
Wubiインストール後に再起動すると、どうやらWindowsのブートローダーからUbuntuのローダーを起動することはできているが、結局は"No wubildr"やら言われて起動出来ないという話。
Windows7は何かしらのそれなりには深いであろうと思われる理由から、インストール時に100Mの小さなパーティションを作る場合がある。
管理ツールなりで、そのパーティションに適当なドライブレターを割り振って、そこへC:/wubildrとC:/wubildr.mbrをコピーしてやる。
前者だけでも平気かも。
ちなみに、bcdedit+Freebsdの場合に、boot1置いたりするのもそこ。
9.10、やっぱり茶色いです。
Gnome shell on jaunty - package xscrnsaver not found
workaround:libxss-dev
c++ 関数内static変数はexitで終了してもデストラクタは正しく呼ばれる
ちょっとうろ覚えで心配になったから確認
#include <iostream> #include <stdlib.h> struct Logger { int n; Logger(int n) : n(n) { std::cout<<"Constructed:"<<n<<std::endl; } ~Logger() { std::cout<<"Destructed:"<<n<<std::endl; } }; Logger & holder() { static Logger log(0); return log; } int main() { Logger log(1); holder(); exit(0); }
% g++ test.cpp && ./a.out Constructed:1 Constructed:0 Destructed:0
static変数のほうは、正しくデストラクタが呼ばれている。
ローカル変数のほうも、デストラクタが起動しないのが正しいので、問題無し。
fc11 apache - mod_fcgid and suexec
盛大にハマったのでメモ。
% sudo setenforce 0 % sudo getenforce Permissive % sudo /etc/rc.d/init.d/httpd restart ...
suexecを無効化すれば正常に動作する。
ただの開発環境なのに、suexecは大げさ。
でも、suexecでの動作テストにもなるから、有効にしておきたいのが人情。
戻すときはsudo setenforce 1
% sudo tail /var/log/httpd/suexec.log ... [2009-06-16 19:46:45]: uid: (500/****) gid: (500/****) cmd: test.fcgi [2009-06-16 19:46:45]: command not in docroot (/home/****/public_html/cgi-bin/test.fcgi
% sudo /usr/sbin/suexec -V -D AP_DOC_ROOT="/var/www" -D AP_GID_MIN=100 -D AP_HTTPD_USER="apache" -D AP_LOG_EXEC="/var/log/httpd/suexec.log" -D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin" -D AP_UID_MIN=500 -D AP_USERDIR_SUFFIX="public_html"
mod_userdirは、UserDirがAP_USERDIR_SUFFIXと同じである限りはsuexecとよろしくやってくれるから、mod_userdir経由のアクセス(/~hoge/...)でなら素でおkだぜ〜という情報もあるが、うちの環境ではDocroot以下に無いといわれてダメだった。
それなりのハマリどころらしく、いろいろ情報はあるが、これだ!というのがなかなか。
- http://www.fanta-orange.com/blog/2009/01/19/emacs_suexec/
- >170 :名無しさん@お腹いっぱい。:2007/09/28(金) 18:12:19
> >>169
> じゃ
> mount --bind /home /var/www/home
fedora apache2 DocumentRoot Options +Indexesが効かない
% sudo tail /var/log/httpd/error.log
...
[Mon Jun 15 08:38:00 2009] [error] [client 127.0.0.1] Directory index forbidden by Options directive: /****
% sudo vim /etc/httpd/conf.d/welcome.conf
# # This configuration file enables the default "Welcome" # page if there is no default index page present for # the root URL. To disable the Welcome page, comment # out all the lines below. # +#<LocationMatch "^/+$"> +# Options -Indexes +# ErrorDocument 403 /error/noindex.html +#</LocationMatch>
すごいバッドノウハウだと思います。