Daftar Isi
- 1. Cerita Kesalahan Awal: Konflik Paket dan Typo Panik
- 2. Plot Twist: Kenapa plocate Ternyata Lebih Unggul?
- 3. Mengapa Alpine Linux Mengadopsinya?
- 4. Solusi Agar Perintah “locate” Tetap Bisa Digunakan
Halo Sobat, kali ini saya mau berbagi sedikit catatan teknis dan pengalaman menarik seputar pengelolaan server Linux, khususnya di Alpine Linux. Saat kita mengelola server produksi dan perlu mencari file konfigurasi secara cepat—misalnya nginx.conf—perintah locate adalah senjata andalan kita. Dibanding perintah find yang memindai seluruh direktori secara real-time dan makan waktu lama, locate jauh lebih praktis karena membaca database indeks.
Namun, pas kemarin saya mencoba menginstal paket mlocate di Alpine Linux, saya sempat dibuat bingung oleh pesan error bentrok paket, bahkan sampai salah ketik perintah karena panik! Di artikel ini, saya bagikan cerita lengkapnya dari error awal hingga solusi mudahnya agar Sobat tidak perlu mengalami kebingungan yang sama.
1. Cerita Kesalahan Awal: Konflik Paket dan Typo Panik
Awalnya saya berasumsi sangat sederhana: tinggal jalankan apk add mlocate lalu selesai. Tapi terminal Alpine justru menolak instalasi tersebut dengan pesan konflik paket:
localhost:/home/ripanel/mysql# apk add mlocate
fetch http://dl-cdn.alpinelinux.org/alpine/v3.22/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.22/community/x86_64/APKINDEX.tar.gz
ERROR: unable to select packages:
mlocate-0.26-r9:
conflicts: plocate-1.1.23-r0[cmd:updatedb=0.26-r9]
breaks: plocate-1.1.23-r0[!mlocate]
satisfies: world[mlocate]
plocate-1.1.23-r0:
conflicts: mlocate-0.26-r9[cmd:updatedb=1.1.23-r0]
satisfies: world[plocate] Karena bingung, saya coba memanggil perintah locate dan hasilnya gagal:
localhost:/home/ripanel/mysql# locate nginx
-sh: locate: not found Mikir database-nya belum di-update, saya terburu-buru mengetikkan perintah hingga terjadi typo konyol, sebelum akhirnya membenarkannya:
# Typo karena buru-buru
localhost:/home/ripanel/mysql# updaedb
-sh: updaedb: not found
# Memperbarui database indeks
localhost:/home/ripanel/mysql# updatedb
# Dicoba lagi, tetap tidak bisa!
localhost:/home/ripanel/mysql# locate nginx
-sh: locate: not found
localhost:/home/ripanel/mysql# mlocate nginx
-sh: mlocate: not found 2. Plot Twist: Kenapa plocate Ternyata Lebih Unggul?
Setelah saya amati lagi baris log satisfies: world[plocate], barulah terungkap penyebabnya: sistem Alpine Linux saya ternyata sudah terpasang paket bernama plocate!
Sebagai pemain lama di dunia Linux, kita mungkin sudah terbiasa dengan mlocate yang legendaris. Tapi tahukah Sobat? plocate adalah proyek modern diciptakan tahun 2020 yang jauh lebih superior dibanding mlocate:
- Pencarian Ekstrem (20x – 50x Lebih Cepat):
plocatememanfaatkan fiturio_uringpada kernel Linux modern untuk membaca data secara asinkron dan paralel di SSD/NVMe. - Database Lebih Hemat: Struktur indeksnya dikompresi sedemikian rupa sehingga ukuran file database di sistem Sobat bisa hemat hingga 50%.
- Sangat Ringan: Penggunaan CPU dan RAM saat proses
updatedbberjalan jauh lebih rendah dibandingmlocate.
3. Mengapa Alpine Linux Mengadopsinya?
Alpine Linux sangat menjunjung tinggi prinsip efisiensi dan ukuran yang minimalis. Karena itulah sejak Alpine v3.16 (dirilis Mei 2022), Alpine menjadikan plocate sebagai standar utama pengganti mlocate.
Distro besar lain seperti Ubuntu (sejak 21.10 / 22.04 LTS) dan Debian (sejak Debian 11/12) juga sudah beralih ke plocate. Bedanya, Ubuntu otomatis membuatkan alias ke perintah locate, sedangkan Alpine membiarkannya tetap bernama plocate agar sistem tetap bersih.
4. Solusi Agar Perintah “locate” Tetap Bisa Digunakan
Agar jemari Sobat yang sudah terbiasa mengetik locate tidak perlu berubah, kita tidak perlu membuang plocate. Cukup buatkan symbolic link (symlink) satu kali di direktori sistem:
# Buat symlink dari plocate ke locate
ln -s /usr/bin/plocate /usr/bin/locate
# Sekarang jalankan perintah pencarian seperti biasa!
locate nginx Alternatif lainnya, Sobat juga bisa menambahkan alias pada file konfigurasi shell ~/.profile:
echo "alias locate='plocate'" >> ~/.profile
source ~/.profile Nah, itu dia catatan singkat dari eksperimen saya kali ini. Semoga tulisan ini membantu Sobat yang sempat kebingungan saat hendak memakai perintah locate di Alpine Linux!