# Upgrade CentOS Linux 7.9 ke CentOS Linux 8.5

<figure><img src="https://nos.wjv-1.neo.id/cdn.medusa.my.id/CentOS%20System%20Update.png" alt=""><figcaption></figcaption></figure>

## Introduction

[**CentOS Linux**](https://www.centos.org/centos-linux) adalah sistem operasi Linux yang bersifat [**Open Source**](https://opensource.org) berbasis komunitas yang berfungsi sebagai alternatif downstream, binary-compatible dan gratis. Sistem operasi ini merupakan distribusi turunan dari [**Red Hat Enterprise Linux (RHEL)**](https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux).  [**CentOS**](https://www.centos.org) dirancang untuk memberikan platform yang stabil, andal, dan scalabel untuk pengguna yang membutuhkan sistem operasi Linux server (CLI), selain itu CentOS juga dapat dioperasikan sebagai sistem operasi untuk penggunaan sehari-hari berbasis desktop (GUI). Untuk nama CentOS sendiri adalah singkatan dari Community ENTerprise Operating System.

Berikut ini adalah beberapa poin utama mengenai CentOS Linux:

1. **Open Source:** CentOS bersifat Open Source, sehingga source code-nya dapat diakses dan dimodifikasi oleh siapa saja. Ini memungkinkan komunitas untuk berkontribusi pada pengembangan dan pemeliharaan sistem operasi.
2. **Distribusi Turunan Red Hat Enterprise Linux (RHEL):** CentOS dikompilasi dari source code Red Hat Enterprise Linux (RHEL). Ini membuatnya memiliki banyak kesamaan dengan RHEL, termasuk kestabilan dan keamanan yang tinggi.
3. **Binary-Compatible dengan RHEL:** Salah satu kelebihan utama CentOS adalah kompatibilitas biner penuh dengan RHEL. Artinya, aplikasi dan paket software yang dikembangkan untuk RHEL umumnya dapat dijalankan tanpa modifikasi pada CentOS dan sebaliknya.
4. **Dukungan Komunitas:** CentOS diurus dan didukung oleh komunitas non-profit, yang memastikan pemeliharaan, pembaruan keamanan, dan dukungan terus menerus. Meskipun dukungan komunitas bisa kuat, namun tidak sebanding dengan dukungan resmi yang mungkin kita dapatkan dari RHEL.
5. **Stabilitas dan Keandalan:** CentOS dikenal karena stabilitas dan keandalannya. Ini membuatnya menjadi pilihan populer untuk server dan lingkungan bisnis yang memerlukan sistem operasi yang dapat diandalkan.
6. **CentOS 8 dan Versi Selanjutnya:** CentOS 8 diperkenalkan dengan konsep baru yang disebut [**CentOS Stream**](https://www.centos.org/centos-stream), yang memperkenalkan model pengembangan yang lebih dinamis dan mengalami perubahan signifikan dalam dukungan jangka panjang. Ini memicu beberapa reaksi di komunitas pengguna CentOS dan menyebabkan beberapa organisasi mencari distribusi turunan Red Hat Enterprise Linux (RHEL) seperti CentOS sebagai alternatifnya seperti [**AlmaLinux**](https://almalinux.org), [**Rocky Linux**](https://rockylinux.org), [**Fedora**](https://fedoraproject.org) maupun distribusi Linux lain seperti [**openSUSE**](https://www.opensuse.org), [**Debian**](https://www.debian.org) dan [**Ubuntu**](https://ubuntu.com).

Untuk versi CentOS Linux terakhir sendiri yakni CentOS Linux 7 akan memasuki End Of Life (EOL)  pada 30 Juni 2024 dan untuk CentOS Linux 8 sendiri sudah memasuki End Of Life (EOL) pada 31 Desember 2021, untuk hal ini CentOS juga telah memberikan informasi mengenai cara melakukan konversi CentOS Linux 8 ke CentOS 8 Stream melalui website resminya, dan untuk CentOS Stream 8 sendiri akan memasuki End Of Life (EOL) pada 31 Mei 2024.

<figure><img src="https://nos.wjv-1.neo.id/cdn.medusa.my.id/CentOS%20Lifecycle.png" alt=""><figcaption><p>CentOS Lifecycle</p></figcaption></figure>

## Installation

### Menambahkan Repository EPEL

Sebelum kita melakukann upgrade versi sistem operasi CentOS Linux 7.9 ke CentOS Linux 8.5, terlebih dahulu kita install repository paket software EPEL pada CentOS Linux 7.9, berikut perintah yang digunakan:

{% code overflow="wrap" lineNumbers="true" %}

```bash
yum install epel-release
```

{% endcode %}

<figure><img src="https://nos.wjv-1.neo.id/cdn.medusa.my.id/EPEL%20Release.png" alt=""><figcaption><p>Installing Extra Packages for Enterprise Linux</p></figcaption></figure>

### Install Paket Software YUM Utils

Selanjutnya kita perlu meng-install paket software dengan nama [**`yum-utils`**](https://pkgs.org/search/?q=yum-utils) untuk kebutuhan mengelola repository YUM dan berikut perintah yang digunakan:

{% code overflow="wrap" lineNumbers="true" %}

```bash
yum install yum-utils
```

{% endcode %}

<figure><img src="https://nos.wjv-1.neo.id/cdn.medusa.my.id/YUM%20Utils.png" alt=""><figcaption><p>Installing Utilities for YUM Package Manager</p></figcaption></figure>

### Membersihkan Paket Software Yang Tidak Diperlukan

Selanjutnya bersihkan paket software yang tidak diperlukan pada sistem operasi dengan menjalankan perintah berikut:

{% code overflow="wrap" lineNumbers="true" %}

```bash
package-cleanup --leaves
package-cleanup --orphans
```

{% endcode %}

<figure><img src="https://nos.wjv-1.neo.id/cdn.medusa.my.id/Package%20Cleanup.png" alt=""><figcaption><p>Clean Up Unused Software Packages</p></figcaption></figure>

### Install Paket Software DNF

Lanjut ke langkah selanjutnya yakni melakukan install paket software [**DNF**](https://docs.fedoraproject.org/en-US/fedora/latest/system-administrators-guide/package-management/DNF), paket software ini digunakan untuk melakukan manajemen paket software sama seperti [**YUM**](https://pkgs.org/download/yum) atau [**RPM**](https://pkgs.org/download/rpm), dan berikut perintah yang perlu dijalankan:

{% code overflow="wrap" lineNumbers="true" %}

```bash
yum install dnf
```

{% endcode %}

<figure><img src="https://nos.wjv-1.neo.id/cdn.medusa.my.id/DNF.png" alt=""><figcaption><p>Installing DNF Sofware Package Manager</p></figcaption></figure>

### Menghapus YUM Package Manager

Selanjutnya kita perlu melakukan penghapusan paket software YUM dengan menggunakan DNF yang sebelumnya telah ter-install, YUM sendiri digunakan untuk melakukan manajemen paket sofware pada CentOS Linux 7.9 dan berikut perintahnya:

{% code overflow="wrap" lineNumbers="true" %}

```bash
dnf remove yum yum-metadata-parser
rm -Rf /etc/yum
ls -lah /etc/yum
```

{% endcode %}

<figure><img src="https://nos.wjv-1.neo.id/cdn.medusa.my.id/Remove%20YUM%20Package%20Manager.png" alt=""><figcaption><p>Removing YUM Software Package Manager</p></figcaption></figure>

### Melakukan Upgrade Versi Sistem Operasi

Setelah semua langkah di atas telah kita lakukan, selanjutnya kita masuk proses melakukan upgrade CentOS Linux 7.9 ke CentOS Linux 8.5 serta melakukan pembaruan pada repository paket software EPEL, melakukan pembersihan pada semua file temporary tersisa, menghapus versi kernel lama dan juga menghapus paket software yang mengalami konflik, berikut perintahnya:

{% code overflow="wrap" lineNumbers="true" %}

```bash
dnf upgrade
dnf install http://vault.centos.org/8.5.2111/BaseOS/x86_64/os/Packages/{centos-linux-repos-8-3.el8.noarch.rpm,centos-linux-release-8.5-1.2111.el8.noarch.rpm,centos-gpg-keys-8-3.el8.noarch.rpm}
dnf -y upgrade https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
dnf clean all
rpm -e `rpm -q kernel`
rpm -e --nodeps sysvinit-tools
```

{% endcode %}

<figure><img src="https://nos.wjv-1.neo.id/cdn.medusa.my.id/DNF%20Upgrade.png" alt=""><figcaption><p>System Upgrade</p></figcaption></figure>

<figure><img src="https://nos.wjv-1.neo.id/cdn.medusa.my.id/Install%20CentOS%208.png" alt=""><figcaption><p>Upgrading CentOS Version</p></figcaption></figure>

<figure><img src="https://nos.wjv-1.neo.id/cdn.medusa.my.id/Remove%20Old%20Package.png" alt=""><figcaption><p>Removing Old Software Package Components</p></figcaption></figure>

### Melakukan Sinkronisasi Sistem Operasi

Langkah selanjutnya kita perlu melakukan sinkronisasi pada semua paket-paket software yang ada di dalam sistem agar mendapatkan update versi yang sesuai berdasarkan repository paket software yang saat ini digunakan dan untuk mengatasi terjadinya permasalahan pada dependency paket software yang mungkin terjadi nantinya, berikut perintahnya:

{% code overflow="wrap" lineNumbers="true" %}

```bash
dnf -y --releasever=8 --allowerasing --setopt=deltarpm=false distro-sync
```

{% endcode %}

<figure><img src="https://nos.wjv-1.neo.id/cdn.medusa.my.id/Distro%20Sync%20Complete.png" alt=""><figcaption><p>Distro Sync</p></figcaption></figure>

### Install Versi Kernel Baru

Kemudian kita perlu meng-install versi kernel terbaru untuk menyesuaikan dengan versi sistem operasi yang telah dilakukan upgrade sebelumnya, dari yang sebelumnya CentOS 7.9 ke CentOS 8.5, pada saat menjalankan perintah **`dnf install kernel-core`** terpadat pesan error, tambahkan parameter **`--skip-broken`** dan lihat paket software apa saja yang mengalami konflik, maka kita perlu menambahkan parameter **`--best --allowerasing`**, berikut perintahnya:

{% code overflow="wrap" lineNumbers="true" %}

```bash
dnf install kernel-core --best --allowerasing
```

{% endcode %}

<figure><img src="https://nos.wjv-1.neo.id/cdn.medusa.my.id/Install%20New%20Kernel%20Core.png" alt=""><figcaption><p>Install a New Kernel</p></figcaption></figure>

### Minimal Install Paket Software

Langkah terakhir lakukan minimal install paket software pada sistem operasi yang sudah ter-update versinya, jika menjalankan perintah **`dnf -y groupupdate "Core" "Minimal Install"`**   terpadat pesan error, tambahkan parameter **`--skip-broken`** dan lihat paket software apa saja yang mengalami konflik, kemudian tambahkan parameter **`--best --allowerasing`** seperti yang sebelumnya dilakukan di atas dan berikut perintahnya:

{% code overflow="wrap" lineNumbers="true" %}

```bash
dnf -y groupupdate "Core" "Minimal Install" --best --allowerasing
reboot
```

{% endcode %}

<figure><img src="https://nos.wjv-1.neo.id/cdn.medusa.my.id/Minimal%20Install.png" alt=""><figcaption><p>Minimal Install Package Software</p></figcaption></figure>

## Testing

### Melihat Versi Sistem Operasi

Setelah proses upgrade versi sistem operasi dari CentOS 7.9 ke CentOS 8.5 selesai dilakukan dan VM sudah dilakukan reboot, selanjutnya akses ke VM melalui SSH dan lihat versi sistem operasi saat ini,  berikut perintahnya:

{% code overflow="wrap" lineNumbers="true" %}

```bash
ssh user@123.45.67.89
cat /etc/redhat-release
hostnamectl
```

{% endcode %}

<figure><img src="https://nos.wjv-1.neo.id/cdn.medusa.my.id/OS%20Version.png" alt=""><figcaption><p>Operating System Version</p></figcaption></figure>

Demikian sedikit pengetahuan dan pengalaman yang dapat saya bagikan, semoga apa yang telah saya sampaikan dapat bermanfaat bagi kita semua.

<details>

<summary><strong>Referensi</strong></summary>

* [**How to Upgrade CentOS 7 to CentOS 8 Linux**](https://www.tecmint.com/upgrade-centos-7-to-centos-8)

</details>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://blog.madfxr.my.id/documentation/categories/linux/upgrade-centos-linux-7.9-ke-centos-linux-8.5.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
