Menguasai dua jalur instalasi software di FreeBSD: pkg untuk binary package yang cepat dan ports untuk build dari source. Kalian akan belajar alur pkg update, install, upgrade, search, info, dan autoremove, lalu membandingkan tradeoff dengan ports dan poudriere untuk build farm sendiri.

Di episode 3 sebelumnya kalian sudah menginstal FreeBSD dengan bsdinstall dan memilih partitioning. Sistem kalian bersih dan siap diisi. Sekarang saatnya belajar cara mengisi software — karena FreeBSD tanpa software seperti rumah tanpa perabot.
FreeBSD menawarkan dua jalur instalasi: pkg untuk binary package dan ports untuk build dari source. Keduanya berbagi basis yang sama, tapi alur kerjanya sangat berbeda. Episode ini membahas keduanya secara lengkap, plus poudriere untuk kalian yang ingin membangun ports sendiri secara besar-besaran.
pkg mengambil paket dari repositori resmi pkg.FreeBSD.org. Langkah pertama yang selalu kalian lakukan adalah memperbarui katalog:
pkg updateOutputnya menunjukkan versi repo dan jumlah paket yang tersedia. Perintah ini wajib dijalankan secara periodik agar pkg install dan pkg upgrade selalu memakai data terkini.
Mencari paket memakai pkg search, dan instalasi memakai pkg install:
pkg search nginx
pkg install nginxInfo
pkg otomatis menyelesaikan dependency. Jika nginx membutuhkan library lain, semuanya diunduh dan diinstal sekaligus — tidak seperti pendekatan manual ala source yang wajib kalian urus sendiri.
Untuk memeriksa apa yang sudah terinstal dan detail sebuah paket:
pkg info
pkg info nginx
pkg info -l nginxpkg info -l menampilkan daftar file yang dimiliki paket — berguna untuk melacak file konfigurasi mana yang berasal dari paket mana.
Memperbarui seluruh sistem dan membersihkan dependency yang tidak terpakai:
pkg upgrade
pkg autoremovepkg autoremove menghapus paket yang menjadi orphan — dependency lama yang tidak dibutuhkan paket lain lagi. Jalankan secara berkala agar sistem tidak menumpuk sampah.
pkg mendukung repositori kustom, termasuk repo lokal yang dibangun poudriere. Konfigurasi repositori ada di /etc/pkg/*.conf dan bisa dilihat dengan:
pkg reposPorts tree diinstal dari git untuk rilis modern. Di direktori /usr/ports, kalian menemukan ribuan direktori port:
git clone --depth 1 https://git.FreeBSD.org/ports.git /usr/portsPada rilis lama, perintah portsnap pernah menjadi standar, tapi sekarang git adalah metode yang direkomendasikan karena mendukung pembaruan dan cabang yang lebih baik.
Masuk ke direktori port lalu jalankan build:
cd /usr/ports/www/nginx
make install cleanmake install clean akan mengunduh source, menerapkan patch, mengompilasi sesuai pilihan opsi, dan menginstal hasilnya. Proses ini jauh lebih lama daripada pkg install, tapi memberi kontrol penuh.
Sebelum build, kalian bisa mengatur opsi port:
make config
make config-recursivemake config-recursive membuka menu opsi untuk port beserta seluruh dependency-nya. Pilihan opsi disimpan di /var/db/ports, sehingga build berikutnya konsisten.
| Kriteria | pkg | Ports |
|---|---|---|
| Kecepatan | Instan | Lama (compile) |
| Optimasi | Generic | Spesifik hardware |
| Kontrol opsi | Terbatas | Penuh |
| Kebutuhan toolchain | Tidak | Ya (compiler, make) |
| Cocok untuk | Pengguna umum | Appliance, tuning khusus |
Warning
Jangan mencampur terlalu banyak paket dari pkg dan build manual dari ports tanpa pemikiran. Jika kalian menginstal binary nginx lalu membangun nginx dari ports, pkg akan kehilangan jejak. Untuk konsistensi, pilih satu jalur dominan — atau gunakan poudriere agar semuanya build dari source namun tetap dikelola pkg.
poudriere adalah tool untuk membangun ports dalam lingkungan bersih dan terisolasi, menghasilkan package yang bisa dikelola pkg. Ini solusi bagi kalian yang ingin fleksibilitas ports sekaligus kecepatan binary pkg.
pkg install poudriereKonsep intinya: sebuah jail build, satu set port options, dan satu repositori output. Setelah build selesai, hasilnya dirujuk oleh pkg sebagai repositori lokal:
poudriere ports -c
poudriere jail -c -j 141amd64 -v 15.1-RELEASE
poudriere bulk -j 141amd64 -p default www/nginxPoudriere populer di kalangan operator yang ingin semua server memakai package hasil build sendiri dengan opsi seragam.
Untuk sebagian besar kasus, gunakan pkg sebagai jalur utama:
pkg update
pkg upgrade
pkg autoremoveGunakan ports atau poudriere hanya ketika kalian benar-benar membutuhkan opsi kompilasi khusus. Ini menjaga keseimbangan antara kemudahan dan kontrol.
Di episode 4 ini kalian sudah menguasai package management FreeBSD: alur pkg untuk binary package, cara kerja ports untuk build dari source, perbedaan serta tradeoff keduanya, dan pengenalan poudriere sebagai build farm. Kalian juga tahu kapan harus memilih jalur mana.
Inti yang harus dibawa pulang:
pkg update dulu, baru pkg install — biasakan memperbarui katalog secara rutin.pkg upgrade dan pkg autoremove menjaga sistem tetap bersih dan mutakhir.Di episode 5 selanjutnya kita akan membahas user, group & sudo — mengelola akun dengan pw, memahami /etc/passwd dan /etc/master.passwd, serta memilih antara doas dan sudo untuk privilege escalation. Keamanan sistem kalian mulai terbangun dari sini.