Menggunakan perintah apt pada Arch Linux mungkin terdengar seperti ide yang membingungkan pada awalnya. Arch Linux secara native menggunakan pacman sebagai manajer paket utamanya, sementara apt lebih dikenal sebagai utilitas inti dari ekosistem Debian dan Ubuntu. Namun, ada kalanya seorang pengguna Arch Linux membutuhkan lingkungan berbasis Debian—entah untuk mengembangkan paket Debian, menguji kompatibilitas perangkat lunak lintas distribusi, atau sekadar mengelola chroot untuk aplikasi yang tidak memiliki versi Arch. Dalam konteks inilah menjalankan apt di dalam Arch Linux menjadi relevan dan sangat berguna.

Artikel ini akan memandu Anda secara langkah demi langkah untuk menyiapkan, mengkonfigurasi, dan menjalankan perintah apt di dalam Arch Linux menggunakan pendekatan containerisasi dengan Distrobox. Distrobox adalah alat yang memungkinkan Anda menjalankan distribusi Linux lain di dalam terminal Arch Linux Anda secara mulus, seolah-olah Anda menginstalnya secara native. Dengan cara ini, Anda tidak merusak struktur sistem file Arch Linux induk, tetapi mendapatkan akses penuh ke ekosistem apt yang berjalan di atas fondasi Arch yang stabil.

Persiapan

Sebelum kita menyelami proses instalasi dan konfigurasi, penting untuk memahami lingkungan dan prasyarat yang dibutuhkan agar seluruh rangkaian langkah berjalan tanpa hambatan. Membangun lingkungan apt di Arch Linux bukanlah proses bawaan, sehingga kita harus memastikan bahwa fondasi sistem kita cukup kuat untuk mendukung virtualisasi ringan dan containerisasi yang akan menjadi jembatan kita ke dunia Debian.

Dari segi sistem operasi yang didukung, tutorial ini secara khusus dirancang untuk Arch Linux dan turunannya seperti Manjaro, EndeavourOS, dan Garuda Linux. Meskipun Distrobox bisa diinstal di distribusi lain, perintah-perintah manajemen paket dasar yang kita gunakan untuk persiapan akan sangat spesifik menggunakan pacman. Sistem operasi Anda harus berjalan pada kernel yang relatif modern, setidaknya versi 5.x atau yang lebih baru, untuk mendapatkan dukungan penuh terhadap fitur namespace dan cgroups yang esensial bagi Podman atau Docker.

Terlebih lagi, Versi minimum yang didukung pendukung sangat krusial. Kita akan mengandalkan Distrobox (versi minimum 1.4.0 ke atas) sebagai pembungkus lingkungan, dan Podman (versi 2.0 atau lebih baru) atau Docker (versi 20.10+) sebagai mesin container di belakang layar. Podman menjadi pilihan utama di ekosistem Arch Linux karena sifatnya yang rootless (tanpa root) secara default, sehingga menawarkan keamanan yang lebih baik dibandingkan Docker yang secara tradisional berjalan dengan akses root. Selain itu, pastikan Anda memiliki akses internet yang stabil karena kita akan mengunduh image container Debian berukuran ratusan megabyte.

Untuk memastikan sistem Arch Linux Anda sudah memiliki Perangkat pendukung yang tepat, Anda bisa memeriksa ketersediaan Podman dan utilitas dasar lainnya. Berikut adalah perintah untuk memverifikasi keberadaan dan versi dari tool yang diperlukan:

# Memeriksa versi kernel untuk memastikan dukungan container
uname -r

# Memeriksa apakah podman sudah terinstal dan versinya
pacman -Q podman

# Memeriksa apakah docker sudah terinstal (sebagai alternatif)
pacman -Q docker

# Memastikan utilitas dasar seperti curl dan git ada
pacman -Q curl git

Jika perintah-perintah di atas mengembalikan output versi yang valid, berarti sistem Anda siap untuk melangkah ke tahap pemasangan tool. Jika Podman atau Docker belum ada, Anda harus memasangnya terlebih dahulu menggunakan pacman -S podman atau pacman -S docker sebelum melanjutkan.

Memasang tool-nya

Memasang tool yang diperlukan untuk menjalankan apt di Arch Linux melibatkan dua komponen utama: mesin container (Podman) dan antarmuka container (Distrobox). Proses ini harus dilakukan secara berurutan karena Distrobox sangat bergantung pada mesin container untuk membuat, mengelola, dan mengeksekusi environment terisolasi. Pendekatan ini jauh lebih aman dibandingkan mencoba mem-porting binary apt dan seluruh pustaka dependensinya (seperti dpkg, apt-utils, dan glibc Debian) secara paksa ke dalam sistem file Arch Linux, yang dipastikan akan menyebabkan konflik pustaka yang fatal.

Langkah pertama adalah memasang Podman sebagai mesin container pilihan kita. Podman unggul karena arsitekturnya yang daemonless dan mendukung container rootless secara default, yang sangat selaras dengan filosofi Arch Linux yang mengutamakan kesederhanaan dan keamanan. Setelah Podman terinstal, kita akan memasang Distrobox. Distrobox bertindak sebagai pembungkus yang ramah pengguna (wrapper) di atas Podman, menyediakan perintah-perintah seperti distrobox-enter dan distrobox-create yang memudahkan integrasi container dengan sistem host, termasuk berbagi variabel lingkungan, direktori home, dan socket display X11/Wayland.

Berikut adalah step-by-step instalasi lengkap dari awal hingga tool dapat diverifikasi keberadaannya:

# 1. Memperbarui database paket Arch Linux
sudo pacman -Syu

# 2. Memasang Podman dan utilitas jaringan untuk container
sudo pacman -S podman netavark aardvark-dns

# 3. Memasang Distrobox dari repositori komunitas (AUR)
# Menggunakan pacman wrapper seperti paru atau yay
paru -S distrobox

# Alternatif: Memasang Distrobox menggunakan curl jika tidak ingin menggunakan AUR
curl -s https://raw.githubusercontent.com/89luca43/distrobox/main/install | sudo sh

# 4. Mengaktifkan dan memulai layanan Podman (opsional, untuk rootful container)
# Untuk penggunaan rootless, Podman berjalan otomatis saat dipanggil
systemctl --user enable --now podman.socket

Setelah seluruh perintah di atas dieksekusi tanpa error, langkah selanjutnya adalah memverifikasi bahwa instalasi berhasil dan kedua tool tersebut dapat berkomunikasi dengan baik. Verifikasi ini penting untuk memastikan bahwa Distrobox mengenali Podman sebagai container manager di sistem Anda.

# Verifikasi instalasi Podman
podman --version
# Keluaran yang tampak: podman version 4.x.x atau lebih baru

# Verifikasi instalasi Distrobox
distrobox --version
# Hasil yang muncul: distrobox version 1.x.x atau lebih baru

# Menguji coba Podman untuk menarik image kecil
podman pull alpine:latest

Jika verifikasi menunjukkan bahwa kedua perintah merespon dengan versi yang benar dan Podman berhasil menarik image uji coba, maka lingkungan Anda telah sepenuhnya siap untuk dikonfigurasi dan digunakan menjalankan apt.

Konfigurasi awal

Konfigurasi awal adalah tahap di mana kita benar-benar membentuk fondasi bagi perintah apt untuk hidup di dalam Arch Linux. Pada tahap ini, kita akan membuat container Debian menggunakan Distrobox, yang secara otomatis akan mengunduh image resmi Debian dan menyiapkan lingkungan terisolasi namun terintegrasi dengan sistem host Arch Linux Anda. File konfigurasi utama yang perlu diperhatikan di sini adalah konfigurasi Distrobox itu sendiri, yang memungkinkan kita untuk mendefinisikan image yang digunakan, volume yang dibagikan, dan variabel lingkungan yang diinjeksikan ke dalam container.

Secara default, Distrobox akan membagikan direktori $HOME pengguna ke dalam container, sehingga file-file proyek Anda di Arch Linux dapat langsung diakses dari dalam container Debian tanpa perlu konfigurasi tambahan. Namun, terdapat opsi penting yang bisa kita tentukan saat pembuatan container, seperti memilih distribusi dan versi spesifik (misalnya, Debian Bookworm atau Ubuntu Jammy), serta menentukan apakah container tersebut berjalan tanpa akses root (rootless) atau dengan hak istimewa administrator (privileged).

Mari kita buat container Debian baru yang akan menjadi rumah bagi perintah apt kita. Kita akan menamai container ini debian-apt dan menggunakan image debian:12 (Bookworm) yang merupakan versi stabil terbaru.

# Membuat container Debian baru bernama debian-apt
distrobox-create --name debian-apt --image debian:12

# Jika Anda lebih memilih lingkungan Ubuntu untuk kompatibilitas yang lebih luas
# distrobox-create --name ubuntu-apt --image ubuntu:22.04

Setelah container dibuat, container tersebut belum berjalan. Kita harus memasukinya sekali untuk menginisialisasi lingkungan, menyelesaikan konfigurasi internal Distrobox (seperti pembuatan pengguna di dalam container yang cocok dengan UID host), dan memastikan apt berfungsi normal. Inilah yang disebut sebagai tahap testing konfigurasi awal.

# Memasuki container untuk pertama kali (inisialisasi)
distrobox-enter --name debian-apt

# Di dalam container Debian, perbarui cache apt
sudo apt update

# Uji coba instalasi paket kecil untuk memastikan apt bekerja
sudo apt install -y curl

# Keluar dari container
exit

Selama tahap testing di atas, perhatikan output dari sudo apt update. Jika terjadi kegagalan resolusi DNS di dalam container, itu menandakan bahwa konfigurasi jaringan antara host Arch Linux dan container Podman perlu disesuaikan, yang umumnya dapat diatasi dengan memastikan netavark berjalan dengan benar di host. Jika apt update berjalan lancar dan berhasil mengunduh metadata paket, konfigurasi awal Anda telah sempurna.

Contoh penggunaan

Setelah lingkungan Debian berjalan di atas Arch Linux, Anda kini memiliki akses penuh ke fungsionalitas apt yang paripurna. Namun, berinteraksi dengan container secara konstan menggunakan distrobox-enter untuk kemudian menjalankan apt bisa terasa membosankan. Untuk mengatasi ini, Distrobox menyediakan perintah distrobox-export, yang memungkinkan kita mengekspor perintah dari dalam container langsung ke shell host Arch Linux. Dengan cara ini, Anda bisa menjalankan apt seolah-olah itu adalah program native Arch Linux dari terminal utama Anda.

Berikut adalah skenario umum penggunaan apt dalam konteks Arch Linux, lengkap dengan Keluaran yang tampak dan penjelasan flag yang digunakan.

Skenario 1: Mengekspor perintah apt ke host Arch Linux Daripada mengetik distrobox-enter --name debian-apt -- sudo apt install <paket>, Anda bisa membuat alias atau mengekspor aplikasi agar lebih ringkas.

# Masuk ke container terlebih dahulu
distrobox-enter --name debian-apt

# Di dalam container, ekspor perintah apt ke host
# Ini akan membuat skrip wrapper di ~/.local/bin/ host
distrobox-export --bin apt --export-path ~/.local/bin/

# Keluar dan uji dari terminal Arch Linux
exit
apt update

Keluaran yang tampak saat menjalankan apt update dari shell Arch Linux adalah daftar repository Debian yang diperbarui, persis seperti output apt di sistem Ubuntu/Debian native. Flag --bin menentukan binary yang ingin diekspor, sementara --export-path menentukan di mana skrip wrapper akan diletakkan di sistem host.

Skenario 2: Memasang paket development lintas platform Anda mungkin perlu menginstal pustaka development spesifik Debian untuk menguji kompilasi kode sumber Anda tanpa meninggalkan Arch Linux.

# Menjalankan apt install langsung dari host menggunakan distrobox-enter
distrobox-enter --name debian-apt -- sudo apt install -y build-essential libssl-dev

Penjelasan flag: Flag -y pada apt install berguna untuk mensetujui prompt konfirmasi secara otomatis, sangat berguna dalam skrip otomasi. build-essential adalah meta-package Debian yang berisi gcc, g++, dan make, sedangkan libssl-dev menyediakan header files untuk OpenSSL. Hasil yang muncul adalah apt mengunduh dan mengkonfigurasi paket-paket tersebut, dan file-file tersebut hanya akan ada di dalam container, tidak mencemari sistem /usr Arch Linux Anda.

Skenario 3: Mencari paket yang hanya ada di repositori Debian Terkadang, Anda ingin memastikan apakah sebuah paket tersedia di ekosistem Debian tanpa harus beralih ke mesin virtual.

distrobox-enter --name debian-apt -- apt-cache search nginx-full

Flag search pada apt-cache akan memindai database paket lokal di dalam container. Outputnya akan menampilkan deskripsi singkat paket nginx-full jika ada, atau kosong jika tidak ada. Ini jauh lebih cepat daripada harus mencari secara manual di browser.

Skenario 4: Melihat dependensi paket secara detail Untuk menganalisis mengapa sebuah paket Debian berperilaku berbeda dengan paket Arch Linux, Anda bisa memetakan pohon dependensinya.

distrobox-enter --name debian-apt -- apt-cache depends --recurse vim

Flag --recurse akan menampilkan seluruh dependensi secara berulang hingga ke daun pohon dependensi, memberikan gambaran komprehensif tentang apa yang sebenarnya dibutuhkan oleh paket vim di Debian.

Skenario 5: Membersihkan cache apt untuk menghemat ruang Container bisa membengkak seiring waktu karena cache paket yang diunduh oleh apt.

distrobox-enter --name debian-apt -- sudo apt clean
distrobox-enter --name debian-apt -- sudo apt autoremove -y

Flag clean pada apt akan menghapus seluruh file arsip .deb dari /var/cache/apt/archives/, sementara autoremove akan menguninstal paket-paket yang terinstal sebagai dependensi namun tidak lagi dibutuhkan oleh paket manapun. Outputnya adalah pengumuman ruang disk yang berhasil dibebaskan.

Kalau ada masalah

Mengintegrasikan dua ekosistem manajer paket yang sangat berbeda seperti Arch Linux dan Debian melalui lapisan containerisasi tentu membawa potensi masalah teknis yang unik. Ketika apt gagal berjalan di dalam Arch Linux Anda, sumber masalahnya jarang berasal dari apt itu sendiri, melainkan dari interaksi antara mesin container (Podman), sistem host Arch Linux, dan jaringan. Memahami cara men-diagnosa masalah ini adalah keterampilan esensial agar alur kerja Anda tidak terhenti.

Error yang paling umum ditemui adalah Could not resolve hostname atau kegagalan saat menjalankan apt update dengan pesan error seperti Failed to fetch. Ini terjadi karena container Podman yang dihasilkan Distrobox tidak secara otomatis mewarisi konfigurasi DNS yang kompleks dari host, terutama jika Anda menggunakan VPN, custom DNS (seperti Pi-hole), atau jaringan korporat. Solusi untuk masalah ini adalah memaksa container untuk menggunakan DNS publik yang andal, seperti Google DNS atau Cloudflare DNS, melalui konfigurasi Podman atau dengan memodifikasi file /etc/resolv.conf di dalam container.

Masalah umum lainnya adalah error permission denied saat menjalankan apt install tanpa sudo. Berbeda dengan pacman di Arch Linux yang secara ketat meminta Anda menggunakan sudo di awal, pengguna baru di container Distrobox terkadang bingung apakah mereka memiliki hak sudo. Distrobox secara default mengkonfigurasi pengguna tanpa password sudo, namun jika konfigurasi ini gagal, Anda akan mendapatkan error. Solusinya adalah memastikan pengguna berada di group sudo di dalam container.

Untuk mengecek log dan men-debug masalah yang lebih dalam, Podman menyediakan perintah logs yang sangat informatif. Anda juga bisa melihat log sistem Distrobox untuk mengetahui apa yang gagal selama tahap inisialisasi.

# Melihat daftar container yang ada, statusnya, dan ID-nya
podman ps -a

# Melihat log container spesifik menggunakan ID atau nama
podman logs debian-apt

Jika container berada dalam status Created tapi tidak bisa di-start, log di atas biasanya akan menunjukkan error seperti masalah kernel missing module atau Cgroups v2 yang tidak diaktifkan. Pada sistem Arch Linux, pastikan Anda memiliki baris systemd.unified_cgroup_hierarchy=1 di parameter kernel Anda di /etc/default/grub jika menggunakan systemd-boot.

Untuk tips debug lebih lanjut, Anda bisa masuk ke container dengan akses root penuh untuk memperbaiki konfigurasi dari dalam, atau menjalankan container secara interaktif tanpa init system untuk melihat apa yang salah.

# Masuk ke container sebagai root untuk memperbaiki masalah sudo/group
distrobox-enter --root --name debian-apt

# Di dalam container sebagai root, periksa konfigurasi jaringan
cat /etc/resolv.conf

# Jika kosong atau salah, timpa dengan DNS publik
echo "nameserver 8.8.8.8" > /etc/resolv.conf
echo "nameserver 1.1.1.1" >> /etc/resolv.conf

# Perbaiki hak sudo pengguna (ganti 'distrobox' dengan nama user Anda)
usermod -aG sudo distrobox

# Keluar dan coba lagi
exit
distrobox-enter --name debian-apt -- sudo apt update

Dengan pendekatan di atas, 90% masalah jaringan dan permission yang menghalangi eksekusi apt di Arch Linux dapat diselesaikan dengan cepat dan efisien.

Bacaan lanjutan

Menggabungkan kekuatan manajer paket apt dari ekosistem Debian dengan fleksibilitas rolling release Arch Linux melalui Distrobox membuka paradigma baru dalam alur kerja pengembangan dan administrasi sistem. Namun, artikel ini hanyalah permukaan dari apa yang bisa dicapai dengan arsitektur ini. Untuk terus memperdalam pemahaman dan mengoptimalkan penggunaan lingkungan hibrida ini, sangat disarankan untuk mengeksplorasi dokumentasi resmi dari masing-masing tool yang terlibat.

Dokumentasi resmi Distrobox adalah sumber primer terbaik untuk memahami fitur-fitur lanjutan seperti mengekspor aplikasi GUI dari container Debian ke desktop Arch Linux Anda, membagikan perangkat USB (seperti GPU untuk komputasi CUDA lintas distribusi), dan membuat distrobox.ini untuk mendeklarasikan lingkungan container secara reproduktif. Anda dapat mengaksesnya di repositori GitHub resmi penciptanya, yang menyediakan penjelasan mendalam mengenai setiap flag dan contoh use-case yang sangat relevan untuk pengembang perangkat lunak lintas platform.

Selain itu, memahami cara kerja Podman di belakang layar akan memberi Anda kendali penuh atas siklus hidup container, manajemen image, dan Isolasi jaringan. Dokumentasi Podman mencakup topik-topik seperti pembuatan pod (mirip dengan Kubernetes pod) dan konfigurasi rootless networking, yang esensial jika Anda ingin menjalankan layanan server spesifik Debian (seperti nginx atau postgresql versi lama) di dalam Arch Linux tanpa menurunkan versi paket host Anda.

Untuk topik lanjutan terkait langsung dengan apt, Anda bisa menjelajahi manual halaman apt(8), sources.list(5), dan apt_preferences(5) di dalam container Debian Anda. Memahami APT pinning (prioritas repositori) sangat berguna jika Anda mencoba mem-backport paket dari Debian Sid (unstable) ke Debian Bookworm (stable) dalam container Anda. Kombinasi APT pinning dan Distrobox memungkinkan Anda memiliki berbagai varian distribusi berbasis Debian yang berjalan bersamaan, masing-masing dengan prioritas paketnya sendiri, tanpa pernah mengganggu stabilitas sistem induk Arch Linux Anda.

Berikut adalah beberapa tautan sumber daya resmi yang wajib dibookmark untuk perjalanan Anda selanjutnya:

Dengan memanfaatkan sumber daya di atas, Anda dapat mengubah tantangan perbedaan manajer paket menjadi keunggulan kompetitif, memaksimalkan potensi Arch Linux sebagai platform pengembangan yang benar-benar universal.