プライベート空間内のホストに外部からHTTPアクセスを行いたい。そこで、Apacheのmod_proxyを使って、既存のホストの特定のURIにアクセスした際に、内部のホストにアクセスするようにリバースプロキシを設定した。
最初はこれでうまくいくかと思ったのだが、どうもうまくいかないことがある。どうも、コンテンツの中のリンク等までは書き換えてくれないので、リンク先が相対パスではない場合、うまくいかず、proxyを動かしているホスト上のコンテンツへのアクセスになってしまう。つまり、ホスト名を含む完全なURIや、ホスト名がないが絶対パスで表されたリンク先は、全く役に立たないらしい。
これを避けるには、もちろんそんなものを使わないようにすればいいが、出来合いのCGIではどうしようもない。細工するとすれば、内部ホスト上でもproxyを動かしているホストのproxyと同じ環境で動くように設定するか、フィルタを書くか、くらいしか思いつかないが、そこまでしたくない...
とりあえず、stone等のパケットリピータで運用するのが手軽でいいだろう。
先週末から繋がらないと思ったら、とうとう廃止されたらしい。これも何の通知もなく行われたように思う。
そういえば先月中ごろ、院生に「NetNewsって知ってるか?」と聞いたら、知らないといわれてショックを受けたばかりだ。
ruby+oniguruma-1.8.5.12,1をportupgradeで1.8.6にしようとしたら、うまくいかない。"186の作り方なんて知らないよ"といったエラーとともに終了してしまう。
devel/onigurumaでmake patchしてからportupgradeをやり直すと、今度はうまくいく。どうも、deve/onigurumaの修正がお気に召さなかったらしい。
で、きちんと調べてみると、devel/onigurumaのワーキングディレクトリを消さずにlang/ruby18をWITH_ONIGURUMA=1付きでビルドすると、こうなるらしい。ワーキングディレクトリがあるのでruby186.patchが存在すると思いきや、実は無かった...というのが原因となるようである。
これって、バグと言うべきなのか?悩ましいので、黙って胸の内に秘めておくことにした(って秘めてないか)。
他大学での非常勤の授業が始まる。今年は情報系の担当者の事前の打ち合わせ会がなかった。システムの変更点がなかったため、らしい。これは、問い合わせて初めてわかった。メールでの連絡があってもいいものだが...
それに関連して、いろんな連絡もなかった。まず、書店への教科書の指定ができていなかった。いつもは教科書の指定を所定の業者と情報センターとに行うように連絡があったが、今年はなかったので、シラバスへの記載を見てそのまま業者への連絡が行われたと思っていたら、そうではなかったらしい。学生から、業者からのリストに記載がなかったといわれて、初めて気づいた。
次いで、授業でファイルの配布に使用する共有フォルダの準備ができていなかった。しかも、授業前に確認すると、その日のうちには準備されるということだったが、あとで再度確認すると、今年度からは希望する教員のみしか作成しないといわれた。そんな連絡は受けていない。この話を聞いた時点で、思わずキレて怒鳴ってしまいそうになった。
その他、別の部署の管轄だと思うが、授業の対象が短大生から4大生に連絡もなく替わっていたり、事前の授業の割り振り抽選が何の説明もなく行われていたり、いろんなトラブルが続く。非常勤って、そんなもんなのか。
昨日から久々の帰省。しかし、今日は仕事があるので、11時には自宅に戻りたい。そこで、近鉄の八木駅から丹波橋駅までのダイヤを、近鉄電車のケータイサイトから検索してみた。
その結果、9:19の西大寺行急行で9:41に到着し、9:53に京都行急行に乗ればいいらしいが、その前に9:42の京都行急行がある。なぜかこれは表示されない...別のホームでの乗り換えだが、停車中の電車のドアを通っての水平移動だけで乗り換えだし、そもそもこの乗り継ぎを想定して連絡ダイヤになっているはず。
自社以外の乗り継ぎ案内では、乗り継ぎ時間が必要なのでこのようになることはやむをえないが、自社のダイヤならこのくらいのことはわかっているはずなので、正確な表示をして欲しいものだと思う。それとも、ダイヤ検索の部分は、別の会社のものを使っているのだろうか?
近鉄電車に乗っていると、竹下景子を起用した広告が目に付くが、なんだかおかしい気がする。何がおかしいのだろう?テレビCMには違和感がなかったのに...と思ってよく見ると、なんとなくシワが足りない気がする...
2007.3.31のIE7の件で、Microsoftのサポートに引き続き問い合わせを行ったら、1週間ほどして返事があった。とはいえ、内容はある種「当たり前」のことで...
まず、アドオンを全て無効にせよ、とのことだった。確かにそうだが、そんなことをするのはめんどくさい。と思っていたら、アドオンなしでIE7を起動するショートカットがスタートメニューのアクセサリ−システムツールにあるらしい。もしくは"-extoff"オプションで起動するか。これで試し、必要ならサードパーティ製ブラウザ拡張を無効にして、あとはひとつずつ有効にしながら動作確認せよ、とのことだった。
面倒だが、やってみることにすると、確かに全てのアドオンを無効にすると問題は起きない。そこでひとつずつ有効にして...なんてことをする余裕は無いので、適当にあたりをつける。すると、SKYPEのプラグインの有効・無効で動作が変わる。これが原因だったらしい。
なお、これでサポートでの1インシデント消費となってしまった。もっと自分で調べておくべきだった、と後悔。
PR ports/108105で書いた問題は、再現性が確認できないらしい。しかし、こちらでは100%再現する。gcc-4.2.0をアップデートしても再現しているので、一過性の問題ではないと思う。しかも、こちらでは、i386でもamd64でも発現する。
一方、7-current on i386では発現しない。しかも、7-current上では、警告メッセージすら表示されない。このgccはpackageでインストールしたので、何かその辺りに違いがあるのだろうか?そこで、stableでもportsのものをアンインストールして、packagesのものに変えてみた。しかし、それでも同じ結果であった。gfortran42は(現状では)環境変数は見ない、ということなので、原因として思いつくものがもうない。
コンソールに
Apr 10 10:52:06 *** sm-mta[****]: ****8: SYSERR(root): Too many hops 26 (25 max): from <****> via ****, to <****>というようなログが不意に表示された。
とあるMLからのメールがこれに該当しているらしいが、確かにエラーにならなかったメールでも25に近いhop数を経ている。特に、qmailが間に入ると、これが1つのホストだけでかなりの数を記録してしまう。過去のログを見ると、昨日も同じことがあったらしい。幸い、今年のログではそれしかなかったようなので、そのMLサーバの周りの環境が変わったのかもしれない。
確か、これでメールの転送ループを検出していると思うのだが(自信なし)、25では少ないのか?qmailが跋扈している現在では、そんな気もする。RFC 2821では、この値をループの閾値に使うときには100以上にせよ、とある(参考)。ちょっと大きい気もするが、それに従うことにした。sendmailで、cfで設定するには、
define(`confMAX_HOP', `100')dnl等と指定して、sendmail.cfを生成すればいい。
マルチホームホストで、別のマルチホームホストへのarpを行うと、時々、本来のものではないNICから返事が返ってくるらしい。その際、相手のMACアドレスを見ると、必ず相手のNICの側で対応が逆になっている。おそらく相手が悪いのだろうが、なんとなく気持ち悪い。ちなみに、相手はLINUXです。
freeml.comのメールには、末尾に広告がつくが、AL-Mail32で見る限り、これが表示されないメールがある。実際には広告はついているようだが。
どうも、MIMEのマルチパートのメールではこれが「見えなく」なるらしい。単にテキストとして付くので、マルチパートの一部にならず、表示されない、ということらしい。
JIS2004フォントが、WindowsXPでもMicrosoft Updateの「追加パッケージ」として表示されるようになってしまった。これは、以前にも書いたように、非常に行儀の悪い文字なので、使いたいとは思わない。
今のところは、自動更新でインストールされるわけではないが、そのうちにそうなってしまうのだろうか?とりあえず、二度と表示しないことを願って「再表示しない」のチェックをつけておいた。
とうとう、大学院生向けの特別講義に「英語のお勉強」が出来たらしい。
とうとう、日本のケータイに対応したらしい。この際、完全に乗り換えようかと真剣に検討中。
研究室のWinXP Pro SP2が起動しなくなったらしい。電源投入後、Windowsの起動画面の前に「次のファイルが存在しないかまたは壊れているため、Windows を起動できませんでした: \WINDOWS\SYSTEM32\CONFIG\SYSTEM」というようなメッセージが出て、起動しなくなっっている。確か、一昨日に、ブルースクリーンになって止まっているのを確認したので電源を切っておいたのだが、その後はこのような状態になって起動しないらしい。
まず、画面の指示に従って、CD-ROMから起動して回復コンソールを使ってみる。DELLのPCなので、WinXPインストールディスクは付属せず、DELL製のセットアップディスクが付いていた(らしい)。そこで、それで起動してみたが、起動後は単にコマンドプロンプトが使えるだけのようである。以前に別のPCで使ったときには、紺なのではなかった気がするのだが...と思いつつ、気を取り直し、実際に件のファイルがないのかを確認しようとした。
C:\>cd WINDOWSとすると、アクセスできない、というエラーがでてcdできない。しかし、
C:\>dir C:\WINDOWSや
C:\>dir C:\WINDOWS\SYSTEM32は問題なくできる。アクセス権の問題だと思うのだが、attribコマンドでも何もできない感じがする。そもそも、FAT32のドライブでも同じであったことから、アクセス権ではない気がする。なお、C:\WINDOWS\SYSTEM32までは存在したが、それ以下のconfigフォルダが存在していないこともわかった。
念のため、別のWinXPのインストーラCD-ROMを使って回復コンソールを起動してみた。しかし、状況は変わらない。しかも、これではC:はFAT16のドライブで、D:がWinXPと見える。DELLの隠しパーティションが見えているらしい。DELLのCD-ROMではこれが見えなくなっていることになる。
ここで、エラーメッセージでgoogle様のお告げを聞いてみると、http://support.microsoft.com/kb/436927/jaなどが見つかった。そこの指示で、起動ディスクからの起動での方法に従おうとしたが、上述のように回復コンソールがきちんと動作していないような気がする。Administratorのパスワードの入力画面などは出ないし、プロンプトでもC:\WINDOWS<ではなくC:\<になったままである。cdできないので、なんともできない。起動ディスクを作るのも面倒なので、却下。
もう少し情報を当たると、「Windows XP修復大作戦」というサイトが見つかった。こちらの症状もよく似ている気がする。そこからリンクされているhttp://support.microsoft.com/kb/307545/JA/の理屈を使うことにした。ここを見る限り、C:\WINDOWS\SYSTEM32\config以下のファイルは、システムのレジストリハイブのようである。これさえ回復できればいいらしい。しかも、自動バックアップがとられているようで、うまくすればほぼ無傷で復旧できるようである。ファイルをコピーできればいいので、NTFSを読み書きする手段を探してみた。
念のために、ファイルシステムに問題があるのだろうか?と思い、"回復コンソール"からchkdskを実行したが、エラーは見られなかった。そこで、ファイルシステムの整合性は問題ないとして、Windows以外の方法でファイルの修復を考えてみる。お手軽なのはKNOPPIXだろう、ということで、KNOPPIX日本語版3.6のCD-ROMで起動してみた。hda2が見えることを確認した後、念のために"config"などの名前のフォルダをfindコマンドで探してみるが、見つからなかった。うっかりと移動したわけではないらしい。ここで思い切って操作する決心をした。
しかし、このバージョンのKNOPPIXでは、NTFSの読み出ししかできない。そこで、KNOPPIX日本語版5.1.1をダウンロードしてCDに焼き、そこから起動してみる。まず、デスクトップからhda2をブラウズすると、確かに"System Volume Information"以下に「_restoreなんとか」というフォルダが1つあり、その下の「PR何とか」というフォルダで一番新しいのはトラブルが起こった日の日付になっていた。さらにその下に「snapshot/_REGISTRY〜」というファイルがいくつかあることも確認した。そこで実際に作業開始。コンソールを開き、
# su
# umount /mnt/hda2
# mkdir /ramdisk/home/knoppix/hda2
# ntfsmount /dev/hda2 /ramdisk/home/knoppix/hda2 -o umask=0(*1)
# mkdir /ramdisk/home/knoppix/hda2/WINDOWS/SYSTEM32/conig
# cd /mnt/hda1/System Volume Information/_restore$$$$(*2)
# cd RP$$$(*3)
# cd snapshot
# cp _REGISTRY_MACHINE_SYSTEM /ramdisk/home/knoppix/hda2/WINDOWS/system32/config/system
# cp _REGISTRY_MACHINE_SAM /ramdisk/home/knoppix/hda2/WINDOWS/system32/config/sam
# cp _REGISTRY_MACHINE_SECURITY /ramdisk/home/knoppix/hda2/WINDOWS/system32/config/security
# cp _REGISTRY_MACHINE_SOFTWARE /ramdisk/home/knoppix/hda2/WINDOWS/system32/config/software
# cp _REGISTRY_USER_.DEFAULT /ramdisk/home/knoppix/hda2/WINDOWS/system32/config/default
*1では、succeed_chmodやforce等のオプションもつける必要があるかもしれない。
実際、メッセージに従って何かのオプションを付けたが、忘れてしまった。
$$$$(*2),$$$(*3)は先に確認したフォルダ名。*2の部分ではタブで補完すれば楽に入力できる。
特にエラーもなく終了したので、そのまま再起動の手順を踏んだ。HDDから起動すると、最初だけはchkdskが実行された。エラーもなかったので、そのまま再起動を待つと、今度は無事に起動した。起動後に問題のフォルダを見ると、コピーしたもの以外のファイルも多く作成されている。まあ、たぶん問題ないだろう。
ところで、そもそもなんでこんなことになったのだろう?そちらのほうが問題である。それになぜ回復コンソールが正しく起動できなかったのかも。こちらはフォルダにアクセスできなかったことに関係ありそうだが、よくわからない。
AL-Mail32でメールを作成する際、エディタで作成した文章を切り貼りして作成した。その際、Subject:は改行も含めてコピー&ペーストしてしまったが、特に気にせずにそのままにしておいた。
しかし、そのメールを送ったあと、送信箱に残ったメールを表示してみると、本文の冒頭にヘッダが表示されている。どうも、本当に改行付きのSubject:が作成されているらしい。そのメールを元に再送信などをしようとすると、おかしいままでメールが作成されてしまう。
なんだか、おかしい。普通に作成すると、Subject;には改行を入力できないが、コピペでは可能なのが「想定外」なのか。
TightVNCで、自宅から研究室のWindowsXPを操作していたら、エラーメッセージとともにTightVNCが異常終了してしまった。その後、すぐに接続しなおしたら、特に問題はない様子。2度ほど起こったが、エラーが発生した状況は、AL-Mail32でメールを作成中にAL-Mail32で不正なことを行ったときだった。おそらく、AL-Mail32側では警告メッセージが発生したと思われるが、再接続後はそれが見当たらなかった。ということは、そのメッセージに呼応してTightVNCのサーバかクライアントがエラーとなったということになる。
今朝、洗濯をしようとベランダに出ると、洗濯機の注水口のところに蜂がとまっている。脚長蜂のようだが、逃げようとはしなかった。恐る恐る、新聞で叩き落したが、それでも襲ってもこないし逃げるわけでもなく、腹を動かしている。飛んでこられると困るので、かわいそうだが叩き潰した。
その後、とまっていたところを見ると、3部屋しかない小さい蜂の巣があった。その中には、卵が2粒あった。いつの間にできたのだろう?4日前に洗濯してからは使っていなかったのだが...それにしても、なぜそんなところで巣作りなのか?
そういえば、数年前から、ベランダの外で蜂が飛んでいたが、近くに巣があるのだろうか?ちょっと怖い。
久々にまじめに風呂掃除。カビ取りに塩素系のカビ取り剤を多量に使って、かなりきれいにしたつもり。ちょっと匂いが気になったが...
その後、コーヒーを淹れたら、なんともまずい。いつもの香りが全くせず、替わりに酸化したような古臭いにおいがする。どうも鼻がおかしくなったらしい。元に戻らなかったらどうしよう?
FreeBSD/amd64で共有ライブラリを作る際、ついうっかり"-fPIC"を忘れてしまうと、エラーになるらしい。 ここによると、ごくごく簡単な例でもそうなってしまうようで、実際にこちらでも確認した。しかも、Linuxでの例なので、OSによらないのかも。
エラーの例:
% gcc -shared -o hoge.so hoge.c
/usr/bin/ld: /var/tmp//ccD0tD6A.o: relocation R_X86_64_32 can not be used when making a shared object; recompile with -fPIC
/var/tmp//ccD0tD6A.o: could not read symbols: Bad value
今まで、自分で共有ライブラリを作ってこなかったし、ためしに作ったときには必ず"-fPIC -fpic"を付けてきたために、問題とならなかったが、何かをビルドする際に見かけたことがあるエラーである。同じことをi386上で行ってもエラーにならないので、ついついうっかりと忘れてしまうことが多そうな気がする。
恥ずかしながら、今まで、WinXPで共有フォルダを運用してこなかった。Win98SEの共有フォルダをWinXPから使うことはあったが、ユーザ名で困ったことはなかった。Sambaでの運用では、"security = share"として、ユーザベースの管理を行っていなかった。
ところが、諸事情により、Win98で運用していたファイル共有サーバを廃止することになった。物理的にPCがなくなるので、HDDは別のPCに繋がなくてはならないが、それはWinXP Pro。しかもファイルサーバとしての機能はほぼ廃止し、必要に応じて共有することにした(ユーザが2名しかおらず、内1名はそのホストを使うため、実質的に私しかいない。しかも、私はあまり使うつもりがない)。
共有設定自体は普通に行えばいいが、アクセス権の管理で困ってしまった。WinXPはワークグループでの運用なので、きちんとしたユーザ管理を行っていない。各PCで別個のユーザが存在する状態なので、アクセス権を付与する方法がよくわからない。さすがに「まる見え」は困る。とりあえず、そのホストの標準で使っているユーザに全ての権利を与え、everyoneからは全ての権利をなくしておいた。
次に、別のホストからはどうやってアクセスするのか?ユーザ名が違うのは、扱いにくい。手っ取り早そうなのは、マイコンピュータの右クリックなどから「ネットワークドライブの割り当て」で接続し、その際に「別のユーザ」を指定することのようである。一旦これで認証を通っておけば、次回からはそのユーザでアクセスしてくれるようだ。コマンドプロンプトなどからはどうやって指定するのか、興味があったが、よくわからなかった。また、パケットを眺めてみたが、何もそれらしい情報はなかった。というより、なんだか暗号化されているように見えた。パスワードだけの暗号化だと思っていたら、違うらしい。
ともかく、これで使えるようである。
WordのファイルをPDF化してWebで公開したい。お金はかけたくないので、フリーで何とかする手段を探したが、ハイパーリンクを扱えるものはないのだろうか?
既にインストールしているものでは、PrimoPDF、クセロPDF、ライブPDFなどがあるが、普段はハイパーリンクなどを意識していないので、暗号化などで必要な機能を持っているPrimoPDFを使ってきた。しかし、これではうまくいかないらしい(なぜか最初のものだけ変換できた)[訂正]。ライブPDFでは、印刷開始後に、どこにリンクを設定するのかを手動指定しなければならない。また、ライブPDFは、印刷開始のあとで(ファイル名の指定を行う前に)どこかに消えてしまった...どうも「ものすごく」時間がかかるらしい。現状では、無条件にできるものはなく、ライブPDFが次善の策ということか。
なお、OpenOffice.org 2.2でやってみたが、表示が乱れてしまって、PDF化以前のところで却下。確かにPDFファイルではリンクが作成されていたけど。
[訂正]これはリンクではない。2007.5.2を参照。
OpenOffice.org 2.1日本語版をWinXP上で使ってみた。すると、終了後もタスクトレイにアイコンが残り、クイック起動ができるようになっているらしい。邪魔なので無効化した。
しかし、それでもタスクマネージャで確認すると、sofficce.binというプロセスが居座っている。しかも、60MB位のメモリを握っている。恐ろしい...当然ながら殺してやった。
なお、FreeBSD上のOpenOffice.org 2.2では、そういうことはないようである。
WinXP Proのホストで、従来のNTFSのドライブに、FATのドライブを増設した(理由は上述の通り)。その後、起動時にえらく時間がかかるようになった。どちらも120GBのドライブでだが、今までは何のストレスもなく起動(と自動ログオン)を行っていたのが、ログオン時の「個人設定を読み込んでいます」の画面がしっかり見えるようになり、ログオン後も「スタートアップ」類が起動されるまで、かなりの時間がかかる。
ドライブの混在が悪いのか、IDEの構成が替わったことが悪いのか、何か別の理由なのか、よくわからない。
FreeBSD/amd64で、何とかしてnet/vncが動かないのか?32bitバイナリが動作することは確かだが、64bitバイナリが作れるようにしたい。以前から気にはなっているが、「うまくいかない」ものだと思って諦めていた。ところが、(実際に使えるかどうかは知らないが)Linuxの一部のディストリビューションでは、amd64用のバイナリを提供している。ということは、何か手段があるはず。
まず、CentOS用のSRPMを持ってきてみた。しかし、何のこっちゃらよくわからん。展開はしたものの、そこに含まれるソースとパッチをどうすればいいのか、理解していない。
次に、portsで使用しているXFree86-4.3.0の替わりに、別のXで試してみた。X.orgでもできなくはないはず、とREADMEに書かれているので、同じようにソースをunix/に展開してやってみたが、うまくいかない。まず、Xorg 6.9.0。xc.patchが一部うまく当たらない(当たっているように見えるが正しくない)ので、手で修正(miinitext.c)。しかし、vnc.soの作成でエラーになる(先日書いた通り)。どうも、これはXのモジュールらしい。なくても困らないようなので、これを作らないようにしてみたが、それでもエラーが続くので、諦めた。
次にXorg 6.7.0で確認。しかし、これもエラーになる。これらはいずれも、シンボルの未解決の問題らしい。リンクエラーはその都度修正して回ったが、無理だった。libxvnc.aのビルドができない。
では、XFree86ではどうか?FreeBSDのportsでは、4.3.0からamd64に対応しているらしい。まず4.5.0で確認したら、ヘッダファイルが足りずになんともできないらしい。4.4.0では、どうみても必要なファイルのパスがおかしい部分があったので、諦めた。
昨日、仕事から帰ってきたら、サーバがハングアップしていた。あいにく自転車がなかったので、復旧に出向くのは諦めた。今朝になって確認してみたが、ハングアップの理由は分からない。
おそらくは、ここで書いた理由だと思うのだが、確証は無い。何か分かるかと思って、カーネル作成時に
makeoptions DEBUG=-gとし、/etc/rc.confにはdumpdir="/usr/local/work"と余裕のあるパーティションを指定していたのだが、何も記録されていなかった。カーネルパニックでは無いので当然かもしれないが...
options KDB
気になるのは、デバッグ用のカーネルで起動して以来、1月以上順調に動いていたことである。それまではもう少し短い間隔でハングアップしていたのだが、デバッグシンボルを残すなどすれば少し挙動が変わったのかもしれないし、思い過ごしかもしれない。
標記のマザーボードのBIOSを更新した。
その後、再起動したときに、以前のBIOS設定が残っているかどうかが気になる。今までは、残っていた気がしたのだが、今回はなぜか全てリセットされてしまっている。操作の問題なのか、アップデータの問題なのか?
mail/p5-Mail-SpamAssassinの再ビルドが出来なくなった。原因を調べると、make patchで失敗しており、その理由は余分なパッチファイルが存在することだった。なぜかfiles/patch-sa-learn-raw以外にfiles/patch-sa-learnというファイルが存在し、これが既にfiles/patch-sa-learn-rawの内容を含んでいるために、2重にパッチを当てることになってしまったらしい。
では、なぜこんなことになったのか?余分なファイルをcsupでチェックアウトした時期を探したが、ログにはこのファイルの記録はなかった...全く訳が分からない。
ACLを設定してみる。既にUFS2で使っているパーティションに対し、シングルユーザに落としたあと、
# tunefs -a enable /などとしてみたら、スーパーブロックに書き込めない、というエラーがでた。O'REILLYの"BSD HACKS"を見てやったのだが、実際には先にumountしておかないといけないらしい(もしくはリードオンリーでマウントすることだが、それはめんどくさい)。結局、面倒なので、シングルユーザで再起動して行った。
この際、最後の引数は、(マウントしていなくても)デバイス名ではなくマウントポイントでもよいようだった。で、/tmp以外は設定してみたが、使う予定は無い。
いつからか知らないが、日本のfreebsdサーバが大幅に変わっているらしい。http://www.jp.freebsd.org/mirror.htmlに書かれていることは、もはや多くは正しくない。例えば、ftp4は阪大内のホストだったはずだが、今ではftp3と同じく、sakura.ad.jpになっている。いつの間に変わったのか...
最近、WindowsXPにログオンすると、タスクトレイの"Java Update"が「アップデートを入手可能」とうるさく言ってくる。現在、JRE 1.5.0_11をインストールしているが、ここで推奨されているのは"6.0 Update1"(1.6_1相当?)である。これは誤検出なのか、それとも1.5系から1.6系に更新させようという作戦なのか。
あまりにしつこいので、ついついアップデートしそうになってしまった。後者なら、Sunの目論見どおりになってしまう。
なお、これは複数のPCで確認されているので、「間違い」では無いと思うのだが...
インストール時に、${PREFIX}/doc/peps-2.0/にファイルを作成するが、この際のパーミッションがおかしい。ファイルは正しいが、ディレクトリを"0644"で作成している。
そのせいで、一般ユーザからはディレクトリの表示が出来ない。apacheでディレクトリを公開しようとしても、エラーになってしまう。
astro/google-earthをportupgradeしようとして、エラーが起こった。原因は、"unmakeself"が無いというもの。確かに、インストールされていない。
これについては、astro/google-earthのMakefileに、
EXTRACT_DEPENDS= unmakeself:${PORTSDIR}/archivers/unmakeselfと書かれている。
つまり、make extractの際に必要になることが明記されており、ビルド時のログを見る限りは何らかのチェックを行っているように見えるのだが、実際にはチェックをすり抜けてしまっている。その結果、インストールされていないのでエラーとなっている。
対処としては、とりあえずarchivers/unmakeselfを先にインストールすれば済むが、なぜ依存性の解決が適切に行われていないのか、よく分からない。"EXTRACT_DEPENDS"をあまり見かけないため、この使い方に問題が無いのかも良く知らない。
Mk/bsd.port.mkによれば、EXTRACTによらず、依存性の解決には、そのディレクトリに移って"make all install"を行うらしい。ということは、インストール済みのパッケージをpkg_deinstallし、作業ディレクトリを残したままにした場合、"make all install"では何も起こらないので、エラーが起こって然るべきである。
これを避けるにはpkg_deinstallやpkg_deleteを使わずに、常にportsのディレクトリに移ってmake deinstallすればいいのだが、結構面倒である。pkg_deinstallにそれをやってくれるオプションは無いだろうか?
astro/google-earthをportupgradeしようとして、エラーが起こった(その2)。/compat/linux/usr/X11R6/lib/libGL.so.1が無いのでインストールしようとしたら、既に最新のlinux_driがインストールされていた、というものである。
なぜこのファイルが消えてしまったのか?よく分からない。確か、このあとでlinux_driをアンインストールしたとき、チェックサムが違う、というエラーが出たファイルがあったような気がする。何か良くないことが起こっているのかもしれない。
portupgradeに失敗したとき、そのパッケージが消えてしまうことがある。
通常は、パッケージの更新時には、前のパッケージをバックアップし、何かエラーが起こったら元に戻せるようになっているはずであるが、時折、元に戻っていないことがある。
たとえば、上記のastro/google-earthでのlibGLの問題の時には、
===> google-earth-4.0.2735 depends on file: /compat/linux/usr/X11R6/lib/libGL.so.1 - not foundというようなことになり、元に戻すことに失敗している。
===> Verifying reinstall for /compat/linux/usr/X11R6/lib/libGL.so.1 in /usr/ports/graphics/linux_dri
===> Installing for linux_dri-6.5
===> linux_dri-6.5 depends on file: /compat/linux/etc/fedora-release - found
===> linux_dri-6.5 depends on file: /compat/linux/usr/X11R6/lib/libXrender.so.1 - found
===> Generating temporary packing list
===> Checking if graphics/linux_dri already installed
===> linux_dri-6.5 is already installed
You may wish to ``make deinstall'' and install this port again
by ``make reinstall'' to upgrade it properly.
If you really wish to overwrite the old port of graphics/linux_dri
without deleting it first, set the variable "FORCE_PKG_REGISTER"
in your environment or the "make install" command line.
*** Error code 1
Stop in /usr/ports/graphics/linux_dri.
*** Error code 1
Stop in /usr/ports/graphics/linux_dri.
*** Error code 1
Stop in /usr/ports/astro/google-earth.
*** Error code 1
Stop in /usr/ports/astro/google-earth.
** Command failed [exit code 1]: /usr/bin/script -qa /tmp/portupgrade.20716.0 env UPGRADE_TOOL=portupgrade UPGRADE_PORT=google-earth-4.0.2414 UPGRADE_PORT_VER=4.0.2414 make reinstall
** Listing the failed packages (*:skipped / !:failed)
! astro/google-earth (google-earth-4.0.2414) (Failed to rewrite /var/db/pkg/google-earth-4.0.2414/+CONTENTS: No such file or directory - /var/db/pkg/google-earth-4.0.2414/+CONTENTS)
---> Packages processed: 0 done, 0 ignored, 0 skipped and 1 failed
** Could not clean up temporary directory: Directory not empty - /var/tmp/portupgradeyLiVJijp
これはバグなのか、仕様なのか?
portsやpackagesでインストールしたファイルが勝手に変更されていないか、確認したい。パッケージデータベースには、各ファイルのインストール時のmd5チェックサムが記録されているので、これを使ってチェックするツールがあってもいいようなものだが、見つけられなかった。
ports-mdmt/portupgradeでインストールされるツールにこれを行うものがないかと思って探してみたが、単独のコマンドでは見つからない。しかし、pkg_deinstallに"-c"というオプションがある。これを使って、
pkg_deinstall -cn linux_dri-6.5のようにすれば、確認出来るようである。
ビルドできない。
ところが、エラーを見ると、ちょうどgfortran42のあたりである。ここには今は触れたくない... platonの問題も解決しないし、gfortranは訳が分からない。
lang/gcc42でインストールされるgfortran42で、大量の警告メッセージが出て、biology/platonがビルドできない問題は、依然解決しない。
問題が起きるホストでは、gcc42をインストールしなおし、さらにパッケージでインストールしたり、依存するものもインストールしなおしたりしても、同じ問題が起こる(詳細はPR 108105参照)。この警告メッセージがそのホストでだけ出る理由も分からないし、エラーになる理由も分からない。
なお、別のホストでも同じであったが、さらに別のホストでは再現しない(このとき、警告も出ない)。そのホストでは、6-STABLEでも7-CURRENTでも問題なかった。
問題のあるホストで、バイナリファイルをパッケージに変えても再現するということは、実行環境依存かと思って、自分で設定した環境変数の類を全て消してみたが、変わらなかった。
もう、何がなんだか、さっぱり分からない。
なお、シンボルもチェックしてみたが、うまくビルドできない環境では、libg2cをリンクした結果、_signalや_systemといったものが存在している。一方で、問題なくビルドできるホストで作ったバイナリには、そんなものは見られない。では、そのバイナリが問題あるホスト上で動かないか、チェックしてみた。すると問題なく動いているように見える。なんだか、不要なものをリンクしているような感じ。
さらに追加の確認。ビルドできないホストでは、gcc42が依存するもの全てを再構築しても同じだった。OSも全て最新のソースに更新してmake worldしなおしてみたが、同じである。
snd_hdaでハングアップする件で、freebsd-multimedia@のMLで文句を言ってみた。すると、もっと新しいのを使え、と作者に言われた。どこか改善したのか?と聞いたら、改善したらしいので、試してみることにした。デバッグできないことが分かったので、今度はバイナリのモジュールをインストールして、kldloadした。
さて、どうなることやら。
なお、配布物には全てのsound関連のモジュールが含まれるが、sound.ko自身を改造しているようなので、これら全てをきちんとインストールしないといけない。また、このせいで、本家のソースには採用される見込みが薄いらしい。
2007.3.6で書いたように、ja-xemacs-mule-canna+frewnnの代替として、何を使えばいいのだろう?どうも、最近のFreeBSD-users-jpでの話を見ていると、通常のxemacsでも問題なさそうである。
そこで、editors/xemacs、editors/xemacs-packagesをインストールしてみた。その際、editors/xemacs-packagesのインストール時のメッセージを見ると、non-Latinな言語の人はeditors/xemacs-mule-packagesを代わりに使え、となっていたので、その通りにしてみると、mewが見つからない。editors/xemacs-packagesも残しておかないといけないらしい。
で、これでうまくいくかと思ったら、このMewの問題と同じことになってしまった。これでは使えない。これはxemacs自身がmuleが有効になっていない(?)ためらしい。そこで、editors/xemacsの代わりにeditors/xemacs21-muleをインストールし、xemacs*なパッケージも全て更新した。これできちんと動くらしい。
で、更にこれでいいのかと確認してみると、日本語入力に不満がある。japanese/Cannaなどの再インストールでは、何も解決されない。そもそも、xemacsでの利用のためには、tamagoなどが必要なはず。面倒なので、editors/xemacs21-muleのビルドの際に、"CANNA=1 FREEWNN=1"を指定しておけばいいらしい。
これで、やっとうまく動くようになった。
2007.4.11で書いた話のうち、"DELLのPCで回復コンソールがきちんと動作しない"件が気になったので、別のPCで確認してみたら、やはりそちらではきちんと起動する。
なぜ、DELLでは使えなかったのか、原因不明。
WinXP SP2で、諸般の事情により、 C:ドライブの特定のフォルダに別のドライブレターを割り当てたい。
現在のところ、substコマンドで割り当てるしか知らないが、これだと再起動で消えてしまう。そこで、Drive Managerというソフトを使ってみたが、確かにこれで設定を行えば再起動後も同じドライブレターを割り振ってくれる。また、このドライブレターは、コマンドプロンプトからsubstコマンドで確認できるので、実際には内部でsubst相当のことを行っているだけだと思う。
しかし、ネットワークドライブでは、起動時に再接続を行うようにマウントできるのだから、なぜ通常のドライブで、Windowsの標準の設定だけでこれができないのか、よく分からない。
さて、ここからが本題だが、このドライブ(たとえばG:)が使える状態で、USBメモリなどを挿すと、同じドライブレターが割り当てられることがある。こうなると、重複前のドライブが見えてしまい、USBメモリの中身が見えない。ただし、「ハードウェアの安全な取り外し」は正しく行える。また一方で、ディスクの管理からこのドライブを見ると、USBメモリとしてしか見えない。ここでドライブレターの変更などをすると、元のドライブが見えないままでUSBメモリのドライブレターが変わってしまう。
では、ネットワークドライブならどうか?割り当てたいフォルダを共有フォルダにし、自分自身の提供する共有フォルダにネットワークドライブの割り当てで起動時に割り当てを行うようにして、再起動してみた。結果は同じである。
さらに、奇妙なことに気づいた。ドライブの管理で、新規に割り当て可能なドライブレターの一覧に、substや「ネットワークドライブの割り当て」で追加したドライブがリストされている。つまり、HDDや光学ドライブとは別物ということなのか?確かに、2つ目のUSBメモリは、既存のHDDのドライブレターと重複しそうなものだが、これを避けて次のドライブレターが割り当てられている。
なんだか変な仕様(?)である。いや、バグに違いない。
なお、一旦、重複しないドライブレターを適当に割り当ててやると、以降はそれが割り当てられるようなので、これを使うのが現実的だが、リムーバブルメディア毎にこの設定を行わなくてはならない。
以前にも書いたように、FreeBSD上でjava/jdk15をインストールし、Firefoxのプラグインとして使っている際、日本語が文字化けすることがある。文字化けというより、いわゆるトーフ状態。
これが気になっていたが、先日、こちらのサイトを見たので、確認してみた。しかし、どのフォントを指定していいのか、良くわからない。現在のところ、encodingがiso10646なフォントは見つけられなかった。
そこで、上記のサイトの下部にコメントされていた方法で確認。
% /usr/local/jdk1.5.0/jre/lib/fonts/fallbackとし、japanese/sazanami-ttfのフォントを利用するようにしたところ、無事に表示された。
% cd /usr/local/jdk1.5.0/jre/lib/fonts/fallback
% ls -s /usr/local/share/fonts/TrueType/sazanami-mincho.ttf .
% ln -s /usr/local/share/fonts/TrueType/sazanami-gothic.ttf .
WinXPで、コマンドプロンプトから共有フォルダを開く際、
>start \\host\sharenameのようにするが、これではユーザ名が一致しなければ共有できない。
確か、この方法で、ユーザ名を指定する方法があったはずだと思ったのだが、よく分からない。"%"を使ったような...思い出せない。
正解(?)は、
>net use \\host\sharename /user:usernameらしい。ちょっと面倒だが、やむをえない。一旦認証が通れば、次回からは冒頭のとおりでいいはずなので、我慢するしかない。
>start \\host\sharename
ユーザによって共有先の権限が違う場合は、これを繰り返すしか無いのか?
京都市の国保に入った。実家での扶養を抜いてもらわなくてはならないが、実家の側の役所では、先にこちらで入ってから、その保険証をもって来るようにとのことだったので、こちらの区役所で手続きした。
やはり、昨年末まで有効な保険証の提示を求められた。昨年度までサボってたけど今年から、というのは認められないような雰囲気である。どうするんだ?>Y氏
DELLのDimension8300(NICはIntel PRO 10/100)は、WOLできないのか?
ネットワークアダプタのプロパティやBIOSなど、あちこちにWOLに関する記述があるが、それらをいろいろといじってみたところで、マジックパケットを投げてもWOLできない。
マニュアルに何の記述もないことから、きっと駄目なのだろうとは思うが、もうちょっと説明がほしい。ダメなのなら、BIOSやNICドライバから、これらの記述を消しておくべきである。
なお、しつこくいろいろと確認してみたら、休止状態からはWOLで電源投入ができるらしいことがわかった。NICのプロパティで、「このデバイスで、コンピュータのスタンバイ状態を解除できるようにする」としておけば良いらしい。しかし、やはり電源OFF状態からは無理だった。BIOSの設定上は問題ないはずなのだが...でも、考えて見ると、"Power Profile"の"Low Power Mode"ではハイバネーションからの復帰ができない、ということは、やはりOFFからも当然無理だと考えるべきなのかもしれない。
Apache httpdでは、各ディレクトリごとのアクセス制限等の設定に.htaccessという名前のファイルが用いられることが多い。このファイル自身がhttpdで公開されては困るので、httpd.conf等の全体の設定ファイルに、このファイルへのアクセスを禁止するように設定を行っておくのが通常である。例えば、httpd-2.0.59では、デフォルトでは
<FilesMatch "^\.ht">となっていて、どのホストからもアクセスできないようになっている。
Order allow,deny
Deny from all
</FilesMatch>
しかし、この状態で、<Files>セクションよりも先に評価されるセクション(順序についてはマニュアルを参照)で、"Satisfy any"と指定していれば、.htaccessへのアクセスが許可されてしまうことがある。デフォルトの"Satisfy all"の設定が先に上書きされてしまうことになるので、アクセス条件の設定によってはアクセスが許可されてしまう、ということになる。これはちょっと危険な気がする。
もちろん、アクセス制限に関する設定をユーザによる上書き可能に設定した時点で、<Files>のセクションでの設定も書き換えられることになるから、このファイルに対してだけうるさく言うのはおかしいのかもしれないが、ついうっかりとやってしまいそうで怖い。
なお、httpd-2.2.4では、デフォルトの設定ファイルでの.htaccessの部分に"Satisfy all"が追加されているので、ちょっとは間違いを起こす可能性が減っている。
どこかで書いた気がするが、再度。
MLにメールを投稿した際、受信者のメールボックスが溢れた場合などに、投稿した人にメールで通知を送ってくる場合がある。受信者のメールサーバの設定だと思うが、これは何が原因なのか?通常は、Sender:やErrors-To:で指定されたところへ返すものだと思っていたが...
MLでこういうことが起こると、全く知らないアドレス宛の不達通知を受けることになるので、ちょっとびっくりする。それに、こちらに返されても、その人を強制退会させるなどの手段を取れないので、意味が無いと思うのだが。
かつて言及したgcalmobileだが、たまにケータイからスケジュールを確認するのに使っている。
新年度になって予定を大量に書き込んでから気がついたのだが、一部の予定が表示されない。パソコンからgoogleのサイト経由では問題ないが、gcalmobileの画面では表示されない。どうも、25件しか表示しないらしい。しかも、月初めから、等ではなく、登録した時期で直近の25件らしい。
これはAPIの制約なのか、gcalmobileの制約なのか。APIの制約ではないらしい。ただし、API上は、何も指定しなければ25件、ということのようなので、自分でこれを指定してやれば、制限をなくすことができる。
方法は、gcalmobileの場合、googleAccess.rbの50行目付近の"start-min"等を指定している部分に、それと同じ形式で["max-results", "100"]などとして追加すればいい。この例では、100件まで表示できる。APIについての参考。
FreeBSDなホストへsshでログインしようとしたら、うまくいかない。昨晩までうまくいっていたのに...
WindowsからUTF-8 TeraTerm Pro with TTSSH2でログインしようとしたら、パスフレーズを入力したあとで、ログインバナーが出ない。WWWサーバなどは使えるので、システムのハングアップではない。そこで、VPNを張り、telnetで接続してみた。すると問題なく接続できる。そこから自分自身にsshで接続してみても、やはりWindowsからと同じように、パスフレーズの入力後に固まってしまう。
デバッグ用のsshdを起動し、クライアントからもデバッグフラグをつけてsshを起動してみると、どうもpamの近辺で止まっているようである。そこで、sshd_configでPAMを無効にしてみると、ログインできる。とりあえず、時間が取れるまでこれで運用するしかないか。
[追記]もう少し運用していると、今度はftpもダメなことに気づいた。どうも、opieで認証が済んでいる場合は良いが、それ以外ではダメらしいことが分かった。pam_afが関係ありそうな気もするが、詳細は不明。
土曜日も働く。午前中は、演習指導(補佐)。例年は3人で行っていたのが、今年は2人で担当となった。定員は若干減らしたようだが、25名程度。25名を2人で担当するのはかなりキビシイ。2限(3時間)にわたって動き続け、疲れ果てる。
その後の仕事まで時間があったので、近辺を探索。ちょうど今日は研究室のハイキングなのだが、その代わりに一人でいったいを歩き回って、更に疲れ果てた。残念ながら、その後のバーベキューはないが...
その後の勤務も結構忙しく、ほとほと疲れた1日だった。これがあと9回ほどあるので、ちょっと不安。また、昼過ぎに3時間半ほどの暇な時間ができるので、何かいい時間つぶしを考えなくては。
先日、.RARファイルが添付されたメールが2通ほど届いた。身に覚えが無いし、明らかにウィルスっぽかったが、Norton AntiVirusでスキャンしてみてもウィルスと判定されない。また、WindowsXP上で、LHMeltやWinZipでファイルを解凍しようとしても、アーカイブファイルとして認識されない。LHMeltでは.RARファイルが扱えたはずなのだが...
そこで、FreeBSD上のunrarで解凍してみた。すると、パスワードが設定されているらしい。元のメールを見ると、.gifファイルも添付されていたので、それを見てみると、パスワードが書かれている。それを使って解凍してみたら、hotfix-68481.exeというファイルができた。これをWindowsでNorton AntiVirusを使ってスキャンしたら、"Trojan.Packed.13"というウィルスが検出された。結構危険なものらしい。
さて、ここまで面倒な手順を踏ませてユーザに実行させるウィルスに意味はあるのだろうか?それとも、やはり"Trojan Alert!"などというSubject:のメールを受け取ると、ついつい何とかしてでも対策しなくては、と思ってしまうものなのだろうか?手が込んでいるだけに、本物っぽいと判断するか?
某勤務先で、Googleで検索を行おうとすると、「現在お客様のリクエストを処理できません」という表示が出るようになったらしい。指定の画像化された文字を入力することによって、利用は継続できるらしいが、面倒だろう。
どうも、一種の利用制限らしい。膨大な量の検索を行うロボット対策だろう。
外部向けの単一のIPアドレスから、短時間に利用が集中したためだろうということだったが、外部向けのアドレスがあまりに限定されすぎているのが問題だと思う。結構な数の学生数と教職員がいるところで、IPアドレスはもっと分散させるべきだと思う。そもそも、そんなに多くを1台のサーバでアドレス変換しているのだろうか...
かなり以前にインストールしたXPSファイル用のソフト(Microsoft XML Paper Specification Essentials Pack)を試してみた。
作成は、通常の印刷と同じ方法で行うことができる。このあたりは一般にPDFを作成する時と同じ。また、なぜか"Microsoft XPS Document Writer"の他に"Microsoft Office Document Image Writer"というものもあった。なんに使うのか、良く分からない。ともかく、どちらも試してみた。
まず、XPSでは、出力後にファイルを開こうとすると、ブラウザで表示が行われる。また、このファイルをWWWサーバにおいてアクセスしてみると、IE7からは「このページにはセキュリティの危険性がある...」という、PDFファイルを見るときと同じようなポップアップが出て、承諾すれば表示された。Firefoxでは、当然ながらそのままでは無理なので、XPSViewerを使って表示させるオプションを選べば、IE7で表示された。
次に"Microsoft Office Document Image Writer"であるが、これで出力すると、.MDIなファイルが作成された。これを開こうとすると、Windowsのイメージビューアが起動するらしい。また、これをWWWサーバにおいてアクセスしてみたが、さすがに表示されず、保存を促されるだけだった。
つまり、Microsoftでは、XPSはPDFと同等の位置づけを狙っているらしい。が、Windowsユーザ以外には普及するとは思えない...Windows Vista以外のWindowsユーザにすら、普及しないのではないだろうか。