ABDURROZAK.MY.ID // DEBIAN LINUX SERVER FUNDAMENTAL
PACKAGE MANAGEMENTDENGAN APT
Volume 06 dari seri Debian Linux Server Fundamental. Panduan komprehensif mengelola software dengan APT (Advanced Package Tool). Setiap command dijelaskan detail dengan syntax, parameter, contoh penggunaan, dan output. Dari konsep repository hingga manajemen package lengkap.
VOLUME06 / 17
SUB-BAB8
BACA90 MENIT
PACKAGE100%
ABDUR ROZAK, S.Kom.
Web Developer & System Administrator - abdurrozak.my.id
VOLUME 06 / 17
MENGELOLA SOFTWARE DENGAN APT
Panduan lengkap package management di Debian Linux menggunakan APT. 8 sub-bab mencakup konsep repository Debian, apt update, apt upgrade, install package, remove package, search package, dependency management, hingga manajemen repository. Setiap command disertai penjelasan detail dan contoh praktis.
SUB-BAB8LEVELPackage ManagementWAKTU90 MENIT
01
SUB-BAB 01 REPOSITORY
REPOSITORY DEBIAN
Apa Itu Repository?
Repository (repo) adalah server yang menyimpan ribuan package software beserta metadata-nya. Saat kamu install software via apt install, APT akan download package dari repository ini. Debian memiliki repository resmi yang terorganisir dengan baik.
Jenis Repository Debian
REPOSITORY
DESKRIPSI
ISI
main
Free software (DFSG-compliant)
Package open-source resmi
contrib
Free software tapi depend non-free
Package yang butuh non-free dependency
non-free
Non-free software
Driver proprietary, firmware
non-free-firmware
Non-free firmware
Firmware device (Debian 12+)
Release Branch
BRANCH
NAMA KODE
STATUS
USE CASE
Stable
bookworm (Debian 12)
Production-ready
Server production
Testing
trixie
Calon stable berikutnya
Testing, pre-production
Unstable
sid
Rolling development
Developer
File /etc/apt/sources.list
/etc/apt/sources.list
# Default Debian 12 (Bookworm) sources.listdeb http://deb.debian.org/debian/ bookworm maindeb http://deb.debian.org/debian/ bookworm-updates maindeb http://security.debian.org/debian-security bookworm-security main# Dengan contrib dan non-free:deb http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmwaredeb http://deb.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmwaredeb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware# Format:# deb [URL] [release] [components]# deb = binary package# deb-src = source package (untuk compile)
TIPS: Untuk server production, gunakan hanya main untuk stabilitas maksimal. Tambah contrib dan non-free hanya jika butuh driver/firmware tertentu.
Mirror Indonesia
Untuk download lebih cepat, gunakan mirror Indonesia:
apt update adalah command untuk mengupdate daftar package dari repository. Command ini TIDAK menginstall atau upgrade package, hanya mengupdate metadata (daftar package yang tersedia dan versinya).
PENTING: Selalu jalankan apt update sebelum apt install atau apt upgrade untuk memastikan kamu punya daftar package terbaru.
Cara Menggunakan
bash
# Update package listadmin@web-server:~$ sudo apt updateHit:1 http://deb.debian.org/debian bookworm InReleaseHit:2 http://deb.debian.org/debian bookworm-updates InReleaseHit:3 http://security.debian.org/debian-security bookworm-security InReleaseReading package lists... DoneBuilding dependency tree... DoneReading state information... DoneAll packages are up to date.
Penjelasan Output
OUTPUT
ARTI
Hit:1
Repository sudah up-to-date (tidak ada perubahan)
Get:1
Mendownload metadata baru dari repository
Reading package lists... Done
Selesai membaca daftar package
Building dependency tree... Done
Selesai membangun dependency tree
All packages are up to date
Semua package sudah versi terbaru
X packages can be upgraded
Ada X package yang bisa di-upgrade
Lihat Package yang Bisa Di-upgrade
bash
# Lihat daftar package yang bisa di-upgradeadmin@web-server:~$ apt list --upgradableListing...curl/bookworm-security 7.88.1-10+deb12u5 amd64 [upgradable from: 7.88.1-10+deb12u4]libcurl4/bookworm-security 7.88.1-10+deb12u5 amd64 [upgradable from: 7.88.1-10+deb12u4]openssl/bookworm-security 3.0.11-1~deb12u2 amd64 [upgradable from: 3.0.11-1~deb12u1]
Tips apt update
LAKUKAN
Jalankan sebelum install/upgrade, gunakan mirror lokal untuk kecepatan
HINDARI
Jangan skip update sebelum install, jangan gunakan repo tidak resmi tanpa verifikasi
KOMPETENSI SUB-BAB 02
Memahami fungsi apt update
Mampu jalankan apt update dengan benar
Mampu membaca output apt update
Mampu lihat package yang bisa di-upgrade
03
SUB-BAB 03 APT UPGRADE
APT UPGRADE
Jenis Upgrade
COMMAND
FUNGSI
CONTOH USE CASE
apt upgrade
Upgrade package tanpa remove/install package baru
Update rutin, aman
apt full-upgrade
Upgrade dengan smart dependency handling
Upgrade mayor, bisa remove package lama
apt dist-upgrade
Sama dengan full-upgrade (alias)
Upgrade mayor
Cara Menggunakan
bash
# 1. Update dulu (WAJIB)admin@web-server:~$ sudo apt update# 2. Upgrade package (aman)admin@web-server:~$ sudo apt upgradeReading package lists... DoneBuilding dependency tree... DoneCalculating upgrade... DoneThe following packages will be upgraded: curl libcurl4 openssl3 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.Need to get 2,456 kB of archives.After this operation, 0 B of additional disk space will be used.Do you want to continue? [Y/n]Y# Atau dengan auto-confirmadmin@web-server:~$ sudo apt upgrade -y# Full upgrade (untuk upgrade mayor)admin@web-server:~$ sudo apt full-upgrade -y
Perbedaan upgrade vs full-upgrade
apt upgrade
AMAN - Tidak akan remove package yang terinstall. Jika package butuh dependency baru, tidak akan di-upgrade.
apt full-upgrade
SMART - Bisa remove package lama dan install package baru untuk menyelesaikan dependency. Gunakan dengan hati-hati.
Best Practice Upgrade
1
WORKFLOW UPGRADE
bash - workflow
# 1. Backup sistem (opsional tapi direkomendasikan)admin@web-server:~$ sudo timeshift --create --comments "Before upgrade"# 2. Update package listadmin@web-server:~$ sudo apt update# 3. Lihat apa yang akan di-upgradeadmin@web-server:~$ apt list --upgradable# 4. Upgrade (aman)admin@web-server:~$ sudo apt upgrade -y# 5. Cek apakah perlu rebootadmin@web-server:~$ [ -f /var/run/reboot-required ] && echo "Reboot required"# 6. Reboot jika perluadmin@web-server:~$ sudo reboot
PERINGATAN: Untuk upgrade mayor (misal Debian 11 ke 12), baca release notes terlebih dahulu. Gunakan apt full-upgrade dengan hati-hati dan backup sistem terlebih dahulu.
KOMPETENSI SUB-BAB 03
Membedakan apt upgrade dan apt full-upgrade
Mampu jalankan upgrade dengan benar
Memahami workflow upgrade yang aman
Mampu cek apakah perlu reboot
04
SUB-BAB 04 INSTALL
INSTALL PACKAGE
apt install
bash
# Install package tunggaladmin@web-server:~$ sudo apt install nginxReading package lists... DoneBuilding dependency tree... DoneThe following additional packages will be installed: nginx-common nginx-lightSuggested packages: fcgiwrap nginx-docThe following NEW packages will be installed: nginx nginx-common nginx-light0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.Need to get 1,234 kB of archives.After this operation, 3,456 kB of additional disk space will be used.Do you want to continue? [Y/n]Y# Install multiple package sekaligusadmin@web-server:~$ sudo apt install nginx php mysql-server# Install dengan auto-confirmadmin@web-server:~$ sudo apt install -y nginx# Install tanpa install recommended packageadmin@web-server:~$ sudo apt install --no-install-recommends nginx# Install package versi tertentuadmin@web-server:~$ sudo apt install nginx=1.22.1-9# Download package tanpa installadmin@web-server:~$ apt download nginx# Install file .deb lokaladmin@web-server:~$ sudo apt install ./package.deb
Penjelasan Output
OUTPUT
ARTI
additional packages
Package tambahan yang akan diinstall (dependency)
Suggested packages
Package yang disarankan (tidak wajib)
NEW packages
Package baru yang akan diinstall
Need to get
Ukuran total yang harus didownload
After this operation
Ruang disk yang akan digunakan setelah install
Install dari File .deb
bash
# Install file .deb lokaladmin@web-server:~$ sudo apt install ./package.deb# Atau gunakan dpkgadmin@web-server:~$ sudo dpkg -i package.deb# Jika ada dependency yang missing, fix dengan:admin@web-server:~$ sudo apt install -f↳ -f = fix broken dependencies
Tips Install
LAKUKAN
Selalu update sebelum install, baca deskripsi package, cek dependency
HINDARI
Jangan install dari sumber tidak resmi, jangan force install tanpa cek dependency
KOMPETENSI SUB-BAB 04
Mampu install package dari repository
Mampu install multiple package sekaligus
Mampu install package versi tertentu
Mampu install file .deb lokal
Mampu fix broken dependencies
05
SUB-BAB 05 REMOVE
REMOVE PACKAGE
Jenis Remove
COMMAND
FUNGSI
CONFIG FILES
apt remove
Remove package
Tetap ada
apt purge
Remove package + config files
Terhapus
apt autoremove
Remove dependency yang tidak terpakai
Tergantung
apt autoclean
Hapus cached package lama
-
apt clean
Hapus semua cached package
-
Cara Menggunakan
bash
# Remove package (config files tetap ada)admin@web-server:~$ sudo apt remove nginxReading package lists... DoneThe following packages will be REMOVED: nginx0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.# Remove package + config filesadmin@web-server:~$ sudo apt purge nginx# Remove multiple packageadmin@web-server:~$ sudo apt remove nginx php# Auto-confirmadmin@web-server:~$ sudo apt remove -y nginx# Remove dependency yang tidak terpakaiadmin@web-server:~$ sudo apt autoremoveReading package lists... DoneThe following packages will be REMOVED: nginx-common nginx-light# Hapus cached package lamaadmin@web-server:~$ sudo apt autocleanDelivered file /var/cache/apt/archives/lock# Hapus semua cached packageadmin@web-server:~$ sudo apt clean
Perbedaan remove vs purge
apt remove
Hapus package saja. Config files di /etc tetap ada. Berguna jika ingin install ulang nanti dengan config yang sama.
apt purge
Hapus package + config files. Bersih total. Gunakan jika tidak akan install ulang atau ingin config fresh.
Tips Remove
1
BEST PRACTICE
bash - tips
# 1. Cek dulu apa yang akan di-removeadmin@web-server:~$ apt remove nginx --simulate↳ --simulate = simulasi, tidak benar-benar remove# 2. Lihat package yang depend on package iniadmin@web-server:~$ apt rdepends nginx# 3. Setelah remove, jalankan autoremoveadmin@web-server:~$ sudo apt autoremove# 4. Bersihkan cacheadmin@web-server:~$ sudo apt autoclean
PERINGATAN: Hati-hati saat remove package! Beberapa package adalah dependency untuk package lain. Selalu cek dengan --simulate sebelum remove.
KOMPETENSI SUB-BAB 05
Membedakan apt remove, purge, autoremove
Mampu remove package dengan aman
Mampu cek dependency sebelum remove
Mampu bersihkan cache package
06
SUB-BAB 06 SEARCH
SEARCH PACKAGE
Cara Search Package
bash
# Search package berdasarkan nama/deskripsiadmin@web-server:~$ apt search nginxSorting...Full Text Search...nginx/stable 1.22.1-9 amd64 small, powerful, efficient web servernginx-common/stable 1.22.1-9 all small, powerful, efficient web server (common files)# Search dengan regexadmin@web-server:~$ apt search "^nginx"↳ ^ = mulai dari awal nama# Lihat info detail packageadmin@web-server:~$ apt show nginxPackage: nginxVersion: 1.22.1-9Priority: optionalSection: webMaintainer: Debian Nginx MaintainersInstalled-Size: 2,345 kBDepends: nginx-common (= 1.22.1-9)Homepage: https://nginx.orgDescription: small, powerful, efficient web server# Lihat package yang terinstalladmin@web-server:~$ apt list --installed# Lihat package yang bisa di-upgradeadmin@web-server:~$ apt list --upgradable# Lihat semua packageadmin@web-server:~$ apt list# Lihat package berdasarkan patternadmin@web-server:~$ apt list "nginx*"
apt search vs apt show
apt search
Cari package berdasarkan keyword. Menampilkan nama dan deskripsi singkat.
apt show
Tampilkan info detail package tertentu. Menampilkan versi, dependency, deskripsi lengkap.
Tips Search
bash - tips
# Pipe ke less untuk scrolladmin@web-server:~$ apt search nginx | less# Pipe ke grep untuk filteradmin@web-server:~$ apt search nginx | grep "^nginx/"# Lihat file yang diinstall oleh packageadmin@web-server:~$ dpkg -L nginx# Lihat package yang menyediakan file tertentuadmin@web-server:~$ apt-file search /usr/sbin/nginx↳ Perlu install apt-file dulu: sudo apt install apt-file
KOMPETENSI SUB-BAB 06
Mampu search package dengan apt search
Mampu lihat detail package dengan apt show
Mampu list package terinstall dan upgradable
Mampu gunakan pipe untuk filter hasil search
07
SUB-BAB 07 DEPENDENCY
DEPENDENCY MANAGEMENT
Apa Itu Dependency?
Dependency adalah package lain yang dibutuhkan oleh sebuah package agar bisa berfungsi. Saat install package, APT akan otomatis install dependency-nya. Saat remove package, APT bisa remove dependency yang tidak terpakai lagi.
Melihat Dependency
bash
# Lihat dependency yang dibutuhkan packageadmin@web-server:~$ apt depends nginxnginx Depends: nginx-common (= 1.22.1-9) Depends: libc6 (>= 2.34) Depends: libpcre2-8-0 (>= 10.22) Depends: libssl3 (>= 3.0.0) Depends: zlib1g (>= 1:1.1.4)# Lihat package yang depend on package ini (reverse)admin@web-server:~$ apt rdepends nginxnginxReverse Depends: nginx-full nginx-light# Lihat dependency tree lengkapadmin@web-server:~$ apt depends nginx --recurse# Lihat dependency yang belum terinstalladmin@web-server:~$ apt depends nginx --installed
Cek dependency sebelum install, gunakan apt install -f untuk fix broken, hindari force remove
HINDARI
Jangan install package tanpa cek dependency, jangan force remove package penting
PERINGATAN: Jangan pernah force remove package yang jadi dependency untuk package lain! Ini bisa merusak sistem. Selalu gunakan apt install -f untuk fix broken dependencies.
KOMPETENSI SUB-BAB 07
Memahami konsep dependency
Mampu lihat dependency dengan apt depends
Mampu lihat reverse dependency dengan apt rdepends
Mampu fix broken dependencies
08
SUB-BAB 08 REPO MANAGEMENT
MANAJEMEN REPOSITORY
Tambah Repository
bash
# Cara 1: Edit /etc/apt/sources.listadmin@web-server:~$ sudo nano /etc/apt/sources.list# Tambah baris baru, contoh:deb http://deb.debian.org/debian/ bookworm contrib non-free non-free-firmware# Cara 2: Tambah file di /etc/apt/sources.list.d/admin@web-server:~$ sudo nano /etc/apt/sources.list.d/custom.listdeb http://example.com/repo stable main# Cara 3: Gunakan add-apt-repository (untuk PPA-like)admin@web-server:~$ sudo apt install software-properties-commonadmin@web-server:~$ sudo add-apt-repository "deb http://example.com/repo stable main"# Setelah tambah repo, updateadmin@web-server:~$ sudo apt update
GPG Key Management
bash
# Import GPG key untuk repositoryadmin@web-server:~$ curl -fsSL https://example.com/key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/example.gpg# Atau download key duluadmin@web-server:~$ wget -qO- https://example.com/key.gpg | sudo tee /usr/share/keyrings/example.gpg > /dev/null# Tambah repo dengan signed-byadmin@web-server:~$ echo "deb [signed-by=/usr/share/keyrings/example.gpg] http://example.com/repo stable main" | sudo tee /etc/apt/sources.list.d/example.list# Lihat GPG key yang terinstalladmin@web-server:~$ apt-key list# Hapus GPG keyadmin@web-server:~$ sudo apt-key del KEY_ID
List & Remove Repository
bash
# Lihat semua repositoryadmin@web-server:~$ apt-cache policy# Lihat repository di sources.listadmin@web-server:~$ cat /etc/apt/sources.list# Lihat repository di sources.list.d/admin@web-server:~$ ls /etc/apt/sources.list.d/# Remove repositoryadmin@web-server:~$ sudo rm /etc/apt/sources.list.d/example.listadmin@web-server:~$ sudo apt update# Atau comment out baris di sources.listadmin@web-server:~$ sudo nano /etc/apt/sources.list# Tambah # di awal baris untuk disable# deb http://example.com/repo stable main
Jangan gunakan repo tidak resmi tanpa verifikasi, jangan campur release branch
PERINGATAN: Jangan campur repository dari release berbeda (misal stable dan testing). Ini bisa menyebabkan dependency conflict dan merusak sistem!
KOMPETENSI SUB-BAB 08
Mampu tambah repository baru
Mampu import dan manage GPG key
Mampu list dan remove repository
Memahami best practice repository management
VOLUME 06 SELESAI
SELAMAT!
Kamu telah menyelesaikan Volume 06 - Package Management dengan APT. Dari konsep repository, apt update, apt upgrade, install package, remove package, search package, dependency management, hingga manajemen repository. Kamu sekarang menguasai package management di Debian Linux. Di Volume 07, kita akan dalami Networking & Firewall. Sampai jumpa!