Hatena::ブログ(Diary)

わからん

2009.10.25

[] mlocate と find-utils の locate を使い分ける


SoftwareDesign 2009/5 を読んで、find-utils版 の locate を導入することにしました。以下はその作業ログです。

% locate --version

mlocate 0.21.1

Copyright (C) 2007 Red Hat, Inc. All rights reserved.


今使っているのが mlocate だったので、削除。

% sudo apt-get remove mlocate


ググると apt-get install findutils-locate とあったけど、見つからなかったので、普通に locate で試す。

% sudo apt-get install locate

% locate --version

locate (GNU findutils) 4.4.0

Copyright (C) 2007 Free Software Foundation, Inc.

% which locate

/usr/bin/locate

% sudo update-alternatives --config locate

locate を提供するプログラムが 1 つしかありません (/usr/bin/locate.findutils)。

設定は行いません。


mlocate と locate の二つインストールされたのかと思ったけど、そうではなかった様子。なんとなく mlocate も入れてみる。

% sudo apt-get install mlocate

% which locate

/usr/bin/locate

% ls -l /usr/bin/locate

lrwxrwxrwx 1 root root 24 2009-10-25 22:07 /usr/bin/locate -> /etc/alternatives/locate


そして、デフォルトをfind-utils の locate へ変更。

% sudo update-alternatives --config locate

`locate' を提供する 2 個の alternatives があります。

選択肢 alternative

-----------------------------------------------

1 /usr/bin/locate.findutils

*+ 2 /usr/bin/mlocate

デフォルト[*] のままにするには Enter、さもなければ選択肢の番号のキーを押してください: 1

'locate' を提供するために '/usr/bin/locate.findutils' を使います。

% ls -l /usr/bin/locate

lrwxrwxrwx 1 root root 24 2009-10-25 22:07 /usr/bin/locate -> /etc/alternatives/locate


あれ、リンク先が同じ? と不思議だったので、少し調査。

% ls -l /etc/alternatives/locate

lrwxrwxrwx 1 root root 25 2009-10-25 22:14 /etc/alternatives/locate -> /usr/bin/locate.findutils

% sudo update-alternatives --config locate

`locate' を提供する 2 個の alternatives があります。

選択肢 alternative

-----------------------------------------------

* 1 /usr/bin/locate.findutils

+ 2 /usr/bin/mlocate

デフォルト[*] のままにするには Enter、さもなければ選択肢の番号のキーを押してください: 2

'locate' を提供するために '/usr/bin/mlocate' を使います。

% ls -l /etc/alternatives/locate

lrwxrwxrwx 1 root root 16 2009-10-25 22:17 /etc/alternatives/locate -> /usr/bin/mlocate

なるほど〜。


 まとめ

find-utils の locate をデフォルトで利用するには、以下のいずれかの作業を行う。

  • もしもまだ locate を導入していないなら、apt-get install locate で OK
  • すでに mlocate を導入しているなら、apt-get remove mlocate して apt-get install locate する
  • または、remove しないで apt-get install locate して、update-alternatives --config locate でデフォルトの locate を設定する

はてなユーザーのみコメントできます。はてなへログインもしくは新規登録をおこなってください。

Google