Різниця між locate та mlocate


15

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

Однак я спершу побіг, sudo apt-get installlocateякий, здається, встановив щось інше.

locate <package>Однак, начебто, введення команди не потребує введення mlocate.

Що таке пакет locate, і чи можна (слід) його безпечно виймати?


1
Я вважаю, що mlocate була заміною оригінальної локації, але це було 15 років тому, і, ймовірно, один пакет є псевдонімом або рефератом для іншого. Існує ще один варіант "slocate", який спостерігав видимість файлу на основі дозволів користувача, але я не бачив. Це вже давно
Отей

Відповіді:


25

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

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


3
Ви нехтували згадкою mlocateпро головну особливість, від якої вона отримала свою назву ("злиття локації"): вона надає версію, updatedbяка повторно використовує свій старий індекс для підвищення продуктивності оновлення, лише запитуючи списки файлів / підкаталогів для каталогів, де ctimeзмінився .
ssokolow

6

mlocate - це новіша реалізація локації. Після того, як ви встановите 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.