トップ «前の日記(2009-07-30) 最新 次の日記(2009-08-01)» 編集

日々の破片

Subscribe with livedoor Reader
著作一覧

2009-07-31

_ hash -r

Linux(というか、OSXでも同じ)で、最初なんとなく、rubyと叩くと/usr/binのやつが起動されて、当然のように古くて、まあ野良ビルドするかと考える。
$ ruby -v
ruby 1.8.7 (2008-08-11 patchlevel 72) [x86_64-linux]
で、ftpして./configureしてmakeしてmake testしてsudo make installする。
$ ruby -v
ruby 1.8.7 (2008-08-11 patchlevel 72) [x86_64-linux]
はて面妖な。
$ echo $PATH
/home/arton/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin……
どうみても/usr/local/binが先なのだが。
$ /usr/local/bin/ruby
ruby 1.8.7 (2009-06-12 patchlevel 174) [x86_64-linux]
だよなぁ。
$ ruby -v
ruby 1.8.7 (2008-08-11 patchlevel 72) [x86_64-linux]
はて面妖な。
$ which ruby
/usr/local/bin/ruby
だよなぁ。
$ ruby -v
ruby 1.8.7 (2008-08-11 patchlevel 72) [x86_64-linux]

はて面妖な。

というときは、bashが起動したコマンドを覚えているのが原因で、そのおかげで多分、PATHをたどる回数もぐっと減るはず。良く使うコマンドを良く使っていれば。

で、上のようなことをやって、既に起動してしまったコマンドを後から別のパスに置いた場合は、bashのhashを初期化する必要がある。で、それが

hash -r

別にバッシュのハッシュという韻を踏みたかったわけではない(でも面妖という怪しい言葉は使ってみたかった)。

追記:csh、zshだとrehashとなるので、knuさん曰く

kshやbashでも alias rehash="hash -r" しておくとcsh系(zshを含む)との齟齬がなくなって便利

僕はbashメイン(生kshあり)なので、このエイリアスはしないと思うけど、参考まで


2003|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|

ジェズイットを見習え