Locateとupdatedbは機能しません。私は何をすべきか?


12

私のlocateコマンドは機能しませんが、実行する必要があることがわかりましたupdatedb。ただし、そのコマンドを呼び出すと、bashは言いbash: updatedb: command not foundます。私は何をすべきか?


updatedbがインストールされていないか、$ PATH変数にありません。updatedbを実行するときは、rootまたはsudoで実行する必要があります。
ペトリュス

あなたは見つける「見つける」とupdatedbのためになります/ -name updatedbを-print

回答:


10

位置特定プログラムをインストールする必要があると思います。debian lennyシステムでは、/ usr / bin / updatedbファイルは、/ usr / bin / updatedb.findutilsへのシンボリックリンクである/ etc / alternatives / updatedbへのシンボリックリンクです。

dpkg -Sを使用すると、ファイルが属するパッケージを見つけることができます。

$ dpkg -S /usr/bin/updatedb.findutils 
locate: /usr/bin/updatedb.findutils

したがって、locateをインストールしてからupdatedbをrootとして実行する必要があると思います。

編集:はい、ロケートパッケージが必要です。ファイル/usr/share/doc/findutils/NEWS.Debian.gzで以下を読むことができます:

Locateはfindutilsパッケージに含まれなくなりました。別のパッケージ「locate」に分割されました。

そして、2007年11月11日の変更ログの/usr/share/doc/findutils/changelog.Debian.gzで:

Locate / Updatedbを別のパッケージに分割します。


10

それはインストールされておらず、natxoによってリストされたディレクトリにもありませんでしたが、インストールする解決策を見つけました。先導者をありがとう!

http://www.nicecabbage.com/2009/08/install-locate-and-updatedb-on-centos-and-debian/

ルートで: apt-get install locate


?どうやら適切に説明していないようです。updatedbがインストールされたdebianシステム、dpkg -Sを使用すると、どのパッケージに属しているかがわかります。それが、ロケートパッケージが必要だと書いた理由です。しかし、自分で見つけてくれてうれしいです。
natxo asenjo

CentOS / RHELの場合、yum -y install mlocateです。
music2myear

2

rootとして実行する必要があるコマンドは、ユーザーの$ PATHに含まれていないため、実行するだけです。

$ sudo updatedb

動作するはずです。


0

管理者権限で「updatedb」を呼び出す必要があります。私の知る限り、findutilsは標準のDebianディストリビューション/ installationの一部です。したがって、/ etc / updatedb.confと/etc/cron.daily/(s)locateをご覧ください。

何も壊れていない場合、新鮮なupdatedb [データベースの検索]の構築は毎日のcronジョブなので、とにかくこれについて心配する必要はありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.