11月 072011
 

新しい環境で Git を使おうとするときは最低限以下の設定を行うようにしている.

$ git config --global user.name "Taro Kobe"
$ git config --global user.email taro.kobe@example.com
$ git config --global color.ui auto
11月 072011
 

Git で新しくリポジトリを作成するたびに

$ touch git-daemon-export-ok
$ mv hooks/post-update.sample hooks/post-update
$ chomd a+x hooks/post-update

とかやってられない.

Git リポジトリのディレクトリ構造のテンプレートはないかと探してみるとどうやら

/usr/share/git-core/templates

以下がテンプレートとなっているようだ(Git を CentOS で yum から入れた場合).

このディレクトリ以下の構成を変更することで新しくリポジトリを作成したときのデフォルトの構成を変更することができる.

$ cd /usr/share/git-core/templates
$ touch git-daemon-export-ok
$ mv hooks/post-update.sample hooks/post-update
$ chomd a+x hooks/post-update
9月 162011
 

Mac OS X Server で OpenLdap 用いてユーザ管理をしているとき,何かの拍子でログインができなくなってしまうことがあれば,まずはログを確認みましょう.

/var/log/system.log を確認したとき

May 30 14:23:42 hostname com.apple.launchd[1] (org.openldap.slapd[190]): Exited with exit code: 1
May 30 14:23:42 hostname com.apple.launchd[1] (org.openldap.slapd): Throttling respawn: Will start in 10 seconds

/var/log/slapd.log を確認したとき

May 30 15:20:40 hostname slapd[932]: bdb(dc=hostname,dc=example,dc=com): PANIC: fatal region error detected; run recovery
May 30 15:20:40 hostname slapd[932]: bdb_db_open: Database cannot be opened, err -30978. Restore from backup!
May 30 15:20:40 hostname slapd[932]: bdb(dc=hostname,dc=example,dc=com): DB_ENV->lock_id_free interface requires an environment configured for the locking subsystem
May 30 15:20:40 hostname slapd[932]: bdb(dc=hostname,dc=example,dc=com): txn_checkpoint interface requires an environment configured for the transaction subsystem
May 30 15:20:40 hostname slapd[932]: bdb_db_close: txn_checkpoint failed: Invalid argument (22)
May 30 15:20:40 hostname slapd[932]: backend_startup_one: bi_db_open failed! (-30978)
May 30 15:20:40 hostname slapd[932]: bdb_db_close: alock_close failed
May 30 15:20:40 hostname slapd[932]: slapd stopped.
May 30 15:20:40 hostname slapd[932]: connections_destroy: nothing to destroy.

このようなエラーがたくさん出力されている場合,何らかの原因で slapd が起動できていないことを表します.

次に,

# /usr/libexec/slapd -Tt

を実行したとき

overlay_config(): warning, overlay "dynid" already in list
bdb(dc=hostname,dc=example,dc=com): PANIC: fatal region error detected; run recovery
bdb_db_open: Database cannot be opened, err -30978. Restore from backup!
bdb(dc=hostname,dc=example,dc=com): DB_ENV->lock_id_free interface requires an environment configured for the locking subsystem
backend_startup_one: bi_db_open failed! (-30978)
slap_startup failed (test would succeed using the -u switch)

このようなエラーが出た場合は,OpenLdap のデータベースが壊れています.
この場合は,DB のバックアップをとってから

# cp -R /var/db/openladp /var/db/openladp.backup

DB の修復を行いましょう.

# db_recover -h /var/db/openldap/openldap-data/

これで以下のような結果が出れば DB は修復されました.
slapd が起動するようになるはずです.

# /usr/libexec/slapd -Tt
overlay_config(): warning, overlay "dynid" already in list
config file testing succeeded

参考ページ:
Mac OS X 10.5 Server OpenLdapのDBが壊れた・・

9月 162011
 

主にシェルで作業をする際,screen コマンドを使っていらっしゃる方も多いと思います.

間違えて screen 内で screen を呼び出してしまうと,エスケープキーが衝突してしまい,内側または外側の screen をコントロールできなくなってしまうことがあります.

このようなときは,片方のエスケープキーを一時的に変更することで両方の screen をコントロールすることが可能になります.

例えば,デフォルトでエスケープキーを C-a にしている場合は,

C-a のあと,

:escape "^Zz"

と入力することで,エスケープキーを一時的に C-z に変更することができます.
これで,C-a と C-z を使い分けて内側と外側の screen を使い分けることが可能となります.

参考ページ:
pLog  二重にscreenして(・ω・)な人へ

9月 162011
 

Mac と Linux の話ばかりで面白く無いので…

Windows Vista, Windows 7 で Caps Lock を Control キーにバインドするためには,レジストリを変更することで対応できます.

Caps Lock キーを Control キーにしてしまう場合(Caps Lock キーを消してしまう)は以下の内容の control.reg ファイルを作って,実行しましょう.

REGEDIT4

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,1d,00,3a,00,00,00,00,00

再起動すると Caps Lock キーが Control キーになっているはずです.

Caps Lock キーと Control キーを入れ替えてしまう場合は以下の内容の swap_control.reg ファイルを作って,実行しましょう.

REGEDIT4

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,03,00,00,00,1d,00,3a,00,3a,00,1d,00,00,00,00,00

再起動すると,Caps Lock キーと Control キーが入れ替わっているはずです.

元に戻す際は,regedit を用いて [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout] 内の Scancode を消して再起動してください.

参考ページ:
Archive: Scan Code Mapper for Windows