Mengelola software pihak ketiga di OpenBSD dengan pkg_add, pkg_info, pkg_delete, dan pkg_check, memahami variabel PKG_PATH, hingga mengenal sistem ports berbasis source dan alat build paralel dpb beserta tradeoff binary versus source.

Di episode 3 sebelumnya, kalian menginstal OpenBSD murni — base system tanpa aplikasi tambahan. Sekarang saatnya memperluas sistem dengan software pihak ketiga. Inilah salah satu perbedaan khas OpenBSD yang paling sering mengejutkan pendatang baru: tidak ada apt update, tidak ada yum. Yang ada adalah pkg_add dan dunia ports.
Mengapa berbeda? Karena OpenBSD memisahkan tegas base system dari package, dan setiap package dibangun dari ports — kumpulan recipe build yang diaudit. Model ini memberi kontrol penuh atas apa yang masuk ke sistem, sesuai semangat secure by default.
Instalasi package dilakukan dengan pkg_add. Sintaksnya sederhana:
pkg_add rsync
pkg_add nginx
pkg_add -U package_nameBeberapa opsi yang berguna:
pkg_add -v menampilkan detail proses.pkg_add -U memungkinkan update package (upgrade).pkg_add -D memakai interaksi default non-interaktif.Package diinstal ke /usr/local dan tercatat di database package. Berbeda dari base system, semuanya yang berasal dari pkg_add hidup di direktori itu, sehingga tidak pernah menimpa utilitas base system.
Ketika tanpa PKG_PATH, pkg_add memakai repo default dari rilis yang sesuai versi OS. Untuk instalasi dari repositori tertentu atau untuk versi yang tidak default, set PKG_PATH:
export PKG_PATH=https://cdn.openbsd.org/pub/OpenBSD/7.4/packages/amd64/
pkg_add rsyncSetelah PKG_PATH diset, pkg_add bisa mengikuti dependency secara otomatis. Nilai PKG_PATH yang benar mengikuti pola .../pub/OpenBSD/<version>/packages/<arch>/.
Untuk melihat package yang terinstal dan rinciannya:
pkg_info
pkg_info -Q nginx
pkg_info -e nginxpkg_info tanpa argumen: daftar semua package terinstal.pkg_info -Q nginx: mencari package yang tersedia (query).pkg_info -e nginx: memeriksa apakah package sudah terinstal.Informasi lengkap seperti deskripsi, dependency, dan file milik package bisa dilihat dengan pkg_info -f package_name atau pkg_info -L package_name.
Penghapusan dilakukan dengan pkg_delete, dan bisa sekaligus menghapus dependency yang tidak terpakai:
pkg_delete nginx
pkg_delete -a
pkg_delete -x 'nginx-*'pkg_delete -a membersihkan package yang tidak lagi dibutuhkan dependency lain. Opsi -x menghapus berdasarkan ekspresi wildcard.
OpenBSD menyediakan pkg_check untuk memverifikasi konsistensi package terinstal — misalnya memastikan semua dependency masih ada dan file tidak hilang:
pkg_check
pkg_check -aJalankan pkg_check secara berkala, terutama setelah update atau penghapusan, untuk mendeteksi package yang rusak sejak dini.
Info
Update seluruh package di OpenBSD tidak dilakukan lewat satu perintah "distro upgrade". Praktiknya adalah menaikkan base system dulu (lewat sysupgrade), lalu memperbarui package dengan pkg_add -u terhadap repositori rilis yang baru.
Ketika binary package tidak tersedia atau kalian butuh opsi build khusus, gunakan ports. Tree ports bisa diambil lewat git atau tarball, dan diletakkan di /usr/ports:
cd /usr
git clone https://github.com/openbsd/ports.gitSetiap port adalah direktori berisi Makefile, distinfo, dan pkg/. Contoh: port untuk rsync berada di net/rsync.
Untuk membangun dan menginstal sebuah port:
cd /usr/ports/net/rsync
make install
make cleanProses ini mengunduh source, memverifikasi checksum dari distinfo, membangun, lalu mengemas sebagai package yang diinstal dengan pkg_add. Hasil akhir sama seperti binary package — perbedaannya kalian yang mengompilasi.
Membangun lusinan port satu per satu lambat. dpb (distributed/parallel build) mengotomatisasi build banyak port sekaligus, memanfaatkan beberapa core atau beberapa mesin:
/usr/ports/infrastructure/bin/dpb -B /usr/ports/pkgdir net/rsync net/nginxdpb menangani urutan dependency, membangun secara paralel, dan menghasilkan package di pkgdir. Ini adalah alat wajib bagi yang memelihara repositori package sendiri.
| Aspek | Binary package (pkg_add) | Ports (make install) |
|---|---|---|
| Kecepatan | Sangat cepat | Lambat (mengompilasi) |
| Opsi build | Terbatas pada default | Bisa disesuaikan lewat Makefile |
| Maintenance | Rendah | Perlu perawatan toolchain |
| Cocok untuk | Produksi dan mayoritas pengguna | Kebutuhan khusus, pengembang |
Untuk hampir semua kasus produksi, binary package adalah pilihan yang tepat: cepat, konsisten, dan sudah diuji. Ports menjadi pilihan saat kalian butuh flag build tertentu atau saat menjalankan infrastruktur build sendiri.
Di episode 4 ini kalian menguasai manajemen package OpenBSD: menginstal dengan pkg_add, memeriksa dengan pkg_info, menghapus dengan pkg_delete, memastikan kesehatan dengan pkg_check, memahami PKG_PATH, serta mengenal dunia ports dan dpb beserta tradeoff binary versus source.
Inti yang harus dibawa pulang:
pkg_add, pkg_info, pkg_delete, dan pkg_check adalah siklus hidup package./usr/local dan tidak pernah mengganggu base system.PKG_PATH menentukan repositori; update dilakukan lewat pkg_add -u setelah upgrade base system.Di episode 5 selanjutnya, kita akan mengelola user, group, dan doas — membuat akun dengan useradd, memetakan grup di /etc/group, serta mengganti sudo dengan doas yang lebih sederhana dan aman lewat /etc/doas.conf. Sistem kalian akan mulai "dihuni" sekarang!