Разница между местонахождением и перемещением


14

Я хотел установить команду locate, которая доступна через sudo apt-get installmlocate.

Тем не менее, я сначала побежал, sudo apt-get installlocateкоторый, кажется, установил что-то еще.

Однако ввод команды, locate <package>похоже, требует mlocate.

Что такое пакет locateи можно ли его безопасно удалить?


1
Я считаю, что mlocate был заменой оригинального locate, но это было 15 лет назад, и, вероятно, один пакет является псевдонимом или ссылкой на другой. Есть еще один вариант, «slocate», который наблюдал видимость файла, основываясь на разрешениях пользователя, но я не видел. Это в течение длительного времени
Otheus

Ответы:


25

Пакет locate является реализацией locate из GNU findutils . Пакет mlocate - это еще одна реализация той же концепции, которая называется mlocate . Они реализуют ту же базовую функциональность: быстрый поиск имен файлов на основе индекса, который (как правило) перестраивается каждую ночь. Они отличаются по некоторым своим функциям вне базового использования. В частности, GNU locate создает индекс только для читаемых файлов (если вы не запускаете его из своей учетной записи), тогда как mlocate создает индекс всех файлов, но позволяет только вызывающему пользователю видеть файлы, к которым он может получить доступ. Это делает mlocate более полезным в большинстве случаев, но непригодным в некоторых необычных установках, где он не запускается системным администратором (потому чтоmlocateдолжен быть setuid root ) и риск для безопасности.

Под Debian и производными программами, если вы установите оба, locateзапустится mlocateреализация, и вам нужно будет запустить ее, locate.findutilsчтобы запустить реализацию GNU. Это управляется через альтернативы . Если вы оба установили, они оба потратят время на восстановление своего соответствующего индекса, но в остальном они не будут конфликтовать друг с другом.


2
Вы забыли упомянуть mlocateосновную особенность, от которой он получает свое имя («местоположение слияния»): он предоставляет версию, updatedbкоторая повторно использует свой старый индекс для повышения производительности обновления, запрашивая только списки файлов / подкаталогов для каталогов, в ctimeкоторых изменилось ,
Ssokolow

5

mlocate - это более новая реализация locate. Как только вы установите mlocateего

изменит двоичный файл / usr / bin / locate, чтобы он указывал на перемещение через механизм альтернатив.

Вот почему вы получаете поведение mlocate, если вы устанавливаете в таком порядке.

Подробности можно найти здесь


На самом деле, я никогда не устанавливал mlocate, но на моей системе Ubuntu 16.04,/usr/bin/locate -> /etc/alternatives/locate -> /usr/bin/mlocate
cayhorstmann
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.