Seri Manajemen Paket Ubuntu 1: Perkenalan

`

Dapatkan update terbaru Linuxku.com di kanal Telegram https://telegram.me/linuxkudotcom.

Tulisan ini ditujukan sebagai pengantar umum sistem manajemen paket untuk setiap pengguna GNU/Linux terkhusus Ubuntu. Di dalam tulisan ini dijelaskan mengapa ada sistem manajemen paket dan bagaimana secara umum penggunaannya. Di bagian akhir tulisan, terdapat tambahan referensi luar bagi pembaca yang ingin belajar lebih lanjut. Tulisan ini dilengkapi dengan kamus istilah demi memudahkan pembaca. Tulisan ini adalah perwujudan dari pengantar GNU/Linux untuk pemula. Semoga tulisan ini bermanfaat.

Ringkasan

  1. Mengenal Distribusi Software
  2. Mengenal Format Paket Software
  3. Mengenal Dependensi
  4. Mengenal Sistem Manajemen Paket 
  5. Mengenal Tugas-Tugas Manajer Paket
  6. Mengenal Manajer Paket GUI
  7. Mengenal Berkas Konfigurasi
  8. Mengenal Aktivitas yang Sering Dilakukan
  9. Kamus Istilah

Mengenal Distribusi Software

Di dalam komunitas GNU/Linux, ketika disebut kata software, maksudnya adalah free software (sebagian orang menamakannya open source). Sebuah free software itu didistribusikan oleh developernya (upstream) dalam bentuk source code. Upstream biasanya mengemas setiap source code dalam berkas arsip tarball seperti .tar.gz atau .tar.bz2 (mirip dengan .zip). Para developer distribusi GNU/Linux (downstream) mengambil source code-source code itu secara terpisah-pisah dari upstream-upstream di seluruh dunia kemudian memrosesnya menjadi software-software dalam bentuk binary. Setiap software diproses dan dikemas menjadi satu buah package (paket). Proses perubahan dari source code jadi binary ini dilakukan sebagai layanan kepada pengguna suatu distribusi GNU/Linux, terkadang berbayar (seperti Red Hat Enterprise Linux) terkadang gratis (seperti Ubuntu). Paket-paket yang sudah jadi disimpan di dalam server yang disebut dengan nama repositori. Setiap distribusi GNU/Linux adalah downstream, dan setiap downstream memiliki repositorinya masing-masing. Setiap repositori umumnya berisi puluhan ribu paket software. Pengguna akhir memperoleh software bagi distribusi yang dipakainya dari repositori distribusi tersebut. Misalnya, pengguna Ubuntu akan mengambil software dari repositori Ubuntu pula. Yang diambil adalah software dalam bentuk paket. Cara mengambilnya adalah dengan memakai sistem manajemen paket.

Mengenal Format Paket Software

Di dunia GNU/Linux, terdapat dua jenis format paket (package) yang paling populer. Mereka adalah DEB dan RPM (.deb dan .rpm). Format DEB digunakan di sistem operasi keluarga Debian, misalnya Ubuntu dan Linux Mint. Format RPM digunakan di sistem operasi keluarga Red Hat Enterprise Linux, misalnya Fedora dan CentOS. Maka di Ubuntu paket-paket software dikemas dalam format .deb, sedangkan di Fedora berformat .rpm.

Sebagai perbandingan, di Microsoft Windows format paket software resmi adalah MSI (.msi). Sedangkan format dari berkas software dalam bentuk binary adalah EXE (.exe). MSI bisa saling dibandingkan dengan DEB atau RPM. MSI memuat software dan metadata, sebagaimana DEB atau RPM juga memuat hal yang sama.

Mengenal Dependensi

Inggris: dependency, Indonesia: dependensi; berarti ketergantungan. Di dalam komunitas free software, dependensi adalah istilah yang merujuk kepada ketergantuan suatu software kepada software lain. Jika A tergantung pada B, maka B harus diinstal dahulu sebelum A. Karena software memiliki dua bentuk, maka dependensi juga ada dalam dua bentuk. Software dalam bentuk source code bisa memiliki dependensi, software dalam bentuk binary juga bisa memiliki dependensi. Pembaca yang belum mengenal dependensi bisa mengingat kejadian “.Net Framework” yang harus diinstal terlebih dahulu sebelum menginstal software A ketika di Microsoft Windows. Maka dalam hal ini .Net Framework adalah dependensi bagi software A.

Pada praktiknya di lapangan, dependensi itu sangat banyak terjadi antara software-software yang tersedia di komunitas free software. Hal ini karena free software dibangun atas prinsip kooperasi (gotong royong) terutama di GNU/Linux dengan prinsip warisan UNIX do one thing and do it well. Dependensi yang terjadi di suatu sistem GNU/Linux adalah pada paket software (software package). Untuk menginstal suatu paket software, sering kali pengguna harus menginstal dahulu paket software yang lain. Dan paket yang lain itu memiliki dependensi lagi kepada paket lain pula. Dan seterusnya. Dalam banyak kejadian, untuk menginstal satu software (misalnya KDE) dibutuhkan puluhan atau ratusan paket berbeda-beda karena ada dependensi dan bercabang pula. Inilah praktik di lapangan dan ini adalah masalah.

Maka untuk dapat menyelesaikan masalah itu komunitas membuat suatu sistem di dalam sistem manajemen paket yang disebut dependency resolver (pencari dependensi). Suatu dependency resolver adalah program yang memiliki kemampuan mencari seluruh dependensi secara otomatis terhadap suatu paket di sistem GNU/Linux yang digunakan. Dependency resolver sangat mempermudah pengguna akhir dalam menginstal suatu software di GNU/Linux karena pengguna tidak perlu mencarinya secara manual lagi. Contoh dependency resolver di Ubuntu adalah apt, di Arch Linux adalah pacman, di CentOS dan Fedora adalah yum, di openSUSE adalah zypper, dan seterusnya.

Mengenal Sistem Manajemen Paket

Sistem manajemen paket (disingkat smp) adalah mekanisme pengelolaan paket software di suatu sistem operasi. Pengelolaan yang dimaksud adalah menginstal, menghapus, dan memutakhirkan paket. Istilah aslinya adalah package management system.

Yang dimaksud sebuah paket adalah sebuah berkas arsip yang memuat suatu software dan suatu metadata. Paket yang memuat selain software biasanya memuat gambar, atau audio, atau video, atau apa saja, selalu disertai pula dengan metadata. Paket adalah metode setiap developer distribusi GNU/Linux untuk mendistribusikan software melalui repositori mereka masing-masing. Pengguna menginstal suatu software adalah dengan menginstal paket tersebut dari repositori. Paket di Ubuntu berformat DEB (.deb).

Yang dimaksud metadata adalah informasi penting terkait dengan isi paket. Isi metadata di antaranya nama paket, daftar dependensi paket, deskripsi, ukuran, dan sebagainya. Setiap paket selalu berisi metadata.

Komponen suatu sistem manajemen paket setidaknya dua program: package manager (manajer paket) dan update manager (manajer pemutakhiran). Hampir semua distribusi GNU/Linux menyertakan kedua komponen utama ini. Kedua jenis program ini selalu berwujud command line dan dijalankan dari shell (Terminal). Hanya saja, biasanya, distribusi seperti Ubuntu menambahkan versi GUI dari setiap program.

Package manager adalah program inti di dalam smp, tugas pokoknya pasang dan hapus paket di sistem. Tugas untuk pemasangan adalah membuka, mengeluarkan isi, memeriksa metadata, lalu meletakkan setiap berkas di dalam paket ke posisinya masing-masing di dalam sistem. Tugas untuk penghapusan adalah membaca kembali metadata, menemukan skrip untuk penghapusan, melakukan penghapusan satu demi satu secara otomatis sampai paket itu terhapus dari sistem. Update manager adalah program yang bekerja di atas package manager, tugas utamanya adalah dependency resolving (mencari dependensi), mengunduh paket melalui jaringan, dan menemukan pemutakhiran versi paket (sesuai namanya). Update manager biasanya hanya mencari dependensi dan mengunduh, sedangkan pemasangan dan penghapusan paket tetap dilakukan oleh package manager.

Catatan: di Arch Linux, package manager dan update manager menyatu dalam satu program bernama pacman. Di Ubuntu, package manager terpisah dari update manager, masing-masing bernama dpkg dan apt.

Mengenal Tugas-Tugas Manajer Paket Ubuntu

  • Package manager: dpkg
  • Update manager: apt

Ubuntu adalah keturunan Debian, maka manajer paket di Ubuntu sama dengan di Debian. Tugas dpkg sebagaimana dijelaskan di atas, pasang dan hapus paket. Maka jika pengguna Ubuntu melakukan install/uninstall terhadap suatu software aplikasi dari repositori, sesungguhnya pengguna sedang memakai jasa dpkg di situ. Tugas apt sebagaimana disebut, pokoknya adalah untuk dependency resolving. Maka jika pengguna Ubuntu me-reload informasi repositori, mengunduh suatu paket, melakukan upgrade, sebenarnya dia memakai jasa apt di situ. Bisa diasosiasikan bahwa dpkg itu internal, apt itu eksternal. Karena dpkg urusannya dengan paket di sistem, sedangkan apt urusannya dengan repositori.

Mengenal Manajer Paket GUI

  • Package manager: GDebi
  • Update manager: Synaptic, Ubuntu Software Center

Karena dpkg dan apt adalah program konsol, developer membuat software versi GUI yang fungsinya sama atau menggunakan kemampuan mereka. Untuk perkara pasang/hapus paket, pengguna Ubuntu bisa menggunakan GDebi. Praktis pemakaiannya hanya dengan klik kanan secara GUI. Untuk perkara update management, pengguna bisa menggunakan Synaptic atau Ubuntu Software Center. Keduanya menayangkan daftar seluruh paket yang dapat diinstal secara GUI dan menginstal/menghapus/memutakhirkan secara GUI pula. Praktis, semua versi GUI ini sangat memudahkan pengguna akhir yang memilih tidak menggunakan program konsol.

Mengenal Berkas Konfigurasi

Terdapat banyak berkas penting di dalam sistem manajemen paket Ubuntu. Namun yang paling penting yang layak diketahui ada beberapa sebagai berikut.

  • Database dpkg: /var/lib/dpkg/status: berkas teks yang berisi daftar paket yang sudah terinstal di dalam sistem. Berkas ini dibangun dari metadata dari setiap paket terinstal.
  • Database apt: /var/lib/apt/lists/: direktori yang berisi berkas-berkas teks daftar paket yang berada pada repositori. Berkas ini diperoleh dari reloading yaitu perintah apt-get update.
  • Konfigurasi dpkg: /etc/dpkg/dpkg.conf: berkas teks berisi konfigurasi dpkg.
  • Konfigurasi apt: /etc/apt/apt.conf: berkas teks berisi konfigurasi apt.
  • Konfigurasi sumber repositori: /etc/apt/sources.list: berkas teks berisi daftar sumber paket (repositori) yang dituju oleh sistem.
  • Konfigurasi sumber repositori pihak ketiga: /etc/apt/sources.list.d/: direktori yang berisi berkas-berkas teks (.list) yang berisi daftar sumber paket (repositori) pihak ketiga yang dituju oleh sistem.
  • Tembolok paket: /var/cache/apt/archives/: direktori yang berisi seluruh paket DEB yang diunduh oleh apt. Dari sinilah apt menyuruh dpkg untuk menginstal mereka satu per satu di setiap sesi instalasi.
  • Riwayat apt:  /var/log/apt/: direktori yang berisi sejarah pasang/hapus/mutakhir dari aktivitas apt.

Mengenal Aktivitas yang Sering Dilakukan

Di antara sekian banyak komponen program, berkas konfigurasi, direktori konfigurasi, dari sistem manajemen paket di Ubuntu, terdapat sejumlah aktivitas umum yang paling sering dilakukan oleh pengguna sebagai berikut. Aktivitas ini tergolong favorit dan biasanya kebutuhan pengguna akhir hanya berkisar padanya.

  • Menginstal paket dari repositori dengan apt-get.
  • Menghapus paket terinstal dengan apt-get.
  • Memutakhirkan paket terinstal dengan apt-get. 
  • Menginstal paket satu per satu dengan dpkg.
  • Menyunting sources.list secara manual.
  • Mencari nama paket di dalam database apt melalui GUI atau CLI. 

Kamus Istilah

Upstream: di dalam komunitas free software, artinya adalah developer asli dari suatu software. Upstream juga berarti setiap software-nya. Contoh upstream adalah Proyek GNU, Proyek KDE, Proyek X11, Proyek LibreOffice, Proyek Apache Web Server, dan seterusnya.

Downstream: di dalam komunitas free software, artinya adalah developer di luar upstream. Downstream adalah developer yang mendistribusikan ulang upstream-upstream dalam bentuk baru. Downstream inilah yang membuat distribusi GNU/Linux seperti Ubuntu. Distribusi = bentuk baru dan komposisi dari upstream-upstream = sistem operasi.

Command line: lawan dari graphical, metode komunikasi manusia-komputer dengan menggunakan perintah-perintah teks. Command line bersinonim dengan console atau konsol. Contoh command line adalah antarmuka MS-DOS.

GUI: graphical user interface (antarmuka pengguna grafikal), lawan dari command line; metode komunikasi manusia-komputer dengan menggunakan gambar. Contoh GUI adalah antarmuka Kubuntu.

Source code: bentuk primer dari software; berkas teks yang berisi kode-kode yang membangun suatu software; setiap software pasti dibangun dari source code, source code bagi software seperti resep bagi masakan.

Binary: bentuk sekunder dari software; berkas yang berisi angka-angka nol dan satu yang hanya dimengerti oleh komputer. Contoh binary misalnya .exe di Windows.

Pranala Penting

Bagi pemula yang hendak belajar lebih lanjut, berikut ini pranala (link) yang sangat bagus dijadikan referensi.

Review Artikel Ini

Kualitas isi & gaya bahasa artikel :

Isi Form Feedback

Berikan alasan Anda memberikan review rendah

RajaBackLink.com

Ini Komentar Mereka . . .

Yakin Ngga Mau Komen ?

Yuk diskusi cerdas. Gunakan nama asli agar komentar Anda disetujui.