APT Fast Setup
Mengapa APT Perlu Dioptimasi?
APT (Advanced Package Tool) adalah default package manager di Debian/Ubuntu. Tanpa optimasi, download package bisa lambat karena:
- Mirror default mungkin jauh secara geografis
- Download dilakukan sequential (satu per satu)
- Package cache tidak dikelola
- Repo yang tidak dibutuhkan masih aktif
Dengan optimasi yang tepat, kecepatan install bisa meningkat 5-10x lipat!
1. Ganti Mirror ke yang Tercepat
Cara Otomatis dengan netselect-apt
# Install netselect-apt
sudo apt update
sudo apt install netselect-apt
# Cari mirror tercepat untuk Ubuntu
sudo netselect-apt -n -o /etc/apt/sources.list
# Update sources list
sudo apt update
Atau Manual dengan Ubuntu Mirror Selector
Buka https://mirrors.ubuntu.com/mirrors.txt - daftar mirror resmi.
Pilih mirror terdekat (Indonesia/Singapura):
# Contoh untuk Ubuntu - ganti release name sesuai
# noble = 24.04, jammy = 22.04, focal = 20.04
# Backup dulu
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
# Edit file
sudo nano /etc/apt/sources.list
Isi file untuk Ubuntu 24.04 (Noble) - mirror Indonesia:
deb http://kartolo.sby.datautama.net.id/ubuntu/ noble main restricted universe multiverse
deb http://kartolo.sby.datautama.net.id/ubuntu/ noble-updates main restricted universe multiverse
deb http://kartolo.sby.datautama.net.id/ubuntu/ noble-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu/ noble-security main restricted universe multiverse
tipUntuk mirror Indonesia yang stabil:
kartolo.sby.datautama.net.id(Surabaya)buaya.klas.or.id(Indonesia)
Test kecepatan mirror dengan:
sudo apt update && timeout 5 ping -c 3 kartolo.sby.datautama.net.id:::
Mirror untuk Debian
deb http://kartolo.sby.datautama.net.id/debian/ bookworm main contrib non-free non-free-firmware
deb http://kartolo.sby.datautama.net.id/debian/ bookworm-updates main contrib non-free non-free-firmware
deb http://kartolo.sby.datautama.net.id/debian-security/ bookworm-security main contrib non-free non-free-firmware
2. Install & Konfigurasi apt-fast
apt-fast adalah wrapper untuk APT yang mendownload
package secara paralel menggunakan
aria2 atau axel.
Instalasi
# Install dependencies
sudo apt update
sudo apt install aria2 wget
# Clone repo apt-fast
sudo git clone https://github.com/ilikenwf/apt-fast /opt/apt-fast
sudo cp /opt/apt-fast/apt-fast /usr/local/bin/
sudo cp /opt/apt-fast/apt-fast.conf /etc/
# Atau install langsung via PPA (Ubuntu)
sudo add-apt-repository ppa:apt-fast/stable -y
sudo apt update
sudo apt install apt-fast
Konfigurasi
Edit /etc/apt-fast.conf:
sudo nano /etc/apt-fast.conf
Setel parameter berikut:
# Jumlah download paralel (sesuai koneksi)
_MIRRORS=(
'http://kartolo.sby.datautama.net.id/ubuntu/'
'http://archive.ubuntu.com/ubuntu/'
)
# Download manager (aria2c direkomendasikan)
_DOWNLOADER='aria2c'
_DOWNLOADER_OPTIONS='-x 5 -s 5 -k 1M'
Penggunaan apt-fast
# Update package list
sudo apt-fast update
# Install package (jauh lebih cepat dari apt)
sudo apt-fast install nginx mariadb-server phpmyadmin
# Upgrade semua package
sudo apt-fast upgrade
# Dist-upgrade
sudo apt-fast dist-upgrade
# Remove package
sudo apt-fast remove nginx
# Autoremove
sudo apt-fast autoremove
# Download only (tanpa install)
sudo apt-fast download docker-ce
peringatan
apt-fastmenggunakan lebih banyak bandwidth karena download paralel. Pastikan kuota internet cukup!
3. Parallel Download dengan aria2
Bahkan tanpa apt-fast, kamu bisa menggunakan
aria2 untuk download package secara manual:
# Install aria2
sudo apt install aria2
# Download package-package besar sekaligus
sudo apt install --download-only git docker.io mysql-server
cd /var/cache/apt/archives/
# Download paralel dengan aria2c
aria2c -x 5 -s 5 -j 3 <(apt-get --print-uris -qq update && apt-get --print-uris -qq install git)
4. Auto-Clean & Maintenance
Perintah Rutin
# Hapus package yang tidak lagi dibutuhkan
sudo apt autoremove
# Hapus file .deb di cache yang tidak diperlukan
sudo apt autoclean
# Hapus SEMUA file .deb di cache (tapi tetap di repo)
sudo apt clean
# Hapus konfigurasi package yang sudah dihapus
sudo apt purge $(dpkg -l | awk '/^rc/ {print $2}')
# Cek ukuran cache saat ini
du -sh /var/cache/apt/archives/
Auto-Clean Script (Cron Job)
# Buat script
sudo tee /usr/local/bin/apt-clean.sh << 'EOF'
#!/bin/bash
echo "[$(date)] Cleaning APT cache..."
sudo apt autoremove -y || true
sudo apt autoclean -y || true
echo "[$(date)] Done!"
EOF
sudo chmod +x /usr/local/bin/apt-clean.sh
# Jadwalkan tiap minggu
sudo crontab -e
# Tambahkan:
# 0 3 * * 0 /usr/local/bin/apt-clean.sh
5. Must-Have Packages untuk Security Lab
# Tools dasar
sudo apt update && sudo apt install -y \
curl wget git vim htop net-tools \
build-essential software-properties-common
# Network & Security
sudo apt install -y \
nmap netcat-openbsd tcpdump wireshark \
dnsutils whois traceroute \
# Web Pentesting
sudo apt install -y \
nikto sqlmap dirb gobuster hydra \
john hashcat
# Development
sudo apt install -y \
python3 python3-pip python3-venv \
nodejs npm \
docker.io docker-compose-plugin
# Monitoring
sudo apt install -y \
htop iotop nload iftop glances \
neofetch
tipSimpan daftar package favorit di script agar cepat install ulang:
sudo apt install $(cat ~/package-list.txt)
6. APT-Cacher-NG (Cache untuk Banyak VM)
Berguna jika kamu punya banyak container/VM yang perlu package yang sama.
Server (Host utama)
sudo apt install apt-cacher-ng
# Konfigurasi
sudo nano /etc/apt-cacher-ng/acng.conf
# Setel:
# CacheDir: /var/cache/apt-cacher-ng
# Port: 3142
# Start & enable
sudo systemctl enable --now apt-cacher-ng
# Cek status
sudo systemctl status apt-cacher-ng
sudo tail -f /var/log/apt-cacher-ng/apt-cacher-ng.log
Client (VM/Container)
# Di setiap VM, buat file proxy config
echo 'Acquire::HTTP::Proxy "http://192.168.1.100:3142";' | \
sudo tee /etc/apt/apt.conf.d/00proxy
echo 'Acquire::HTTPS::Proxy "false";' | \
sudo tee -a /etc/apt/apt.conf.d/00proxy
Atau untuk Docker:
# Di Dockerfile
RUN echo 'Acquire::HTTP::Proxy "http://host.docker.internal:3142";' > /etc/apt/apt.conf.d/00proxy
RUN echo 'Acquire::HTTPS::Proxy "false";' >> /etc/apt/apt.conf.d/00proxy
7. Pinning: Hold Packages
Mencegah package tertentu ter-upgrade:
# Hold package
sudo apt-mark hold docker-ce nginx
# Unhold
sudo apt-mark unhold docker-ce
# Lihat semua package yang di-hold
sudo apt-mark showhold
# Hold via dpkg
echo "docker-ce hold" | sudo dpkg --set-selections
dpkg --get-selections | grep hold
8. Troubleshooting
GPG Key Error
W: GPG error: ... NO_PUBKEY 1234567890ABCDEF
# Fix dengan apt-key (legacy)
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 1234567890ABCDEF
# Atau cara modern (gpg)
sudo gpg --homedir /etc/apt/trusted.gpg.d \
--keyserver keyserver.ubuntu.com \
--recv 1234567890ABCDEF
sudo gpg --homedir /etc/apt/trusted.gpg.d \
--export 1234567890ABCDEF | \
sudo tee /etc/apt/trusted.gpg.d/custom-key.gpg > /dev/null
Broken Packages
# Fix broken dependencies
sudo apt --fix-broken install
# Force install
sudo apt install -f
# Reconfigure package
sudo dpkg --configure -a
# Force overwrite
sudo apt install -o Dpkg::Options::="--force-overwrite" package-name
dpkg Lock Error
E: Could not get lock /var/lib/dpkg/lock-frontend
# 1. Cek proses yang menggunakan dpkg
ps aux | grep -i apt
ps aux | grep -i dpkg
# 2. Kill proses jika ada
sudo kill -9 <PID>
# 3. Hapus lock file (jika yakin tidak ada proses jalan)
sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock*
sudo dpkg --configure -a
peringatanHapus lock file hanya jika kamu yakin tidak ada proses APT/dpkg yang berjalan. Memaksa hapus lock bisa merusak sistem!
Package Dependency Hell
# Cek dependensi suatu package
apt depends nginx
# Cek package yang bergantung pada package lain
apt rdepends nginx
# Cari package yang menyediakan file tertentu
apt-file update
apt-file search /etc/nginx/nginx.conf
# Cek versi yang tersedia
apt policy nginx
Perbandingan: update vs upgrade vs dist-upgrade
| Perintah | Fungsi | Efek Samping |
|---|---|---|
apt update |
Update daftar package dari repo | Hanya update index, no install |
apt upgrade |
Upgrade package ke versi terbaru (tanpa hapus package) | Aman, tidak install/hapus package baru |
apt full-upgrade |
Upgrade dengan resolusi dependensi cerdas | Mungkin install/hapus package |
apt dist-upgrade |
Sama seperti full-upgrade | Biasanya untuk upgrade release |
apt autoremove |
Hapus package tidak terpakai | Hati-hati dengan dependencies manual |
apt autoclean |
Hapus .deb lama di cache | Aman |
apt clean |
Hapus semua .deb di cache | Download ulang jika dibutuhkan |
Perintah Lengkap APT
| Perintah | Deskripsi | Contoh |
|---|---|---|
apt update |
Update daftar package | sudo apt update |
apt upgrade |
Upgrade semua package | sudo apt upgrade -y |
apt install <pkg> |
Install package | sudo apt install nginx |
apt remove <pkg> |
Hapus package (konfigurasi tetap) | sudo apt remove nginx |
apt purge <pkg> |
Hapus package + konfigurasi | sudo apt purge nginx |
apt search <keyword> |
Cari package | apt search web server |
apt show <pkg> |
Lihat detail package | apt show nginx |
apt policy <pkg> |
Lihat versi tersedia | apt policy nginx |
apt depends <pkg> |
Lihat dependensi | apt depends nginx |
apt rdepends <pkg> |
Lihat package yang bergantung | apt rdepends libssl3 |
apt list --installed |
Lihat semua package terinstall | apt list --installed | wc -l |
apt list --upgradable |
Lihat package bisa di-upgrade | apt list --upgradable |
apt edit-sources |
Edit sources list | sudo apt edit-sources |
apt changelog <pkg> |
Lihat changelog | apt changelog nginx |
apt download <pkg> |
Download .deb saja | apt download nginx |
apt source <pkg> |
Download source code | apt source nginx |
apt build-dep <pkg> |
Install build dependencies | sudo apt build-dep nginx |
apt-mark hold <pkg> |
Hold package | sudo apt-mark hold nginx |
apt-mark unhold <pkg> |
Unhold package | sudo apt-mark unhold nginx |
Kesimpulan
Dengan optimasi APT, install dan update package di Ubuntu/Debian jadi jauh lebih cepat dan efisien.
Workflow optimasi lengkap:
# 1. Pilih mirror tercepat
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
# Edit pake mirror Indonesia
# 2. Install apt-fast + aria2
sudo apt install aria2
sudo add-apt-repository ppa:apt-fast/stable -y
sudo apt update && sudo apt install apt-fast -y
# 3. Gunakan apt-fast untuk semua operasi
sudo apt-fast update
sudo apt-fast upgrade -y
# 4. Install package-package penting
sudo apt-fast install -y curl wget git htop nmap nikto sqlmap
# 5. Set auto-clean rutin
sudo crontab -e
# 0 4 * * 0 /usr/bin/apt-get autoremove -y && /usr/bin/apt-get autoclean -y
# 6. (Opsional) Setup apt-cacher-ng di server lab
sudo apt install apt-cacher-ng
APT yang optimal = waktu tunggu lebih sedikit, produktivitas lebih tinggi!