+ Sistem Manajemen Paket

- Tujuan Pembelajaran
Pada akhir bab ini, kamu diharapkan dapat:-
Menjelaskan mengapa sistem manajemen paket perangkat lunak itu diperlukan.
-
Memahami fungsi dari paket biner maupun paket sumber (source).
-
Menyebutkan sistem manajemen paket utama yang tersedia.
-
Memahami mengapa diperlukan dua level utilitas:
-
Satu yang hanya menangani paket secara langsung,
-
Dan satu lagi yang menangani ketergantungan (dependencies) antar paket.
-
-
Menjelaskan bagaimana membuat paket sendiri dapat meningkatkan kontrol terhadap isi perangkat lunak dan cara penginstalannya.
-
Memahami peran sistem kontrol versi sumber, khususnya git.
> Mengapa Menggunakan Paket?
Sistem manajemen paket perangkat lunak secara luas dianggap sebagai salah satu terobosan terbesar yang dibawa Linux ke lingkungan TI perusahaan. Dengan melacak berkas dan metadata secara otomatis, dapat diprediksi, dan andal, administrator sistem dapat menggunakan sistem manajemen paket untuk membuat proses instalasi mereka dapat dijalankan dalam skala besar—bahkan hingga ribuan sistem—tanpa perlu melakukan pekerjaan manual pada setiap sistem secara individu.
Beberapa fitur unggulannya antara lain:
-
Otomatisasi: Tidak perlu instalasi dan pembaruan secara manual.
-
Skalabilitas: Instal paket di satu sistem, atau sekaligus di 10.000 sistem.
-
Pengulangan dan prediktabilitas.
-
Keamanan dan audit.
> Jenis-Jenis Paket
Paket perangkat lunak hadir dalam beberapa jenis yang berbeda, ialah terdiri dari:- Paket Biner (Binary Packages)
Paket biner berisi file yang siap digunakan, termasuk file executable dan library. Jenis paket ini bergantung pada arsitektur sistem.
- Paket Sumber (Source Packages)
Paket sumber digunakan untuk menghasilkan paket biner; Anda selalu harus dapat membangun kembali paket biner dari paket sumber. Satu paket sumber bisa digunakan untuk berbagai arsitektur.
- Arsitektur-Independen (Architecture-independent)
Paket arsitektur-independen berisi file dan skrip yang dijalankan melalui interpreter skrip, serta dokumentasi dan file konfigurasi. Paket ini tidak bergantung pada arsitektur sistem.
- Meta-paket (Meta-packages)
Meta-paket adalah kumpulan paket terkait yang mencakup semua kebutuhan untuk menginstal subsistem besar, seperti lingkungan desktop, suite perkantoran, dan sebagainya.
> Manajer Paket Sistem yang Tersedia
- RPM (Red Hat Package Manager)
Sistem ini digunakan oleh semua distribusi yang diturunkan dari Red Hat, seperti Red Hat Enterprise Linux, Fedora, CentOS, serta oleh SUSE dan distribusi komunitas terkait openSUSE.
- Keuntungan Menggunakan RPM
RPM adalah utilitas manajemen paket yang dikembangkan oleh Red Hat. Nama ini awalnya berarti Redhat Package Manager. Semua file yang terkait dengan tugas tertentu atau subsistem dikemas dalam satu file, yang juga berisi informasi tentang bagaimana dan di mana menginstal dan menghapus file-file tersebut. Ketika pengembang membuat versi baru dari sebuah program, mereka biasanya merilis paket RPM baru. Harap diperhatikan bahwa file-file ini mungkin tidak dapat digunakan untuk distribusi Linux lainnya.
Bagi administrator sistem, RPM membuat manajemen paket perangkat lunak menjadi lebih mudah. Mudah untuk menentukan paket mana yang berasal dari file tertentu, versi paket yang terpasang, dan apakah paket tersebut terpasang dengan benar. Juga mudah untuk menghapus paket secara keseluruhan untuk membebaskan ruang disk. RPM juga membedakan file dokumentasi dari bagian lain dari paket, memungkinkan Anda untuk memilih apakah akan menginstal dokumentasi pada sistem.
RPM memudahkan pekerjaan pengembang perangkat lunak. Seringkali, pengembang harus mengubah kode agar dapat dikompilasi dan dijalankan dengan benar di sistem operasi lain. RPM memungkinkan pembangun untuk menjaga perubahan yang diperlukan untuk membangun di Linux terpisah dari sumber asli. Kemampuan ini memfasilitasi memasukkan versi baru dari kode, karena perubahan terkait pembangunan ada di satu tempat. Ini juga memudahkan pembuatan versi Linux untuk berbagai arsitektur.
- Nama File Paket
Nama file paket RPM didasarkan pada bidang-bidang yang mewakili informasi tertentu, seperti yang tercatat dalam standar RPM.
Format penamaan standar untuk paket RPM biner adalah:
--...rpm
Contoh: sed-4.5-2.e18.x86_64.rpm
Format penamaan standar untuk paket RPM sumber adalah:
--..src.rpm
Contoh: sed-4.5-2.e18.src.rpm
Perhatikan bahwa bidang distro sering kali sebenarnya menentukan repositori tempat paket berasal, karena sebuah instalasi mungkin menggunakan beberapa repositori paket yang berbeda, seperti yang akan kita bahas saat membahas dnf, yum, dan zypper yang bekerja di level di atas RPM.
- Database RPM dan Program Pembantu
"/var/lib/rpm" adalah direktori sistem default yang menyimpan file database RPM dalam bentuk file hash Berkeley DB. File database ini tidak boleh dimodifikasi secara manual; pembaruan harus dilakukan hanya melalui penggunaan program rpm.
Direktori database alternatif dapat ditentukan dengan opsi "--dbpath" pada program rpm. Anda dapat melakukan ini, misalnya, untuk memeriksa database RPM yang disalin dari sistem lain.
Anda dapat menggunakan opsi --rebuilddb untuk membangun kembali indeks database dari header paket yang terpasang; ini lebih merupakan perbaikan, dan bukan pembaruan dari awal.
Program dan skrip pembantu yang digunakan oleh RPM terletak di "/usr/lib/rpm". Ada cukup banyak program; misalnya, pada sistem RHEL 8:
$ ls /usr/lib/rpm | wc -l
74
Anda dapat membuat file rpmrc untuk menentukan pengaturan default untuk rpm. Secara default, rpm mencari di lokasi berikut:
/usr/lib/rpm/rpmrc
/etc/rpmrc
~/.rpmrc
Secara berurutan. Semua file ini dibaca; rpm tidak berhenti begitu menemukan satu file yang ada. File rpmrc alternatif dapat ditentukan menggunakan opsi "--rcfile".
- Kueri ( Query )
Semua kueri rpm mencakup opsi -q, yang dapat digabungkan dengan berbagai opsi kueri lainnya:
-
-f: memungkinkan Anda untuk mengetahui paket mana yang berasal dari sebuah file -
-l: daftar isi paket tertentu -
-a: semua paket yang terpasang di sistem -
-i: informasi tentang paket -
-p: jalankan kueri terhadap file paket alih-alih database paket
Contoh Perintah Kueri rpm
Beberapa opsi lain yang berguna adalah "--requires" dan "--whatprovides". Opsi "--requires" akan mengembalikan daftar prasyarat untuk sebuah paket, sementara opsi "--whatprovides" akan menunjukkan paket terpasang yang menyediakan paket yang dibutuhkan tersebut.
$ rpm -q --requires bash
$ rpm -qp --requires foo-1.0.0-1.noarch.rpm
$ rpm -q --whatprovides libc.so.6
- Memverifikasi Paket
Opsi "-V" pada rpm memungkinkan Anda untuk memverifikasi apakah file dari paket tertentu konsisten dengan database RPM sistem. Gunakan perintah "rpm -Va" untuk memverifikasi semua paket di sistem.
Kode status verifikasi:
-
S: ukuran file berbeda -
M: mode berbeda (izin dan jenis file) -
5: checksum MD5 berbeda -
D: perbedaan nomor perangkat mayor/minor -
L: jalur readLink tidak cocok -
U: kepemilikan pengguna berbeda -
G: kepemilikan grup berbeda -
T: waktu modifikasi berbeda
Jika semuanya OK, tidak ada output yang ditampilkan. Jika ada masalah, karakter tertentu akan menunjukkan hasil perbandingan atribut file dengan nilai yang tercatat dalam database.
Contoh output:
$ rpm -V bash
Output menunjukkan bahwa ukuran file, checksum, dan waktu modifikasi file telah berubah.
Contoh jika file hilang:
$ sudo mv /sbin/logrotate /sbin/logrotate_KEEP
$ rpm -V logrotate
S.5....T. c /etc/logrotate.conf
missing /usr/sbin/logrotate
- Menginstal Paket
Menginstal sebuah paket semudah ini:
$ sudo rpm -ivh bash-4.4.19-12.el8_0.x86_64
Di mana -i untuk instalasi, -v untuk mode verbose, dan -h berarti mencetak tanda hash selama proses untuk menunjukkan kemajuan.
- Tugas yang Dilakukan RPM Saat Menginstal Paket
RPM melakukan beberapa tugas penting saat menginstal paket, antara lain:
-
Memeriksa Ketergantungan
RPM melakukan pemeriksaan ketergantungan. Ini diperlukan karena beberapa paket tidak akan berfungsi dengan benar kecuali paket lain juga diinstal terlebih dahulu. -
Memeriksa Konflik
RPM memeriksa konflik, termasuk upaya untuk menginstal paket yang sudah terpasang atau menginstal versi yang lebih lama di atas versi yang lebih baru. -
Menjalankan Perintah yang Diperlukan Sebelum Instalasi
Pengembang yang membuat paket dapat menentukan bahwa tugas tertentu harus dilakukan sebelum atau setelah instalasi. -
Menangani File Konfigurasi dengan Cerdas
Saat menginstal file konfigurasi, jika file tersebut sudah ada dan telah diubah sejak versi sebelumnya dari paket diinstal, RPM akan menyimpan versi lama dengan akhiran.rpmsave. Ini memungkinkan Anda untuk mengintegrasikan perubahan yang telah Anda buat pada file konfigurasi lama ke versi baru dari file tersebut. -
Mengekstrak File dari Paket dan Menginstalnya dengan Atribut yang Benar
Selain menginstal file di tempat yang benar, RPM juga menetapkan atribut seperti izin, kepemilikan, dan waktu modifikasi (waktu pembuatan). -
Menjalankan Perintah yang Diperlukan Setelah Instalasi
RPM melakukan tugas post-installasi yang diperlukan untuk pengaturan atau inisialisasi. -
Memperbarui Database RPM Sistem
Setiap kali RPM menginstal paket, informasi dalam database sistem diperbarui. Ini digunakan saat memeriksa konflik.
- Mencopot Instalasi Paket
Opsi "-e "menyebabkan rpm untuk mencopot (menghapus) paket. Secara normal, perintah "rpm -e" akan gagal dengan pesan kesalahan jika paket yang ingin Anda copot diperlukan oleh paket lain di sistem. Penghapusan yang berhasil tidak menghasilkan output apapun.
$ sudo rpm -e system-config-lvm
package system-config-lvm is not installed
Contoh kesalahan karena ketergantungan bisa dilihat di bawah ini:
$ sudo rpm --test -e xz
error: Failed dependencies:
xz is needed by (installed) pcp-5.1.1-4.el8_3.x86_64
xz is needed by (installed) sos-3.9.1-6.el8.noarch
xz is needed by (installed) gettext-devel-0.19.8.1-17.el8.x86_64
xz is needed by (installed) libreport-2.9.5-15.el8.x86_64
xz is needed by (installed) dracut-049-95.git20200804.el8_3.4.x86_64
xz is needed by (installed) libvirt-daemon-driver-qemu-6.0.0-28.module+el8.3.0+7827+5e65edd7.x86_64
xz is needed by (installed) rpm-build-4.14.3-4.el8.x86_64
xz is needed by (installed) libguestfs-1:1.40.2-25.module+el8.3.0+7421+642fe24f.x86_64
xz is needed by (installed) sysstat-11.7.3-5.el8.x86_64
/usr/bin/xz is needed by (installed) file-roller-3.28.1-3.el8.x86_64Anda dapat menggunakan opsi --test bersama dengan -e untuk mengetahui apakah penghapusan akan berhasil atau gagal, tanpa benar-benar melakukan penghapusan. Jika operasi berhasil, rpm tidak akan mencetak output apapun. Tambahkan opsi -vv untuk mendapatkan lebih banyak informasi.
Peringatan:
Jangan pernah menghapus (copot pemasangan) paket rpm itu sendiri. Satu-satunya cara untuk memperbaiki masalah ini adalah dengan menginstal ulang sistem operasi atau dengan mem-boot ke lingkungan penyelamatan.
- Memperbarui Paket
Untuk memperbarui, Anda menggantikan paket asli (jika terpasang) seperti berikut:
$ rpm -Uvh bash-4.4.19-12.el8.x86_64.rpm
Anda dapat memberikan daftar nama paket, bukan hanya satu.
Saat memperbarui, paket yang sudah terpasang akan dihapus setelah versi yang lebih baru diinstal. Satu-satunya pengecualian adalah file konfigurasi dari instalasi asli, yang disimpan dengan ekstensi ".rpmsave".
Jika Anda menggunakan opsi -U dan paket tersebut belum terinstal, paket tersebut akan diinstal tanpa menghasilkan kesalahan.
Opsi "-i" tidak dirancang untuk pembaruan; mencoba menginstal paket RPM baru di atas yang lebih lama akan gagal dengan pesan kesalahan, karena mencoba menimpa file sistem yang sudah ada.
Namun, versi yang berbeda dari paket yang sama dapat diinstal jika masing-masing versi paket tidak mengandung file yang sama: paket kernel dan paket pustaka dari arsitektur alternatif biasanya merupakan satu-satunya paket yang umumnya diinstal beberapa kali.
Jika Anda ingin menurunkan versi dengan rpm "-U" (yaitu, menggantikan versi saat ini dengan versi yang lebih lama), Anda harus menambahkan opsi "--oldpackage" ke baris perintah.
- Menyegarkan Paket
Perintah berikut:
$ sudo rpm -Fvh *.rpm
Akan mencoba menyegarkan semua paket di direktori saat ini. Cara kerjanya adalah:
-
Jika versi lama dari sebuah paket terpasang, itu akan diperbarui ke versi yang lebih baru di direktori.
-
Jika versi di sistem sama dengan yang ada di direktori, tidak ada yang terjadi.
-
Jika tidak ada versi paket yang terpasang, paket di direktori akan diabaikan.
Opsi "-F" berguna ketika Anda telah mengunduh beberapa patch baru dan ingin memperbarui paket yang sudah terpasang, tetapi tidak menginstal yang baru.
Menyegarkan bisa sangat berguna untuk menerapkan banyak patch (yaitu, paket yang diperbarui) sekaligus.
- Meningkatkan Kernel Linux
Ketika Anda menginstal kernel baru pada sistem Anda, sistem memerlukan reboot (salah satu pembaruan yang memerlukannya) agar pembaruan ini berlaku. Anda sebaiknya tidak melakukan upgrade (-U) pada kernel: upgrade akan menghapus kernel lama yang saat ini sedang berjalan.
Ini sendiri tidak akan menghentikan sistem, namun setelah reboot, jika Anda mengalami masalah, Anda tidak akan bisa kembali ke kernel lama, karena telah dihapus dari sistem. Sebaliknya, jika Anda menginstal (-i), kedua kernel akan coexist dan Anda bisa memilih untuk boot ke salah satunya, yaitu Anda bisa kembali ke yang lama jika perlu.
Untuk menginstal kernel baru pada sistem berbasis Red Hat, lakukan:
$ sudo rpm -ivh kernel-{version}.{arch}.rpm
Gantilah {version} dan {arch} dengan nama versi dan arsitektur yang sesuai.
Setelah melakukan ini, file konfigurasi GRUB akan otomatis diperbarui untuk mencantumkan versi baru; itu akan menjadi pilihan default saat boot, kecuali jika Anda mengonfigurasi sistem untuk melakukan hal lain.
Setelah versi kernel baru diuji, Anda dapat menghapus kernel lama jika diinginkan, meskipun ini tidak diperlukan. Kecuali jika Anda kekurangan ruang, disarankan untuk menyimpan satu atau lebih kernel lama yang tersedia.
- Menggunakan rpm2archive dan rpm2cpio
rpm2archive digunakan untuk mengonversi file paket RPM ke arsip tar. Jika - diberikan sebagai argumen, input dan output akan melalui stdin dan stdout.
Mengonversi File Paket RPM ke Arsip:
$ rpm2archive bash-XXXX.rpm
Ini akan menghasilkan file "bash-XXXX.rpm.tgz".
Ekstrak Dalam Satu Langkah:
cat bash-XXXX.rpm | rpm2archive - | tar -xvz
Ini lebih langsung dan efisien dibandingkan dengan utilitas "rpm2cpio" yang lebih lama, yang digunakan untuk mengonversi file paket ke arsip cpio, atau untuk mengekstrak file dari file paket.
Mengonversi File Paket RPM ke Arsip CPIO:
$ rpm2cpio bash-XXXX.rpm > bash.cpio
Ekstrak Satu atau Beberapa File:
$ rpm2cpio bash-XXXX.rpm | cpio -ivd bin/bash
$ rpm2cpio logrotate-XXXX.rpm | cpio --extract --make-directories
Daftar File dalam Paket:
$ rpm -qilp bash-XXXX.rpm
Saat melakukan ini, semua file akan diekstrak relatif terhadap direktori saat ini. Jadi jika pengguna berada di direktori "/home/student" dan mengekstrak file "bin/bash" seperti dalam contoh di atas, itu akan disimpan di "/home/student/bin/bash".
Jika yang Anda inginkan hanya untuk daftar file dalam paket, cara yang paling mudah adalah dengan menggunakan perintah rpm itu sendiri:
$ rpm -qilp package.rpm
- DPKG (Debian Package)
DPKG adalah sistem pengemasan yang digunakan untuk menginstal, menghapus, dan mengelola paket perangkat lunak di bawah Debian Linux dan distribusi lain yang diturunkan darinya. Seperti RPM, DPKG tidak dirancang untuk mengambil paket secara langsung dalam penggunaan sehari-hari, tetapi untuk menginstal dan menghapusnya secara lokal.
File paket memiliki akhiran .deb dan database DPKG berada di direktori "/var/lib/dpkg".
Seperti RPM, program dpkg hanya memiliki pandangan parsial terhadap alam semesta: itu hanya tahu apa yang terinstal di sistem, dan apa pun yang diberikannya di baris perintah, tetapi tidak mengetahui paket lainnya yang tersedia, baik itu ada di direktori lain di sistem, atau di Internet. Oleh karena itu, perintah ini juga akan gagal jika ketergantungan tidak terpenuhi, atau jika seseorang mencoba menghapus paket yang diperlukan oleh paket lain yang terinstal.
- Nama File Paket dan Sumber
Nama file paket Debian didasarkan pada kolom yang mewakili informasi spesifik. Format penamaan standar untuk paket biner adalah:
(nama)(versi)-(nomor_revisi)(arsitektur).deb
Sebagai contoh:
-
logrotate_3.14.0-4_amd64.deb -
logrotate_3.14.0-4ubuntu3_amd64.deb
Untuk alasan historis, platform x86 64-bit disebut amd64 daripada x86_64, dan distributor seperti Ubuntu mengelola penyisipan nama mereka dalam nama paket.
Dalam sistem pengemasan Debian, sebuah paket sumber terdiri dari setidaknya tiga file:
-
Tarball upstream, yang berakhiran
.tar.gz. Ini adalah sumber yang tidak dimodifikasi seperti yang diterima dari pemelihara paket. -
File deskripsi, yang berakhiran
.dsc, berisi nama paket dan metadata lainnya, seperti arsitektur dan ketergantungan. -
Tarball kedua yang berisi patch untuk sumber upstream, serta file tambahan yang dibuat untuk paket tersebut, yang berakhiran nama
.debian.tar.gzatau.diff.gz, tergantung pada distribusi.
Sebagai contoh, di sistem Ubuntu, Anda bisa mengunduh paket sumber, dan kemudian melihat file-file yang diunduh atau dibuat seperti yang terlihat di bawah ini.
- Mendapatkan Paket Sumber di Ubuntu
Kuery DPKG
Mari kita lihat beberapa contoh kueri yang dapat Anda lakukan.
-
Daftar semua paket yang terinstal:
$ dpkg -l -
Daftar file yang terinstal dalam paket wget:
$ dpkg -L wget -
Tampilkan informasi tentang paket yang terinstal:
$ dpkg -s wget -
Tampilkan informasi tentang file paket:
$ dpkg -I webfs_1.21+ds1-8_amd64.deb -
Daftar file dalam file paket:
$ dpkg -c webfs_1.21+ds1-8_amd64.deb -
Tunjukkan paket yang memiliki file
/etc/init/networking.conf:$ dpkg -S /etc/init/networking.conf -
Verifikasi integritas paket yang terinstal:
$ dpkg -V packageCatatan: Hanya versi dpkg yang lebih besar dari 1.17 yang mendukung opsi
-V. Tanpa argumen, ini akan memverifikasi semua paket di sistem. Lihat halaman manual untuk menginterpretasikan outputnya.
- Menginstal/Meningkatkan/Menghapus Paket dengan dpkg
-
Untuk menginstal atau meningkatkan paket foobar:
$ sudo dpkg -i foobar.debJika paket belum terinstal, maka paket akan diinstal. Jika paket lebih baru dari yang sudah terinstal, maka paket akan diperbarui.
-
Untuk menghapus paket yang terinstal (kecuali file konfigurasi):
$ sudo dpkg -r package -
Untuk menghapus paket yang terinstal (termasuk file konfigurasi):
$ sudo dpkg -P packageCatatan:
-Pberarti purge (menghapus semua file, termasuk file konfigurasi).
- DNF dan YUM
Instalator Paket
Alat pengelola paket tingkat rendah seperti rpm dan dpkg menangani detail penginstalan file paket perangkat lunak tertentu dan pengelolaan perangkat lunak yang sudah terinstal. Sistem manajemen paket tingkat lebih tinggi (seperti dnf, yum, apt, dan zypper) bekerja dengan basis data perangkat lunak yang tersedia dan menggabungkan alat yang dibutuhkan untuk menemukan, menginstal, memperbarui, dan menghapus perangkat lunak dengan cara yang sangat cerdas. Mereka:
-
Dapat menggunakan repositori lokal dan jarak jauh sebagai sumber untuk menginstal dan memperbarui paket perangkat lunak biner serta paket perangkat lunak sumber.
-
Digunakan untuk mengotomatiskan instalasi, pembaruan, dan penghapusan paket perangkat lunak.
-
Mengatasi ketergantungan secara otomatis.
-
Menghemat waktu karena tidak perlu mengunduh paket secara manual atau mencari informasi ketergantungan secara terpisah.
Repositori perangkat lunak disediakan oleh distribusi dan penyedia perangkat lunak independen. Instalator paket ini memelihara basis data perangkat lunak yang tersedia yang berasal dari katalog yang disimpan oleh repositori.
- Apa itu dnf?
dnf memiliki sejumlah fitur yang membuatnya berguna untuk manajemen paket. Ini adalah antarmuka depan untuk RPM, tetapi juga memiliki kemampuan untuk mengambil paket dari satu atau lebih repositori jarak jauh. Salah satu fitur terbaiknya adalah kemampuan untuk mengatasi ketergantungan.
File konfigurasi untuk repositori terletak di direktori /etc/yum.repos.d dan memiliki ekstensi .repo.
Berikut adalah contoh file repositori yang sangat sederhana:
[repo-name]
name=Deskripsi repositori
baseurl=http://somesystem.com/path/to/repo
enabled=1
gpgcheck=1
dnf menyimpan informasi dan basis data untuk meningkatkan kinerja. Untuk menghapus sebagian atau seluruh informasi yang disimpan, Anda dapat menjalankan perintah berikut:
$ dnf clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
Anda juga dapat mengalihkan penggunaan repositori tertentu dengan mengubah nilai enabled, atau menggunakan opsi --disablerepo dan --enablerepo.
- Apa itu yum?
dnf menggantikan yum saat transisi dari RHEL/CentOS 7 ke 8, dan Fedora sudah lama menggunakan yum. Jika Anda mencoba menjalankan perintah yum, beberapa versi dnf akan memberi tahu Anda bahwa perintah tersebut sudah tidak digunakan dan mengarahkan Anda ke perintah yang benar.
dnf kompatibel dengan versi lama – hampir semua perintah yum yang umum masih bekerja. Jika Anda pengguna yum berpengalaman, Anda dapat secara bertahap belajar menggunakan dnf karena ia menerima sebagian besar perintah yum yang menangani tugas sehari-hari.
Untuk informasi lebih lanjut, lihat "Menggunakan manajer paket DNF".
- Kueri DNF
-
Mencari paket dengan kata kunci:
$ dnf search keyword -
Tampilkan informasi tentang sebuah paket:
$ dnf info package-name -
Daftar paket yang terinstal, tersedia, atau yang membutuhkan pembaruan:
$ dnf list [installed | updates | available] -
Tampilkan informasi tentang grup paket yang terinstal, tersedia, atau yang membutuhkan pembaruan:
$ dnf grouplist -
Tampilkan informasi tentang grup paket tertentu:
$ dnf groupinfo packagegroup -
Tunjukkan pemilik paket untuk file:
$ dnf provides /path/to/filePerhatikan bahwa Anda harus menggunakan setidaknya satu
/dalam nama file, yang bisa membingungkan.
- Menginstal/Menghapus/Meningkatkan Paket dengan dnf
-
Menginstal paket dari repositori (juga mengatasi ketergantungan):
$ sudo dnf install package -
Menginstal paket dari file rpm lokal:
$ sudo dnf localinstall package-file -
Menginstal grup perangkat lunak tertentu dari repositori (juga mengatasi ketergantungan untuk setiap paket dalam grup):
$ sudo dnf groupinstall 'group-name' -
Menghapus paket dari sistem:
$ sudo dnf remove package -
Memperbarui paket dari repositori (jika tidak ada paket yang disebutkan, perbarui semua paket):
$ sudo dnf update [package]
Selama instalasi (atau pembaruan), jika paket memiliki file konfigurasi yang diperbarui, file konfigurasi lama akan dinamai dengan ekstensi .rpmsave. Jika file konfigurasi lama masih dapat digunakan dengan perangkat lunak baru, file konfigurasi baru akan dinamai dengan ekstensi .rpmnew. Anda dapat mencari ekstensi nama file ini untuk melihat apakah Anda perlu melakukan rekonsiliasi file-file tersebut.
Perintah DNF Tambahan
-
Daftar plugin DNF tambahan:
$ sudo dnf list "dnf-plugin*" -
Tampilkan daftar repositori yang diaktifkan:
$ sudo dnf repolist -
Memberikan shell interaktif untuk menjalankan beberapa perintah dnf (form kedua menjalankan perintah dalam file.txt):
$ sudo dnf shell $ sudo dnf shell file.txt -
Mengunduh paket-paket tanpa menginstalnya (menyimpannya di direktori
/var/cache/dnf):$ sudo dnf install --downloadonly package -
Melihat riwayat perintah dnf di sistem, dengan opsi koreksi untuk membatalkan atau mengulang perintah sebelumnya:
$ sudo dnf history -
Membersihkan file dan metadata yang disimpan secara lokal di bawah
/var/cache/dnf, menghemat ruang dan membersihkan data yang sudah kadaluarsa:$ sudo dnf clean [packages|metadata|expire-cache|rpmdb|plugins|all]
ZYPPER
Untuk digunakan pada sistem berbasis SUSE, zypper menyediakan layanan tingkat lebih tinggi untuk menggunakan program rpm yang mendasarinya, dan berperan sama seperti dnf pada sistem berbasis Red Hat. Ini dapat mengatasi ketergantungan secara otomatis saat menginstal, memperbarui, dan menghapus paket. Ia mengakses repositori perangkat lunak eksternal, menyinkronkannya dengan mereka, dan mengunduh serta menginstal perangkat lunak sesuai kebutuhan.
- Apa itu zypper?
zypper adalah alat baris perintah untuk menginstal dan mengelola paket di SUSE Linux dan openSUSE. Ini sangat mirip dengan dnf dalam fungsionalitas dan sintaks perintah dasarnya, dan juga bekerja dengan paket rpm. Program zypper menyediakan layanan tingkat lebih tinggi untuk menggunakan program rpm yang mendasarinya dan memainkan peran yang sama seperti dnf/yum pada sistem berbasis Red Hat. Ini dapat mengatasi ketergantungan saat menginstal, memperbarui, dan menghapus paket serta mengakses repositori perangkat lunak eksternal.
Kueri Zypper
-
Menampilkan daftar pembaruan yang tersedia:
$ zypper list-updates -
Menampilkan repositori yang tersedia:
$ zypper repos -
Mencari repositori dengan string:
$ zypper search <string> -
Menampilkan informasi tentang paket:
$ zypper info firefox -
Mencari repositori untuk menunjukkan paket yang menyediakan file:
$ zypper search --provides /usr/bin/firefox
- Menginstal/Menghapus/Meningkatkan Paket dengan zypper
-
Menginstal atau memperbarui paket:
$ sudo zypper install firefox -
Tidak meminta konfirmasi saat menginstal atau memperbarui (berguna untuk skrip):
$ sudo zypper --non-interactive install firefox -
Memperbarui semua paket di sistem dari repositori:
$ sudo zypper update -
Memperbarui semua paket di sistem dari repositori tanpa meminta konfirmasi (berguna untuk skrip):
$ sudo zypper --non-interactive update -
Menghapus paket dari sistem:
$ sudo zypper remove firefox
- Perintah Zypper Tambahan
-
Menjalankan perintah zypper dalam mode shell untuk menghindari membaca ulang semua basis data untuk setiap perintah:
$ sudo zypper shell > install bash ... > exit -
Menambahkan repositori baru:
$ sudo zypper addrepo URI alias -
Menghapus repositori dari daftar:
$ sudo zypper removerepo alias -
Membersihkan dan menghemat ruang di
/var/cache/zypp:$ sudo zypper clean [--all]
- APT
Apa itu APT?
Untuk digunakan pada sistem berbasis Debian, APT (Advanced Packaging Tool) menyediakan layanan tingkat lebih tinggi untuk menggunakan program dpkg yang mendasarinya, dan memainkan peran yang sama seperti dnf pada sistem berbasis Red Hat. Utilitas utamanya adalah apt-get dan apt-cache. APT dapat mengatasi ketergantungan secara otomatis saat menginstal, memperbarui, dan menghapus paket. Ini mengakses repositori perangkat lunak eksternal, menyinkronkannya, dan mengunduh serta menginstal perangkat lunak sesuai kebutuhan.
Sistem APT bekerja dengan paket Debian yang memiliki ekstensi .deb. Ada banyak distribusi yang diturunkan dari Debian (termasuk Ubuntu dan Linux Mint) yang telah mengadopsi sistem pengemasan Debian tanpa perubahan penting.
- Kueri APT
-
Mencari paket di repositori (misalnya apache2):
$ apt-cache search apache2 -
Menampilkan informasi dasar tentang paket apache2:
$ apt-cache show apache2 -
Menampilkan informasi rinci tentang paket apache2:
$ apt-cache showpkg apache2 -
Menampilkan semua paket yang bergantung pada apache2:
$ apt-cache depends apache2 -
Mencari repositori untuk file apache2.conf:
$ apt-file search apache2.conf -
Menampilkan semua file dalam paket apache2:
$ apt-file list apache2
- Menginstal/Menghapus/Meningkatkan Paket dengan apt
-
Menginstal paket atau memperbarui paket yang sudah terinstal:
$ sudo apt-get install [package] -
Menghapus paket dari sistem (tidak menghapus file konfigurasi):
$ sudo apt-get remove [package] -
Menghapus paket dan file konfigurasi dari sistem:
$ sudo apt-get --purge remove [package] -
Menyinkronkan file indeks paket dengan sumbernya:
$ sudo apt-get update -
Memperbarui paket yang sudah terinstal:
$ sudo apt-get upgrade -
Meng-upgrade sistem ke versi distribusi yang lebih baru:
$ sudo apt-get dist-upgrade
- Membersihkan
-
Menghapus paket yang tidak lagi dibutuhkan (misalnya versi kernel Linux yang lebih lama):
$ sudo apt-get autoremove -
Membersihkan file cache dan file paket arsip yang telah diinstal:
$ sudo apt-get clean
Perintah ini dapat menghemat banyak ruang di sistem Anda.
> Lab 5.1: Installing Package di Ubuntu
Dalam lab ini, kita akan mempraktikkan proses instalasi paket menggunakan manajer paket APT pada sistem Ubuntu. Let's goo
- Persiapan Awal
Sebelum memulai lab, login terlebih dahulu ke platform menggunakan:
student@servera:~$ nusactl login
Kemudian jalankan perintah berikut untuk memulai lab environment:
student@servera:~$ nusactl start linlab-005-1
1. Update Informasi Paket
Langkah pertama, kita harus memperbarui daftar paket dari semua repository yang dikonfigurasi:
student@servera:~$ sudo apt update
Hasilnya akan menampilkan repository yang berhasil diakses dan status pembaruan.
2. Upgrade Semua Paket yang Kadaluarsa
Untuk meng-upgrade semua paket lama ke versi terbaru, gunakan:
student@servera:~$ sudo apt upgrade
Setelah konfirmasi, sistem akan mulai mengunduh dan memasang pembaruan yang tersedia.
3. Mencari Paket apache2
Gunakan perintah berikut untuk mencari paket yang berkaitan dengan apache2:
student@servera:~$ apt search apache2
4. Menampilkan Informasi Paket
Untuk mengetahui detail tentang paket apache2, jalankan:
student@servera:~$ apt show apache2
Output-nya meliputi versi, dependensi, rekomendasi, dan homepage paket.
5. Instalasi Paket Apache2
Kini kita akan menginstal paket apache2 ke sistem:
student@servera:~$ sudo apt install apache2
Proses ini juga secara otomatis menginstal dependensi yang dibutuhkan.
6. Menampilkan Daftar Paket yang Sudah Terinstal
Setelah instalasi, kita bisa melihat semua paket yang sudah terinstal dengan:
student@servera:~$ apt list --installed
Dalam daftar, kita bisa melihat bahwa apache2 dan dependensinya telah berhasil terpasang.
7. Penutupan Lab 5.1
Untuk kalian menyelesaikan Lab 5.1, jalankan perintah berikut:
[student@servera ~]$ nusactl grade linlab-005-1
[student@servera ~]$ nusactl finish linlab-005-1
Quiz 2: Cara Install MariaDB 10.9 dari Repository di Ubuntu (Laporan Praktikum)
Pada quiz kali ini, saya diminta untuk menginstal MariaDB versi 10.9 menggunakan repository eksternal di sistem operasi Ubuntu (jammy). Selain itu, saya juga perlu memastikan bahwa repository-nya ditambahkan dengan benar dan MariaDB berhasil terinstal sesuai dengan standar platform ADINUSA. Berikut langkah-langkah yang saya lakukan:
1. Persiapan Lingkungan Lab
Sebelum memulai instalasi, saya login terlebih dahulu ke sistem menggunakan perintah berikut:
nusactl login
Setelah berhasil login, saya memulai lab dengan perintah:
nusactl start linlab-quiz-2
Langkah ini akan mengatur lingkungan kerja sesuai dengan kebutuhan quiz.
2. Menambahkan Repository MariaDB 10.9
Agar bisa mengakses versi tertentu dari MariaDB, saya perlu menambahkan repository resmi dari MariaDB terlebih dahulu. Saya membuat file repository baru dengan nama mariadb.list:
sudo nano /etc/apt/sources.list.d/mariadb.list
Lalu saya tambahkan baris berikut ke dalam file tersebut:
deb [arch=amd64,arm64,ppc64el] https://archive.mariadb.org/mariadb-10.9/repo/ubuntu jammy main
Setelah selesai, saya simpan dan keluar dari editor (CTRL+S, ENTER, lalu CTRL+X).
3. Menambahkan GPG Key Repository
Untuk menghindari error saat melakukan update repository, saya menambahkan GPG key resmi MariaDB:
curl -LsS https://mariadb.org/mariadb_release_signing_key.asc | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/mariadb.gpg
4. Melakukan Update Repository
Setelah repository berhasil ditambahkan dan key sudah di-import, saya menjalankan perintah update:
sudo apt update
5. Instalasi MariaDB Versi Spesifik (10.9.*)
Untuk memastikan bahwa saya menginstal versi yang diminta, saya terlebih dahulu melihat daftar versi MariaDB yang tersedia:
apt-cache policy mariadb-server
Kemudian saya instal versi 10.9.* dengan perintah:
sudo apt install mariadb-server=1:10.9.*
(Saya menggunakan tombol TAB untuk menyempurnakan versi jika dibutuhkan.)
6. Verifikasi Instalasi
Untuk memverifikasi bahwa repository telah ditambahkan dengan benar, saya menjalankan:
cat /etc/apt/sources.list.d/mariadb.list
Kemudian saya cek versi MariaDB yang terpasang:
mariadb --version
Atau:
dpkg -l | grep mariadb-server
7. Penutupan Quiz
Untuk kalian menyelesaikan Quiz, jalankan perintah berikut:
[student@servera ~]$ nusactl grade linlab-quiz-2
[student@servera ~]$ nusactl finish linlab-quiz-2

Komentar
Posting Komentar