# Package Management Systems

***

Dengan melacak file dan metadata secara otomatis dan dapat diprediksi juga dapat diandalkan, administrator sistem dapat menggunakan <mark style="color:purple;">**sistem manajemen paket**</mark> untuk membuat proses instalasi mereka berskala hingga ribuan sistem tanpa memerlukan pekerjaan manual pada setiap sistem. Fitur-fiturnya meliputi:

* <mark style="color:yellow;">**Automation**</mark>**:** Tidak perlu melakukan instalasi dan peningkatan secara manual.
* <mark style="color:yellow;">**Scalability**</mark>**:** Menginstal paket pada satu sistem atau 10.000 sistem.
* <mark style="color:yellow;">**Repeatability**</mark>, kemampuan untuk menjalankan suatu tindakan atau proses secara berulang-ulang dengan hasil yang konsisten dan <mark style="color:yellow;">**Predictability**</mark>, kemampuan untuk memprediksi hasil atau perilaku dari suatu tindakan atau proses.
* <mark style="color:yellow;">**Security**</mark> dan <mark style="color:yellow;">**Auditing**</mark>(proses pemeriksaan, pemantauan, dan pencatatan aktivitas sistem untuk memastikan bahwa sistem komputer beroperasi dengan baik).

***

## **Software Packaging Concepts**

<mark style="color:purple;">**Sistem manajemen paket**</mark> menyediakan alat yang memungkinkan administrator sistem mengotomatiskan instalasi, peningkatan, konfigurasi, dan penghapusan paket perangkat lunak dengan cara yang diketahui, dapat diprediksi, dan konsisten. Paket yang diberikan dapat berisi file yang dapat dieksekusi, file data, dokumentasi, skrip instalasi, dan file konfigurasi. Juga disertakan atribut metadata seperti nomor versi, checksum, informasi vendor, ketergantungan, deskripsi, dll.

***

## **Package Types**

### **Binary Packages**

Paket biner berisi file yang siap untuk digunakan, termasuk file yang dapat dieksekusi dan librarynya.

### **Source Packages**

Paket sumber digunakan untuk menghasilkan paket biner; Anda harus selalu dapat membangun ulang paket biner dari paket sumber. Satu paket sumber dapat digunakan untuk beberapa arsitektur.

### **Architecture-independent**

Paket arsitektur-independen berisi file dan skrip yang berjalan di bawah penerjemah skrip, serta file dokumentasi dan konfigurasi.

### **Meta-packages**

Meta-paket adalah kelompok paket terkait yang mengumpulkan semua yang diperlukan untuk menginstal subsistem yang relatif besar, seperti lingkungan desktop, atau office suite, dll.

***

## **Available Package Management Systems**

### **RPM (Red Hat Package Manager)**

Sistem ini digunakan oleh semua distribusi turunan Red Hat, seperti Red Hat Enterprise Linux, Fedora, CentOS, dan juga oleh SUSE dan distribusi openSUSE komunitas terkait.

### **DPKG (Debian Package)**

DPKG (Paket Debian) adalah sistem pengemasan yang digunakan untuk menginstal, menghapus, dan mengelola paket perangkat lunak di Debian Linux dan distribusi lain yang diturunkan darinya. File paket memiliki akhiran .deb dan database DPKG berada di direktori /var/lib/dpkg.

### **DNF and YUM**

Program dnf menyediakan tingkat layanan cerdas yang lebih tinggi untuk menggunakan program rpm yang mendasarinya. Program ini dapat secara otomatis menyelesaikan ketergantungan saat menginstal, memperbarui, dan menghapus paket. Program ini mengakses repositori perangkat lunak eksternal, melakukan sinkronisasi dengan repositori tersebut, dan mengambil serta menginstal perangkat lunak sesuai kebutuhan.

Sistem manajemen paket tingkat yang lebih tinggi (seperti dnf, yum, apt, dan zypper) bekerja dengan basis data perangkat lunak yang tersedia dan menggabungkan alat yang diperlukan 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 biner, serta paket perangkat lunak sumber.
* Are used to automate the install, upgrade, and removal of software packages.
* Mengatasi ketergantungan secara otomatis.
* Menghemat waktu karena tidak perlu mengunduh paket secara manual atau mencari informasi ketergantungan secara terpisah.

### **What Is dnf?**

dnf memiliki sejumlah fitur yang membuatnya berguna untuk manajemen paket. Ini adalah ujung depan untuk RPM, tetapi juga memiliki kemampuan untuk mengambil paket dari satu atau lebih repositori jarak jauh. Salah satu fitur terbaiknya adalah kemampuan untuk menyelesaikan ketergantungan.

### **What Is yum?**

dnf menggantikan yum selama transisi RHEL/CentOS 7 ke 8, dan Fedora telah menggunakan yum lebih lama lagi. Jika Anda mencoba menjalankan perintah yum, beberapa versi dnf akan memperingatkan Anda bahwa perintah ini sudah tidak digunakan lagi, dan mengarahkan Anda ke perintah yang tepat.

### **ZYPPER**

Untuk penggunaan pada sistem berbasis SUSE, program zypper menyediakan tingkat layanan cerdas yang lebih tinggi untuk menggunakan program rpm yang mendasarinya, dan memainkan peran yang sama dengan dnf pada sistem berbasis Red Hat.

zypper adalah alat bantu baris perintah untuk menginstal dan mengelola paket pada SUSE Linux dan openSUSE.

### **APT**

Untuk penggunaan pada sistem berbasis Debian, kumpulan program APT (Advanced Packaging Tool) menyediakan tingkat layanan cerdas yang lebih tinggi untuk menggunakan program dpkg yang mendasarinya, dan memainkan peran yang sama dengan dnf pada sistem berbasis Red Hat. Utilitas utamanya adalah apt-get dan apt-cache.

*apt, apt-get, apt-cache, etc.*

***

## Lab 5.1: Installing Package

Penjelasan:

```
$ sudo apt update
```

memperbarui daftar paket yang tersedia.

```
$ sudo apt upgrade
```

meningkatkan sistem dengan menginstal atau meningkatkan paket.

```
$ apt search apache2
```

mencari dalam deskripsi paket.

```
$ apt show apache2
```

cari tahu informasi lebih lanjut tentang paket.

```
$ sudo apt install apache2
```

instal paket apache2 dalam sistem.

```
$ apt list --installed
```

lihat daftar paket yang diinstal.

***

## **Quiz 2 Installing Package With Repository**

### **Instructions**

1\. Add mariadb 10.9 repository to the /etc/apt/sources.list.d. Name the file of repository with **mariadb.list**

2\. Install a specific version of MariaDB 10.9.4

### **Verification**

1\. make sure the repository is made and in accordance with the requirements in adinusa

2\. Make sure mariadb-server is installed as required in adinusa.

### Answer

<pre><code>$ vim /etc/apt/sources.list.d/mariadb.list

isi dengan script di bawah ini:

# MariaDB 10.9 repository list - created 2023-11-02 05:03 UTC
# https://mariadb.org/download/
# deb.mariadb.org is a dynamic mirror if your preferred mirror goes offline. See https://mariadb.org/mirrorbits/ for details.
# deb [signed-by=/etc/apt/keyrings/mariadb-keyring.pgp] https://deb.mariadb.org/10.9/ubuntu jammy main
deb [signed-by=/etc/apt/keyrings/mariadb-keyring.pgp] https://download.nus.edu.sg/mirror/mariadb/repo/10.9/ubuntu jammy main
# deb-src [signed-by=/etc/apt/keyrings/mariadb-keyring.pgp] https://download.nus.edu.sg/mirror/mariadb/repo/10.9/ubuntu jammy main

atau kunjungi <a data-footnote-ref href="#user-content-fn-1">link</a> ini

$ sudo apt update
$ sudo apt-get install mariadb-server
$ mariadb --version

Alternatif
$ apt policy [name-package]
</code></pre>

[^1]: <https://mariadb.org/download/?t=repo-config&d=22.04+%22jammy%22&v=10.9&r_m=nus>
