サイズ: 5280
コメント:
|
サイズ: 5292
コメント:
|
削除された箇所はこのように表示されます。 | 追加された箇所はこのように表示されます。 |
行 1: | 行 1: |
= nest閉架図書館 その1 = | = nest図書館閉架書庫 その1 = |
行 18: | 行 18: |
= nest閉架図書館 その2 = | = nest図書館閉架書庫 その2 = |
nest図書館閉架書庫 その1
nestのpkg_infoコマンドが大量のエラーメッセージを吐いていた件をついに直した。
$ PKG_DBDIR=/var/.zfs/snapshot/20110120-1835/db/pkg pkg_info > /dev/null pkg_info: can't find package 'alsa-lib-1.0.23' installed or in a file! pkg_info: can't find package 'alsa-plugins-1.0.23_1' installed or in a file! pkg_info: can't find package 'compat7x-amd64-7.3.703000.201008_1' installed or in a file! pkg_info: can't find package 'gmime-24-2.4.15' installed or in a file! pkg_info: can't find package 'gsm-1.0.13' installed or in a file! pkg_info: can't find package 'ja-nkf-2.1.1,1' installed or in a file! pkg_info: can't find package 'ldapbrowser-2.8.2_3' installed or in a file! pkg_info: can't find package 'ldapsh-2.00_3,1' installed or in a file! ...
なぜか/var/db/pkg以下の各ディレクトリのパーミッションが0700になっていた。どうしてこうなった。 中のファイルのパーミッションも0600。どうしてこうなった。
nest図書館閉架書庫 その2
clearさんがrxvt-unicodeをconfigureしようとしたらエラーが発生。
checking for perl5 suitability... configure: error: no, unable to link
configure.acを見てみると
AC_MSG_CHECKING(for $PERL suitability) if $PERL -MExtUtils::Embed -e "use v5.8" >/dev/null 2>/dev/null; then save_CXXFLAGS="$CXXFLAGS" save_LIBS="$LIBS" CXXFLAGS="$CXXFLAGS `$PERL -MExtUtils::Embed -e ccopts`" LIBS="$LIBS `$PERL -MExtUtils::Embed -e ldopts`" AC_LINK_IFELSE([AC_LANG_PROGRAM([[ #include <EXTERN.h> #include <perl.h> #include <XSUB.h> ]], [[ PerlInterpreter *perl = perl_alloc (); ]])],[rxvt_perl_link=yes],[rxvt_perl_link=no]) CXXFLAGS="$save_CXXFLAGS" LIBS="$save_LIBS" if test x$rxvt_perl_link = xyes; then AC_MSG_RESULT(ok) AC_DEFINE(ENABLE_PERL, 1, Define if you can embed a perl interpreter) IF_PERL= PERL_O=rxvtperl.o PERLFLAGS="`$PERL -MExtUtils::Embed -e ccopts`" PERLLIB="`$PERL -MExtUtils::Embed -e ldopts`" PERLPRIVLIBEXP="`$PERL -MConfig -e 'print $Config{privlibexp}'`" else AC_MSG_ERROR([no, unable to link]) fi else AC_MSG_ERROR([no working perl found, or perl not version >= 5.8]) fi
/tmp/test.c
$ gmake CFLAGS="-Wall -Wextra $(perl -MExtUtils::Embed -e ccopts)" test 2>&1 cc -Wall -Wextra -DAPPLLIB_EXP="/usr/local/lib/perl5/5.10.1/BSDPAN" -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -I/usr/local/lib/perl5/5.10.1/mach/CORE test.c -o test In file included from test.c:2: /usr/local/lib/perl5/5.10.1/mach/CORE/perl.h:605:24: error: /usr/local/include/sys/types.h: Permission denied In file included from /usr/local/lib/perl5/5.10.1/mach/CORE/perl.h:616, from test.c:2: /usr/include/stdarg.h:34:23: error: /usr/local/include/sys/cdefs.h: Permission denied /usr/include/stdarg.h:35:24: error: /usr/local/include/sys/_types.h: Permission denied In file included from /usr/local/lib/perl5/5.10.1/mach/CORE/perl.h:616, from test.c:2: ...
またか
$ ls -ld /usr/local/include/sys/ drwx------ 2 root wheel 3 10月 27 16:41 /usr/local/include/sys/ $ sudo ls /usr/local/include/sys/ asoundlib.h $ sudo pkg_info -W /usr/local/include/sys/asoundlib.h /usr/local/include/sys/asoundlib.h was installed by package alsa-lib-1.0.23
またお前か
renda仮説: umask 0077でインストールされた可能性
検証1: sudoでumaskはリセットされないのか
$ umask 0022 $ sudo umask 0022 $ umask 0077 $ sudo umask 0077
あー
参考: sudoers(5) Linux JMより引用
umask_override これをセットすると、sudo は umask を sudoers の umask オプションで指定されたとおりの値に、変更を加えることなく設定する。このことによって、ユーザ自身の umask 値よりもっと緩やかな umask 値を sudoers で指定することが可能になる。sudo の昔の動作と同じになるわけだ。 umask_override をセットしない場合、現在の sudo は umask を、ユーザの umask 値と sudoers で指定した umask 値とのビット和に設定することになっている。このフラグはデフォルトでは off である。
- 追記: sudoで常に0022になるように設定されました
Defaults umask=0022 Defaults umask_override
検証2: portinstallでumaskは尊重されるのか
$ sudo portinstall games/sl ... ===> Checking if games/sl already installed ===> Warning: your umask is "0077". ... $ ls -ld /var/db/pkg/sl-3.03/ /usr/local/bin/sl /usr/local/share/doc/sl/README ls: /usr/local/share/doc/sl/README: パーミッションが拒絶されました -r-xr-xr-x 1 root wheel 11440 1月 20 21:19 /usr/local/bin/sl drwx------ 2 root wheel 6 1月 20 21:19 /var/db/pkg/sl-3.03/
ああー