雑多なトラブルとその解決法
公開:2006年12月31日Windows XP上にて、一般ユーザーでOxford English Dictionary on CD-ROM v3を起動すると、"(1612) your license to use this product appears to be broken. You will no longer be able to use this product until the license is repaired"というエラーメッセージが出る。管理者権限では問題なく起動できる。
OEDが使用しているコピープロテクション、C-Dillaのフォルダ(C:\C_DILLA)に対するアクセス権限がないのが原因。一般ユーザーに、このフォルダに対する「フル・コントロール」権限をあたえれば、OEDを起動できるようになる。
- 管理者権限でログイン
- 「マイコンピュータ」を開く
- [ツール]→[フォルダオプション]→[表示]タブから、[簡易フォルダの共有を使用する]のチェックを外し、[OK]を押す
- C:\C_DILLAフォルダのプロパティを開く
- [セキュリティ]タブの[グループ名またはユーザー名]から、Usersを選択
- [Users のアクセス許可]の[フル コントロール]にチェックを入れる
また、OED CDは、Windowsフォルダの下に設定ファイルOED.INIを保存する。OED終了時に発生するエラーを解消するには、Usersにこのファイルに対するアクセス権限をあたえる必要がある。
日本語キーボード搭載のノートPCで、VMwareを使って、Win XP上にFreeBSDの仮想サーバをインストールした。このFreeBSD上から、ノートPCの日本語キーボードと、外付けの英語キーボードを切り替えて利用したい
コンソール上で切り替える
/usr/sbin/kbdcontrolを使う。sh系なら、
alias jpkey='/usr/sbin/kbdcontrol -l jp.106' alias uskey='/usr/sbin/kbdcontrol -l us.iso'
のようなエイリアスを用意すると便利かも。
X Window System上で切り替える
手動でやる場合、/usr/X11R6/bin/setxkbmapを使う。
/usr/X11R6/bin/setxkbmap -rules xorg -model jp106 -layout jp /usr/X11R6/bin/setxkbmap -rules xorg -model microsoft -layout us
みたいな感じ。より詳細な情報に関しては、/usr/X11R6/lib/X11/xkb 以下のファイルを参照のこと。/etc/X11/xorg.confで完結させられれば便利だけど、できるのかな?
ion2にて、[F2]や[F4]を押したときに起動するX端末を、xtermからktermに変更したい
/usr/X11/etc/ion下と、/usr/X11/share/ion下のスクリプトを編集して、xtermと記述された部分をすべてktermに変更する。環境変数 $XTERMCMD が参照される部分もあるが、ほとんどの場所でコマンドが埋め込まれているので、grepで探して書き換えたほうが話が早い。
VMware上からssh -Xを使ってX11転送をおこなうと、VMwareをウィンドウ化した際に"BadAtom"に関連するエラーメッセージが表示され、転送していたアプリケーションが死んでしまう。
ssh -X のかわりに ssh -Y を使う。
ssh -R でローカルのポートをリモートへ転送しているが、環境を移行したら、"connect_to ::1 portポート番号: Connection refused"というエラーメッセージが出るようになった
/etc/hostsでIPv6の設定がIPv4よりも先に書いてあるのが原因。
127.0.0.1 localhost.shou.jp localhost ::1 localhost.shou.jp localhost
のように順番を変えれば、エラーメッセージは表示されなくなる。
mysqlのレプリケーション機能を使っていたが、環境を移行したら、マスターとスレーブの同期が取れなくなった。スレーブ側のmysql.logを見ると、"Access denied for user: 'file@localhost.shou.jp' (Using password: YES)"のようなエラーが出ている。移行前は同じ設定で同期ができていたのに、なぜ?
MySQL側のユーザー権限テーブルでは、"Host"の項に"localhost"と指定しているのに、/etc/hostsでFQDNが先に書いてあるのが原因。
127.0.0.1 localhost localhost.shou.jp
のように、FQDNを後ろに書くと、問題は発生しなくなる。
ssh接続中に無入力の状態がつづくと、端末が固まってしまう。
OpenSSHのFAQによると、途中のパケットフィルタまたはNATデバイスが、接続を切ってしまうのが原因。サーバ側のsshd_configでClientAliveIntervalを指定するか、クライアント側のssh_configでServerAliveIntervalを指定する。
FreeBSDをバージョンアップしたら、/usr/local/etc/rc.d/下のファイルがこちらの意図した順序で起動しなくなった
/usr/local/etc/rc.d/ 下のファイルに rcorder(8) が適用されるようになったのが原因。これまで、/usr/local/etc/rc.d/ 下のファイルは、アルファベット順にソートされた順番で起動されていた(ので、最初に起動したいファイルには、頭に 000.foo.sh のような数字をつければ良かった)が、より高度で洗練された仕組みが導入されている。
たとえば、apache2よりも前にmysqlを起動したいとする。PortsまたはPackagesでmysqlを導入した場合、/usr/local/etc/rc.d/にコピーされるファイルの先頭部には、
# PROVIDE: mysql # REQUIRE: LOGIN
という記述がある。これは、このスクリプトによってmysqlという名前のサービスが起動されること、起動するには、"LOGIN"状態が必要であることをあらわしている。
いっぽうのapache2の起動スクリプトには、
# PROVIDE: apache2 # REQUIRE: NETWORKING SERVERS # BEFORE: LOGIN
という記載がある。mysqlよりあとにapahe2を起動したいなら、REQUIREの項に、
# REQUIRE: NETWORKING SERVERS mysql
のように、mysqlの起動スクリプト内で指定されているサービス名を加えればよい。apache2の"BEFORE"指定とmysql-serverの"REQUIRE"指定の間で千日手が発生しそうな気配があるが、わりかし上手いこと計らってくれる。
また、このあたらしい起動システム(rcNGと言うらしい)に即しない、古い形式の起動スクリプトは、rcNG化されたスクリプトが起動されたあとに、アルファベット順で起動される。
