ABDURROZAK
HOME ABOUT ME MICROSITE KONTAK PERSEMBAHAN HELP
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-BAB8 LEVELPackage Management WAKTU90 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

REPOSITORYDESKRIPSIISI
mainFree software (DFSG-compliant)Package open-source resmi
contribFree software tapi depend non-freePackage yang butuh non-free dependency
non-freeNon-free softwareDriver proprietary, firmware
non-free-firmwareNon-free firmwareFirmware device (Debian 12+)

Release Branch

BRANCHNAMA KODESTATUSUSE CASE
Stablebookworm (Debian 12)Production-readyServer production
TestingtrixieCalon stable berikutnyaTesting, pre-production
UnstablesidRolling developmentDeveloper

File /etc/apt/sources.list

/etc/apt/sources.list
# Default Debian 12 (Bookworm) sources.list deb http://deb.debian.org/debian/ bookworm main deb http://deb.debian.org/debian/ bookworm-updates main deb 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-firmware deb http://deb.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware deb 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:

MIRRORURL
Kartolohttp://kartolo.sby.datautama.net.id/debian/
Kebo (PENS)http://kebo.pens.ac.id/debian/
Poliwangi (ITB)http://mirror.poliwangi.ee.itb.ac.id/debian/
PDII LIPIhttp://mirror.pdii.lipi.go.id/debian/
KOMPETENSI SUB-BAB 01
  • Memahami konsep repository Debian
  • Membedakan main, contrib, non-free, non-free-firmware
  • Memahami release branch (stable, testing, unstable)
  • Mengetahui file /etc/apt/sources.list
  • Mengenal mirror Indonesia
02
SUB-BAB 02 APT UPDATE

APT UPDATE

Apa Itu apt update?

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 list admin@web-server:~$ sudo apt update Hit:1 http://deb.debian.org/debian bookworm InRelease Hit:2 http://deb.debian.org/debian bookworm-updates InRelease Hit:3 http://security.debian.org/debian-security bookworm-security InRelease Reading package lists... Done Building dependency tree... Done Reading state information... Done All packages are up to date.

Penjelasan Output

OUTPUTARTI
Hit:1Repository sudah up-to-date (tidak ada perubahan)
Get:1Mendownload metadata baru dari repository
Reading package lists... DoneSelesai membaca daftar package
Building dependency tree... DoneSelesai membangun dependency tree
All packages are up to dateSemua package sudah versi terbaru
X packages can be upgradedAda X package yang bisa di-upgrade

Lihat Package yang Bisa Di-upgrade

bash
# Lihat daftar package yang bisa di-upgrade admin@web-server:~$ apt list --upgradable Listing... 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

COMMANDFUNGSICONTOH USE CASE
apt upgradeUpgrade package tanpa remove/install package baruUpdate rutin, aman
apt full-upgradeUpgrade dengan smart dependency handlingUpgrade mayor, bisa remove package lama
apt dist-upgradeSama 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 upgrade Reading package lists... Done Building dependency tree... Done Calculating upgrade... Done The following packages will be upgraded: curl libcurl4 openssl 3 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-confirm admin@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 list admin@web-server:~$ sudo apt update # 3. Lihat apa yang akan di-upgrade admin@web-server:~$ apt list --upgradable # 4. Upgrade (aman) admin@web-server:~$ sudo apt upgrade -y # 5. Cek apakah perlu reboot admin@web-server:~$ [ -f /var/run/reboot-required ] && echo "Reboot required" # 6. Reboot jika perlu admin@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 tunggal admin@web-server:~$ sudo apt install nginx Reading package lists... Done Building dependency tree... Done The following additional packages will be installed: nginx-common nginx-light Suggested packages: fcgiwrap nginx-doc The following NEW packages will be installed: nginx nginx-common nginx-light 0 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 sekaligus admin@web-server:~$ sudo apt install nginx php mysql-server # Install dengan auto-confirm admin@web-server:~$ sudo apt install -y nginx # Install tanpa install recommended package admin@web-server:~$ sudo apt install --no-install-recommends nginx # Install package versi tertentu admin@web-server:~$ sudo apt install nginx=1.22.1-9 # Download package tanpa install admin@web-server:~$ apt download nginx # Install file .deb lokal admin@web-server:~$ sudo apt install ./package.deb

Penjelasan Output

OUTPUTARTI
additional packagesPackage tambahan yang akan diinstall (dependency)
Suggested packagesPackage yang disarankan (tidak wajib)
NEW packagesPackage baru yang akan diinstall
Need to getUkuran total yang harus didownload
After this operationRuang disk yang akan digunakan setelah install

Install dari File .deb

bash
# Install file .deb lokal admin@web-server:~$ sudo apt install ./package.deb # Atau gunakan dpkg admin@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

COMMANDFUNGSICONFIG FILES
apt removeRemove packageTetap ada
apt purgeRemove package + config filesTerhapus
apt autoremoveRemove dependency yang tidak terpakaiTergantung
apt autocleanHapus cached package lama-
apt cleanHapus semua cached package-

Cara Menggunakan

bash
# Remove package (config files tetap ada) admin@web-server:~$ sudo apt remove nginx Reading package lists... Done The following packages will be REMOVED: nginx 0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded. # Remove package + config files admin@web-server:~$ sudo apt purge nginx # Remove multiple package admin@web-server:~$ sudo apt remove nginx php # Auto-confirm admin@web-server:~$ sudo apt remove -y nginx # Remove dependency yang tidak terpakai admin@web-server:~$ sudo apt autoremove Reading package lists... Done The following packages will be REMOVED: nginx-common nginx-light # Hapus cached package lama admin@web-server:~$ sudo apt autoclean Delivered file /var/cache/apt/archives/lock # Hapus semua cached package admin@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-remove admin@web-server:~$ apt remove nginx --simulate ↳ --simulate = simulasi, tidak benar-benar remove # 2. Lihat package yang depend on package ini admin@web-server:~$ apt rdepends nginx # 3. Setelah remove, jalankan autoremove admin@web-server:~$ sudo apt autoremove # 4. Bersihkan cache admin@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/deskripsi admin@web-server:~$ apt search nginx Sorting... Full Text Search... nginx/stable 1.22.1-9 amd64 small, powerful, efficient web server nginx-common/stable 1.22.1-9 all small, powerful, efficient web server (common files) # Search dengan regex admin@web-server:~$ apt search "^nginx" ↳ ^ = mulai dari awal nama # Lihat info detail package admin@web-server:~$ apt show nginx Package: nginx Version: 1.22.1-9 Priority: optional Section: web Maintainer: Debian Nginx Maintainers Installed-Size: 2,345 kB Depends: nginx-common (= 1.22.1-9) Homepage: https://nginx.org Description: small, powerful, efficient web server # Lihat package yang terinstall admin@web-server:~$ apt list --installed # Lihat package yang bisa di-upgrade admin@web-server:~$ apt list --upgradable # Lihat semua package admin@web-server:~$ apt list # Lihat package berdasarkan pattern admin@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 scroll admin@web-server:~$ apt search nginx | less # Pipe ke grep untuk filter admin@web-server:~$ apt search nginx | grep "^nginx/" # Lihat file yang diinstall oleh package admin@web-server:~$ dpkg -L nginx # Lihat package yang menyediakan file tertentu admin@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 package admin@web-server:~$ apt depends nginx nginx 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 nginx nginx Reverse Depends: nginx-full nginx-light # Lihat dependency tree lengkap admin@web-server:~$ apt depends nginx --recurse # Lihat dependency yang belum terinstall admin@web-server:~$ apt depends nginx --installed

Fix Broken Dependencies

bash
# Fix broken dependencies admin@web-server:~$ sudo apt install -f ↳ -f = fix broken dependencies Reading package lists... Done Building dependency tree... Done Correcting dependencies... Done # Atau admin@web-server:~$ sudo apt --fix-broken install # Cek broken packages admin@web-server:~$ dpkg --audit # Reconfigure package admin@web-server:~$ sudo dpkg-reconfigure package-name

Tips Dependency

LAKUKAN
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.list admin@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.list deb http://example.com/repo stable main # Cara 3: Gunakan add-apt-repository (untuk PPA-like) admin@web-server:~$ sudo apt install software-properties-common admin@web-server:~$ sudo add-apt-repository "deb http://example.com/repo stable main" # Setelah tambah repo, update admin@web-server:~$ sudo apt update

GPG Key Management

bash
# Import GPG key untuk repository admin@web-server:~$ curl -fsSL https://example.com/key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/example.gpg # Atau download key dulu admin@web-server:~$ wget -qO- https://example.com/key.gpg | sudo tee /usr/share/keyrings/example.gpg > /dev/null # Tambah repo dengan signed-by admin@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 terinstall admin@web-server:~$ apt-key list # Hapus GPG key admin@web-server:~$ sudo apt-key del KEY_ID

List & Remove Repository

bash
# Lihat semua repository admin@web-server:~$ apt-cache policy # Lihat repository di sources.list admin@web-server:~$ cat /etc/apt/sources.list # Lihat repository di sources.list.d/ admin@web-server:~$ ls /etc/apt/sources.list.d/ # Remove repository admin@web-server:~$ sudo rm /etc/apt/sources.list.d/example.list admin@web-server:~$ sudo apt update # Atau comment out baris di sources.list admin@web-server:~$ sudo nano /etc/apt/sources.list # Tambah # di awal baris untuk disable # deb http://example.com/repo stable main

Best Practice Repository

1
BEST PRACTICE
LAKUKAN
Gunakan mirror lokal, verifikasi GPG key, gunakan repo resmi, backup sources.list
HINDARI
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!
SUB-BAB8 LEVELPackage Management NEXTNetworking & Firewall
ABDURROZAK.MY.ID // TERHUBUNG

JARINGAN SOSIAL

Temukan saya di berbagai platform digital