〜2006年7月下旬〜
とりあえずgitをインストールしてみないことには始まりそうもないので、
% sudo yum -y install git git-core git-cvs git-svn git-email
でインストール。なぜかgit-archやtlaまでいっしょにインストールされた。
忘れがちなyum updateを自動化した。
% chkconfig --list yum yum 0:off 1:off 2:off 3:off 4:off 5:off 6:off % sudo chkconfig yum on % chkconfig --list yum yum 0:off 1:off 2:on 3:on 4:on 5:on 6:off % sudo service yum start 夜間 yum 更新の有効化中[ OK ]
/etc/crontabを見るとdailyは15:02らしい。夜間じゃないと思うぞ。 それはいいとして、
% sudo ls -l /var/lock/subsys/yum -rw-r--r-- 1 root root 0 Jul 22 15:09 /var/lock/subsys/yum
ああ、今日の分にはちょっと遅かったか。
さすがだ。
へえ、 CMakeってP-language使ってんのか。 ってどっち?ソースを取ってきて確認。
% tar xf cmake-2.4.2.tar.gz % find cmake-2.4.2 -type f |grep -i perl cmake-2.4.2/Modules/FindPerl.cmake cmake-2.4.2/Modules/FindPerlLibs.cmake
なんか勘違いしてない?
まあ、現在ではautoconfのほうがPerlに依存してるわけで、 そんなことにこだわったってしょうがないと思うんだけどね。 autom4teがPerlで書かれている。
期日が過ぎてもgenkeyしろとメールが来る。あたりまえか。
面倒だからapache自身をuninstallすることにした。
Fedora Core使い出して1度も使ったことないしな。
でもyum remove apacheしても存在しないという。
yum search apacheしたらhttpdという名前だった。
そういえばapache2からはそんな名前だったな。
考えてみるとcertwatchを止めるだけならNOCERTWATCH=yesを/etc/sysconfig/httpdに書いとけばいいわけでapache2を消さなくてもいい。 /etc/cron.daily/certwatchを見ると
# Use configured httpd binary httpd=${HTTPD-/usr/sbin/httpd} # Sanity checks test -z "${NOCERTWATCH}" || exit 0 test -x ${httpd} || exit 0
だからapache2を消せばもちろんメールは来なくなるわけだが。
/usr/bin/run-partsを見てたら妙な記述が気になった。
# Ignore *~ and *, scripts for i in $1/*[^~,] ; do [ -d $i ] && continue # Don't run *.{rpmsave,rpmorig,rpmnew,swp} scripts [ "${i%.rpmsave}" != "${i}" ] && continue [ "${i%.rpmorig}" != "${i}" ] && continue [ "${i%.rpmnew}" != "${i}" ] && continue [ "${i%.swp}" != "${i}" ] && continue [ "${i%,v}" != "${i}" ] && continue
やけにまわりくどい表現だ。 $iから.rmpsave等を削除して$iと違っていたらcontinue。 なぜ素直にcaseを使わないんだろう?
case $i in *.rpmsave|*.rpmorig|*.rpmnew|*.swp|*,v) continue;; esac
CMakeってMakeだと思っていたけど、どっちかというとconfigureなんだね。 勘違いしてた。
% printf '#include <stdio.h>\nmain(){printf("Hello\\n");}\n' >hello.c % echo 'add_executable(hello hello.c)' >CMakeLists.txt % cmake . -- Check for working C compiler: gcc -- Check for working C compiler: gcc -- works -- Check size of void* -- Check size of void* - done -- Check for working CXX compiler: c++ -- Check for working CXX compiler: c++ -- works -- Configuring done -- Generating done -- Build files have been written to: /some/where/hello % make Scanning dependencies of target hello Building C object CMakeFiles/hello.dir/hello.o Linking C executable hello % ./hello Hello % ls -F CMakeCache.txt CMakeLists.txt Makefile hello* CMakeFiles/ CMakeTmp/ cmake_install.cmake hello.c
なんかいっぱいファイルが作られてよくわからないな。
freshmeatでこんなものを見つけてしまった。
CeGCC is a project that offers cross-development tools for Windows CE (PocketPC).
We're aiming at providing a consistent and working set of development tools that generate code for Windows CE devices such as PDA's and smart phones. Our intended development platforms are the cygwin environment and GNU/Linux systems.
さっそく Binary pre-release for Linux を取ってきてインストール。動くかどうか確認。
% /usr/ppc/bin/arm-wince-pe-gcc -dumpversion /usr/ppc/bin/arm-wince-pe-gcc: error while loading shared libraries: \ libiconv.so.2: cannot open shared object file: No such file or directory
まじすかー。iconvはglibcに入ってるからlibiconvをインストールしたくないしなあ。
それ以前にyum searchではlibiconvはみつからないし。
適当にlibiconv.so.2をでっち上げてみよう。libcで代用。
% ln -s /lib/libc.so.6 /tmp/libiconv.so.2 % LD_LIBRARY_PATH=/tmp /usr/ppc/bin/arm-wince-pe-gcc -dumpversion 4.1.0
動いちゃったよ。ちょっとびっくり。
% echo 'main(){}' >main.c % LD_LIBRARY_PATH=/tmp /usr/ppc/bin/arm-wince-pe-gcc main.c % file a.exe a.exe: MS-DOS executable PE for MS Windows 32-bit
問題ないようだ。なんかうそみたいな話だが。
昨日のCeGCCをRubyで試してみる。まずはconfigureから。
% LD_LIBRARY_PATH=/tmp \ PATH=/usr/ppc/bin:$PATH \ ac_cv_func_getpgrp_void=yes \ ac_cv_func_setpgrp_void=yes \ ac_cv_sizeof_long_long=8 \ ac_cv_func_memcmp_clean=yes \ ac_cv_func_memcmp_working=yes \ ../ruby18/configure --target=arm-wince-pe --host=arm-wince-pe --build=i686-pc-linux -C
一応configureは通った。でもmakeするといきなりエラー。
In file included from ../ruby18/ruby.h:684, from ../ruby18/array.c:15: ../ruby18/missing.h:88: error: conflicting types for 'memmove' ../ruby18/missing.h:98: error: conflicting types for 'strcasecmp' ../ruby18/missing.h:102: error: conflicting types for 'strncasecmp' ../ruby18/missing.h:106: error: conflicting types for 'strchr' ../ruby18/missing.h:107: error: conflicting types for 'strrchr' <以下省略>
なんか変だな。とりあえずconfigure時のログであるconfig.logを確認。
configure:14946: checking for memmove configure:15002: arm-wince-pe-gcc -o conftest.exe -g -O2 conftest.c -lm >&5 conftest.c:92: warning: conflicting types for built-in function 'memmove' /usr/ppc/lib/gcc/arm-wince-pe/4.1.0/../../../../arm-wince-pe/lib/libm.a: \ could not read symbols: Archive has no index; run ranlib to add one collect2: ld returned 1 exit status
ranlibせよときたかー。
% LD_LIBRARY_PATH=/tmp sudo /usr/ppc/bin/arm-wince-pe-ranlib \ /usr/ppc/arm-wince-pe/lib/libm.a
これでok。config.cacheを消してconfigureしなおしてmake。 libruby-static.aだけ作ってみる。
% LD_LIBRARY_PATH=/tmp PATH=/usr/ppc/bin:$PATH make libruby-static.a
ところどころ警告は出たが問題なく作れた。 まだまだ微調整は必要だが結構素性はいいかも。
chopが遅いじゃんという話。
ベンチマークの結果はたしかに遅い。というよりIndexingのほうが速すぎる。
しばらくだれも気づかなかったんだが、bigstring[0..-1]だとchopにならない。
-1は最後までという意味なのでbigstringと同じ。
ほんとはbigstring[0..-2]じゃないと意味がない。
という
事実に気づくまで、
いろいろな説が出て面白かった。
突然ADSLモデムのリンクが切れた。
切れるのはたまにあるからしばらくそのまま放っておいたんだが、
リンクのLEDが点滅から点灯に移行してもあの「カチッ」という音がしない。
1時間程待っても変化なし。しかたなくもうPCからルータから全部電源落として、
録っといた救命救急24時を見まくる。
6話ほど見て電源入れなおしたら、全然問題なし。
なんだったんだろう?
たてつづけに「タモリ倶楽部」と「世界一受けたい授業」でGoogle Earthが出てきた。 なんかの戦略?
- About:
- Automatic Firewall configures your firewall by looking at your environment and deciding what is a good fit for your needs. It is intended for the novice broadband user to install and forget about, but still be fairly well protected.
[ruby-talk:204484]
[ruby-talk:204859]
[ruby-talk:204992]
まったく聞く耳持たず。3日連続で同じような時刻にやってきてる。
さすがに3度目ともなると反応がない。明日も来たら笑うが。
雑音だらけで使いもんにならなくなった。 次の曲前の曲ボタンを押すとたまに復活するので騙し騙し使っていたけど、 もうさすがに限界だ。
oggファイルが再生できてUSBストレージなプレーヤを探そう。