15%

Hemat 15% di Semua Layanan Hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode:

Skills
Memulai
09.10.2024

apt vs yum: Manajemen Paket Linux Dijelaskan untuk Administrator Sistem

Manajemen paket Linux adalah mekanisme yang digunakan untuk menginstal, memperbarui, mengonfigurasi, dan menghapus perangkat lunak pada sistem Linux. apt (Advanced Package Tool) menangani paket `.deb` pada distribusi berbasis Debian seperti Ubuntu dan Linux Mint, sementara yum (Yellowdog Updater Modified) mengelola paket `.rpm` pada sistem berbasis Red Hat termasuk CentOS dan RHEL. Kedua alat ini mengabstraksikan kompleksitas resolusi dependensi, interaksi repositori, dan verifikasi integritas paket — namun secara arsitektur keduanya berbeda dan tidak dapat dipertukarkan.

Memahami alat mana yang mengatur sistem Anda bukan sekadar pengetahuan opsional. Hal ini secara langsung memengaruhi cara Anda menyediakan server, mengotomatiskan deployment, menulis skrip manajemen konfigurasi (Ansible, Chef, Puppet), dan memelihara siklus patch keamanan di lingkungan produksi.

Apa Itu Package Manager Linux

Sebuah package manager adalah kumpulan alat perangkat lunak yang mengotomatiskan siklus hidup penuh perangkat lunak pada sistem Linux: mengambil paket dari repositori jarak jauh, memverifikasi tanda tangan kriptografis, menyelesaikan dan menginstal rantai dependensi, menjalankan skrip pre/post-install, dan mendaftarkan instalasi dalam database paket lokal.

Database paket sangat penting dan sering diabaikan. Pada sistem berbasis Debian, database ini berada di `/var/lib/dpkg/`. Pada sistem berbasis RPM, database ini berada di `/var/lib/rpm/`. Kedua database mempertahankan catatan resmi tentang apa yang terinstal, pada versi berapa, dan dengan kepemilikan file apa — menjadikannya tulang punggung audit sistem dan operasi rollback.

Package manager berinteraksi dengan repositori — server jarak jauh yang menyimpan koleksi paket yang telah dikompilasi dan ditandatangani. Metadata repositori (daftar paket, checksum, kunci GPG) disinkronkan secara lokal sebelum instalasi apa pun terjadi, itulah mengapa `apt update` atau `yum check-update` harus mendahului perintah instalasi dalam skrip otomatis.

apt: Advanced Package Tool untuk Sistem Berbasis Debian

apt adalah antarmuka baris perintah tingkat tinggi untuk manajemen paket pada Debian, Ubuntu, Linux Mint, Pop!_OS, dan semua turunannya. Alat ini beroperasi di atas alat tingkat rendah `dpkg`, yang menangani instalasi paket `.deb` yang sebenarnya. Anggap `dpkg` sebagai mesin dan `apt` sebagai pengemudi cerdas yang tahu di mana mengambil bahan bakar dan dalam urutan apa membakarnya.

Toolchain apt Secara Mendalam

Ekosistem apt mencakup beberapa biner yang melayani tujuan berbeda:

  • `apt` — CLI interaktif modern yang direkomendasikan (diperkenalkan di Ubuntu 14.04 / Debian 8)
  • `apt-get` — backend lama yang dapat di-skrip; lebih disukai dalam skrip shell karena format outputnya yang stabil
  • `apt-cache` — mengkueri cache paket lokal untuk metadata, deskripsi, dan grafik dependensi
  • `dpkg` — penginstal paket tingkat rendah; digunakan langsung saat menginstal file `.deb` lokal dengan `dpkg -i package.deb`
  • `apt-mark` — menandai paket sebagai ditahan, diinstal secara otomatis, atau diinstal secara manual

Perintah apt Inti dengan Konteks Teknis

Perbarui indeks paket lokal:

“`bash

sudo apt update

“`

Ini mengambil metadata yang diperbarui dari semua repositori yang dikonfigurasi di `/etc/apt/sources.list` dan `/etc/apt/sources.list.d/`. Perintah ini tidak menginstal atau meningkatkan versi apa pun. Menjalankan ini sebelum operasi instalasi apa pun adalah wajib — melewatinya berarti Anda mungkin menyelesaikan ke versi paket yang sudah usang atau melewatkan patch keamanan.

Tingkatkan versi paket yang terinstal:

“`bash

sudo apt upgrade

“`

Meningkatkan versi semua paket yang memiliki versi lebih baru, tetapi tidak akan menghapus paket yang saat ini terinstal atau menginstal paket baru untuk memenuhi dependensi. Untuk peningkatan versi yang lebih agresif yang menangani perubahan dependensi:

“`bash

sudo apt full-upgrade

“`

`full-upgrade` (sebelumnya `dist-upgrade`) akan menginstal dependensi baru dan menghapus paket yang berkonflik sesuai kebutuhan. Gunakan dengan hati-hati pada sistem produksi.

Instal sebuah paket:

“`bash

sudo apt install package_name

“`

Untuk menginstal beberapa paket dalam satu transaksi:

“`bash

sudo apt install nginx curl git

“`

Menggabungkan instalasi dalam satu perintah lebih efisien karena apt menyelesaikan grafik dependensi penuh sekali saja daripada berulang kali.

Hapus sebuah paket (pertahankan file konfigurasi):

“`bash

sudo apt remove package_name

“`

Hapus bersih sebuah paket (hapus biner dan file konfigurasi):

“`bash

sudo apt purge package_name

“`

Selalu lebih pilih `purge` daripada `remove` saat menonaktifkan sebuah layanan. File konfigurasi yang tersisa dari `remove` dapat menyebabkan perilaku tak terduga jika paket diinstal ulang nanti.

Hapus dependensi yang tidak lagi diperlukan:

“`bash

sudo apt autoremove

“`

Ini sering diabaikan dan menyebabkan pembengkakan dependensi dari waktu ke waktu. Masukkan ke dalam alur kerja pemeliharaan rutin Anda.

Cari sebuah paket:

“`bash

apt search package_name

“`

Periksa detail paket sebelum menginstal:

“`bash

apt show package_name

“`

Ini mengungkapkan versi paket, ukuran terinstal, dependensi, dan pemelihara — berguna sebelum mengambil paket yang tidak dikenal.

Tahan sebuah paket pada versi saat ini (penting untuk stabilitas produksi):

“`bash

sudo apt-mark hold package_name

“`

Ini mencegah `apt upgrade` menyentuh paket tersebut. Penting ketika Anda menjalankan versi kernel tertentu atau rilis aplikasi yang dipinned.

Kasus Penggunaan apt di Dunia Nyata: Menyediakan Web Server di Ubuntu

“`bash

sudo apt update

sudo apt install -y nginx certbot python3-certbot-nginx

sudo systemctl enable nginx

sudo systemctl start nginx

“`

Flag `-y` menekan prompt konfirmasi, yang diperlukan untuk skrip penyediaan non-interaktif. Selalu pasangkan ini dengan `apt update` dalam blok skrip yang sama untuk memastikan Anda menginstal dari metadata repositori terkini.

yum: Yellowdog Updater Modified untuk Sistem Berbasis RPM

yum adalah package manager untuk Red Hat Enterprise Linux (RHEL), CentOS 7, dan rilis Fedora yang lebih lama. Alat ini mengelola paket `.rpm` dan berada di atas database RPM. Seperti apt di atas dpkg, yum menyediakan resolusi dependensi dan manajemen repositori di atas perintah `rpm` mentah.

Catatan arsitektur penting: Pada CentOS 8+, RHEL 8+, dan semua rilis Fedora modern, yum telah digantikan oleh dnf (Dandified YUM). Pada sistem ini, perintah `yum` biasanya merupakan tautan simbolis atau alias ke `dnf`. Jika Anda mengelola sistem yang menjalankan RHEL/CentOS 8 atau yang lebih baru, Anda harus menulis perintah `dnf`. Sintaks perintahnya sebagian besar kompatibel, tetapi dnf menawarkan resolusi dependensi yang jauh lebih baik, API yang lebih bersih, dan dukungan repositori modular.

Perintah yum Inti dengan Konteks Teknis

Periksa pembaruan yang tersedia tanpa menerapkannya:

“`bash

sudo yum check-update

“`

Ini sangat berguna dalam skrip pemantauan otomatis untuk mendeteksi apakah sistem tertinggal dalam patch tanpa memicu peningkatan versi.

Terapkan semua pembaruan yang tersedia:

“`bash

sudo yum update

“`

Tidak seperti `apt upgrade`, `yum update` juga akan menginstal paket dependensi baru sesuai kebutuhan. Tidak ada padanan `full-upgrade` yang terpisah — yum menangani ini secara default.

Instal sebuah paket:

“`bash

sudo yum install package_name

“`

Hapus sebuah paket:

“`bash

sudo yum remove package_name

“`

Catatan: operasi remove yum terkadang dapat berjalan secara berantai dan menghapus paket yang bergantung padanya. Selalu tinjau ringkasan transaksi sebelum mengonfirmasi.

Cari sebuah paket:

“`bash

yum search package_name

“`

Periksa informasi paket:

“`bash

yum info package_name

“`

Daftar paket yang terinstal:

“`bash

yum list installed

“`

Bersihkan cache lokal:

“`bash

sudo yum clean all

“`

Menghapus data paket dan metadata yang di-cache. Jalankan ini ketika Anda mencurigai data repositori yang sudah usang menyebabkan kegagalan resolusi.

Tahan sebuah paket pada versi saat ini:

“`bash

sudo yum versionlock add package_name

“`

Memerlukan plugin `yum-plugin-versionlock`. Setara dengan `apt-mark hold`, ini penting untuk mempertahankan lingkungan produksi yang stabil di mana versi paket tertentu tidak boleh disentuh oleh pembaruan otomatis.

Kasus Penggunaan yum di Dunia Nyata: Men-deploy Apache di CentOS 7

“`bash

sudo yum install -y httpd

sudo systemctl enable httpd

sudo systemctl start httpd

sudo firewall-cmd –permanent –add-service=http

sudo firewall-cmd –reload

“`

Kesalahan umum adalah menginstal Apache dan lupa membuka firewall. Pada sistem CentOS/RHEL, `firewalld` aktif secara default dan akan memblokir lalu lintas HTTP secara diam-diam meskipun layanan sedang berjalan.

apt vs yum: Perbandingan Langsung

Fiturapt (Debian/Ubuntu)yum / dnf (RHEL/CentOS/Fedora)
Format paket`.deb``.rpm`
Alat yang mendasari`dpkg``rpm`
Distribusi utamaDebian, Ubuntu, Mint, Pop!_OSRHEL, CentOS, Fedora, AlmaLinux, Rocky Linux
Penerus / CLI modern`apt` (menggantikan `apt-get` untuk penggunaan interaktif)`dnf` (menggantikan `yum` pada RHEL 8+)
Resolusi dependensiOtomatis, menangani konflikOtomatis; dnf lebih andal daripada yum
Konfigurasi repositori`/etc/apt/sources.list`, `/etc/apt/sources.list.d/``/etc/yum.repos.d/*.repo`
Mekanisme penahanan paket`apt-mark hold``yum versionlock` (plugin diperlukan)
Instalasi paket lokal`dpkg -i file.deb``rpm -i file.rpm` atau `yum localinstall`
Manajemen cache`apt clean`, `apt autoclean``yum clean all`
Penghapusan orphan`apt autoremove``yum autoremove` (dnf menangani ini lebih baik)
Riwayat transaksiTerbatasRiwayat transaksi penuh dengan rollback melalui `yum history`
Aliran modulTidak didukung secara nativeDidukung dalam dnf (Application Streams)
Verifikasi tanda tangan GPGYaYa
Flag ramah skrip`-y` (non-interaktif)`-y` (non-interaktif)

dnf: Penerus Modern dari yum

Jika Anda mengelola sistem RHEL 8+, CentOS Stream, AlmaLinux, Rocky Linux, atau Fedora apa pun, dnf adalah package manager Anda. Transisi dari yum ke dnf bukan sekadar kosmetik — dnf menyelesaikan sejumlah masalah arsitektur yang sudah lama ada dalam yum:

  • Resolusi dependensi: dnf menggunakan library `libsolv`, yang secara signifikan lebih cepat dan lebih akurat daripada resolver yum
  • Stabilitas API: dnf mengekspos API Python yang stabil untuk skrip dan otomasi
  • Aliran modul: dnf mendukung Application Streams, memungkinkan beberapa versi perangkat lunak yang sama (misalnya, PHP 7.4 dan PHP 8.1) untuk hidup berdampingan dalam repositori
  • Rollback transaksi: `dnf history undo <id>` memungkinkan Anda untuk melakukan rollback transaksi tertentu — kemampuan yang tidak memiliki padanan langsung dalam apt

Perintah dnf utama yang berbeda dari yum:

“`bash

Install a module stream (e.g., PHP 8.1)

sudo dnf module enable php:8.1

sudo dnf install php

Roll back the last transaction

sudo dnf history undo last

Check which package provides a specific file

sudo dnf provides /usr/bin/python3

“`

Manajemen Repositori: Keterampilan Operasional yang Kritis

Baik apt maupun yum/dnf hanya seberguna repositori yang dikonfigurasi untuk digunakan. Repositori yang salah dikonfigurasi atau tidak tepercaya merupakan risiko keamanan yang signifikan.

Pada Debian/Ubuntu, tambahkan repositori pihak ketiga dengan aman:

“`bash

Import the GPG key

curl -fsSL https://example.com/gpg.key | sudo gpg –dearmor -o /usr/share/keyrings/example-archive-keyring.gpg

Add the repository with key reference

echo "deb [signed-by=/usr/share/keyrings/example-archive-keyring.gpg] https://repo.example.com/apt stable main" | sudo tee /etc/apt/sources.list.d/example.list

sudo apt update

“`

Pada RHEL/CentOS, tambahkan repositori:

“`bash

sudo yum-config-manager –add-repo https://repo.example.com/centos/example.repo

Or manually create /etc/yum.repos.d/example.repo

“`

Prinsip keamanan: Jangan pernah menambahkan repositori tanpa memverifikasi kunci GPG-nya secara independen. Repositori yang dikompromikan dapat mendorong paket berbahaya yang akan diinstal dengan hak akses root.

Memilih Package Manager yang Tepat untuk Lingkungan Server Anda

Package manager yang Anda gunakan ditentukan oleh distribusi Linux Anda — Anda tidak memilih apt atau yum secara independen. Yang Anda pilih adalah distribusi Anda, dan keputusan tersebut memiliki konsekuensi hilir untuk ketersediaan paket, kontrak dukungan enterprise, jadwal patch keamanan, dan kompatibilitas tooling.

  • Ubuntu LTS (apt): Pilihan terbaik untuk beban kerja VPS Hosting serba guna, web server, dan lingkungan pengembang. Rilis dukungan jangka panjang menerima 5 tahun pembaruan keamanan, dapat diperpanjang hingga 10 tahun dengan Ubuntu Pro.
  • RHEL / AlmaLinux / Rocky Linux (dnf): Standar untuk lingkungan produksi enterprise, terutama saat berjalan pada Dedicated Servers yang memerlukan tumpukan perangkat lunak bersertifikat, kerangka kepatuhan (PCI-DSS, HIPAA), atau deployment aplikasi yang didukung ISV.
  • Debian Stable (apt): Versi paket yang sangat konservatif, menjadikannya ideal untuk server di mana stabilitas diprioritaskan daripada perangkat lunak mutakhir. Umumnya digunakan untuk server database dan mail yang berjalan lama.
  • CentOS Stream / Fedora (dnf): Cocok untuk lingkungan pengembangan dan staging di mana Anda ingin melacak perubahan RHEL upstream sebelum mendarat di rilis stabil.

Saat men-deploy panel kontrol seperti cPanel, package manager yang mendasarinya sangat penting. cPanel secara resmi mendukung AlmaLinux, Rocky Linux, dan CloudLinux — semuanya berbasis dnf. Jika Anda menggunakan VPS dengan cPanel, Anda akan bekerja dalam lingkungan dnf pada deployment modern.

Untuk lingkungan di mana Anda memerlukan antarmuka grafis atau berbasis web untuk mengelola paket dan konfigurasi server tanpa harus menggunakan baris perintah, jelajahi VPS Control Panels yang mengabstraksikan manajemen paket ke dalam UI sambil tetap memanfaatkan apt atau dnf di baliknya.

Penguatan Keamanan Melalui Manajemen Paket

Package manager adalah permukaan serangan utama untuk serangan rantai pasokan. Praktik-praktik ini tidak dapat dinegosiasikan pada server mana pun yang menghadap internet:

  • Aktifkan pembaruan keamanan otomatis — Pada Ubuntu: paket `unattended-upgrades`. Pada RHEL/CentOS: `dnf-automatic` dengan `apply_updates = yes` di `/etc/dnf/automatic.conf`.
  • Verifikasi tanda tangan GPG — Jangan pernah menonaktifkan pemeriksaan GPG (`–nogpgcheck` di yum/dnf atau `–allow-unauthenticated` di apt) di luar lingkungan lab yang terisolasi.
  • Audit paket yang terinstal secara rutin — Gunakan `dpkg -l` atau `rpm -qa` untuk menghasilkan manifes paket lengkap. Bandingkan ini dengan baseline yang diketahui baik.
  • Hapus paket yang tidak diperlukan — Setiap paket yang terinstal adalah permukaan serangan. Jalankan `apt autoremove` atau `dnf autoremove` setelah deployment besar.
  • Pin paket kritis — Gunakan `apt-mark hold` atau `dnf versionlock` untuk mencegah peningkatan versi yang tidak disengaja pada paket seperti kernel, OpenSSL, atau mesin database pada sistem produksi.

Jika Anda menjalankan mail server atau menghosting infrastruktur email, menjaga paket seperti Postfix, Dovecot, dan dependensi TLS mereka tetap terkini sangat penting. Padukan manajemen paket yang ketat dengan SSL Certificates yang dikonfigurasi dengan benar untuk mempertahankan keamanan transport terenkripsi. Demikian pula, lingkungan web hosting yang dikelola melalui platform Shared Web Hosting mendapat manfaat dari penyedia hosting yang memelihara keamanan paket yang mendasarinya, tetapi memahami lapisan paket tetap berharga untuk debugging dan konfigurasi kustom.

Matriks Keputusan Praktis dan Poin-Poin Utama

Sebelum menjalankan perintah manajemen paket apa pun pada sistem produksi, kerjakan daftar periksa ini:

Daftar periksa pra-operasi:

  • Konfirmasi distribusi dan versi yang Anda jalankan: `cat /etc/os-release`
  • Konfirmasi package manager yang benar: `which apt` atau `which dnf` atau `which yum`
  • Pada sistem apt: selalu jalankan `sudo apt update` sebelum `apt install` atau `apt upgrade`
  • Pada sistem yum/dnf: `sudo yum check-update` atau `sudo dnf check-update` sebelum peningkatan versi
  • Tinjau ringkasan transaksi sebelum mengonfirmasi operasi instal atau hapus apa pun
  • Untuk server produksi: uji peningkatan versi paket di lingkungan staging terlebih dahulu
  • Setelah peningkatan versi besar: verifikasi status layanan dengan `systemctl status <service>`
  • Setelah menghapus paket: jalankan `apt autoremove` atau `dnf autoremove` untuk membersihkan orphan

Keputusan arsitektur:

  • Gunakan `apt full-upgrade` daripada `apt upgrade` hanya ketika Anda memahami dan menerima bahwa paket mungkin dihapus
  • Gunakan `dnf` daripada `yum` pada sistem mana pun yang menjalankan RHEL 8 / CentOS 8 atau yang lebih baru
  • Gunakan `apt-get` (bukan `apt`) dalam skrip shell dan pipeline CI/CD untuk output yang stabil dan dapat diurai
  • Gunakan `yum versionlock` atau `apt-mark hold` sebelum pipeline pembaruan otomatis apa pun menyentuh server produksi
  • Jangan pernah menambahkan repositori pihak ketiga tanpa mengimpor dan memverifikasi kunci GPG mereka

FAQ

Apa perbedaan antara apt dan apt-get?

`apt` adalah perintah modern yang menghadap pengguna yang diperkenalkan untuk menggabungkan `apt-get` dan `apt-cache` menjadi satu alat dengan output yang lebih bersih dan bilah kemajuan. `apt-get` tetap tersedia dan lebih disukai dalam skrip karena format outputnya dijamin stabil di berbagai versi. Untuk penggunaan terminal interaktif, `apt` adalah standar saat ini.

Bisakah saya menggunakan apt di server CentOS atau RHEL?

Tidak. apt secara eksklusif untuk sistem berbasis Debian dan mengelola paket `.deb`. CentOS dan RHEL menggunakan format paket RPM, yang dikelola oleh yum atau dnf. Format paket dan database secara arsitektur tidak kompatibel — tidak ada lapisan konversi.

Apa padanan yum dari apt autoremove?

`sudo yum autoremove` atau `sudo dnf autoremove` menghapus paket yang diinstal sebagai dependensi tetapi tidak lagi diperlukan oleh paket yang diinstal secara eksplisit. Implementasi dnf lebih andal daripada versi yum lama.

Bagaimana cara mencegah paket tertentu dari peningkatan versi oleh apt atau yum?

Pada sistem berbasis apt: `sudo apt-mark hold package_name`. Pada sistem yum/dnf: instal plugin `yum-plugin-versionlock` dan jalankan `sudo yum versionlock add package_name`, atau pada dnf: `sudo dnf versionlock add package_name`. Kedua mekanisme bertahan dari perintah `upgrade` dan `update` hingga secara eksplisit dilepaskan.

Apakah yum masih relevan di tahun 2024?

Untuk sistem CentOS 7 dan RHEL 7 yang masih dalam produksi, ya — yum tetap menjadi package manager. Namun, CentOS 7 mencapai akhir masa pakainya pada Juni 2024. Sistem mana pun yang masih menjalankan CentOS 7 harus dimigrasikan ke AlmaLinux 8/9 atau Rocky Linux 8/9, yang keduanya menggunakan dnf. Menulis skrip otomasi baru yang menargetkan yum secara eksklusif tidak lagi disarankan.

15%

Hemat 15% di Semua Layanan Hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode:

Skills
Memulai