雑多なトラブルとその解決法

ホーム[H] > Akihabara, FreeBSD > 雑多なトラブルとその解決法
【こんなのどうでしょう?】ポケットモンスター プラチナ(特典無し)
ジャンル:
Akihabara, FreeBSD
シリーズ:
種類:
データ/資料
最終更新:
2006年12月31日 20時48分
シリアル:
2006-12-31-03

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を起動できるようになる。

  1. 管理者権限でログイン
  2. 「マイコンピュータ」を開く
  3. [ツール]→[フォルダオプション]→[表示]タブから、[簡易フォルダの共有を使用する]のチェックを外し、[OK]を押す
  4. C:\C_DILLAフォルダのプロパティを開く
  5. [セキュリティ]タブの[グループ名またはユーザー名]から、Usersを選択
  6. [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化されたスクリプトが起動されたあとに、アルファベット順で起動される。