Steinar H. Gunderson wrote:
> Now, there is plocate (written and maintained by myself). It is orders of
> magnitude faster than mlocate (both on SSDs and HDDs alike), has the same
> security model, a smaller database (typically half the size), and fixes
> a few long-standing mlocate bugs. It is nearly fully command-line compatible
> with mlocate, so most users should feel right at home. It builds on all
> release and non-release architectures. The only non-Essential dependencies
> are liburing1 (33 kB) and libzstd1 (670 kB).
> 
> I believe a good, fast locate is something that we should have in our base
> install

I absolutely think that plocate makes sense as the "default" locate; it
seems like an improvement on mlocate in every way.

However, I don't think *any* locate should be in the base install, as
long as that entails having any kind of regularly scheduled task that
indexes the filesystem, even if that task has been made relatively
cheaper than other implementations. locate is a purely user-facing tool,
not really usable for portable scripting, since neither its presence nor
its functioning can be assumed. Many users won't even know it exists
(locate has far fewer users than find), and for all of those non-users,
the effort spent building the database will go entirely to waste.

On top of that, several desktop environments (including a default
"desktop" installation) have their own entirely separate mechanism for
indexing files, typically based on a change-watching API (e.g. inotify)
rather than a regularly scheduled update. For any users who have and use
such a mechanism, they'd then have *two* mechanisms indexing the
filesystem rather than just one, and they're likely to only use one of
those. Furthermore, any mechanism they use to configure one of them
(e.g. for privacy or performance reasons) will not control the other,
and again they may well be unaware of the existence of the other one.

We should absolutely have a locate implementation available for any who
want to install and use it, but we shouldn't make all users pay the cost
of locate's database update to satisfy the subset of users who ever
invoke locate.

- Josh Triplett

Reply via email to