Ubuntu Server / do-release-upgrade / Cara meningkatkan versi Ubuntu

Untuk meningkatkan Ubuntu Server ke rilis sistem operasi berikutnya, gunakan sudo do-release-upgrade. Perbarui seluruh paket pada rilis saat ini terlebih dahulu, pastikan jalur peningkatannya didukung, dan siapkan cadangan yang dapat dipulihkan.

Pembaruan paket dan peningkatan rilis

do-release-upgrade memindahkan paket dasar dan konfigurasi sistem Ubuntu ke rilis berikutnya. Fungsinya berbeda dari apt update yang menyegarkan daftar paket dan apt upgrade yang memperbarui paket dalam rilis saat ini. Untuk pengelolaan sehari-hari, lihat panduan apt di Ubuntu Server.

Rilis LTS (Long Term Support, dukungan jangka panjang) ditingkatkan secara berurutan ke LTS berikutnya. Misalnya, perpindahan dari 22.04 LTS ke 26.04 LTS harus melalui 24.04 LTS, dengan pemeriksaan fungsi pada setiap tahap. Jangan mengganti nama kode repositori secara massal untuk melompati rilis. Jalur dan masa dukungan tersedia pada siklus rilis Ubuntu.

LTS baru tidak langsung ditawarkan kepada semua server yang ada. Peningkatan antar-LTS umumnya dibuka setelah rilis pemeliharaan pertama atau point release; periksa penawaran sebenarnya melalui alat peningkatan. Untuk rilis yang dukungannya telah berakhir, susun rencana pemulihan atau migrasi tersendiri dan jangan menganggap prosedur ini berlaku tanpa penyesuaian.

Menyiapkan cadangan dan akses pemulihan

Jadwalkan waktu penghentian layanan dan gunakan akun dengan hak administrator. Baca catatan rilis Ubuntu tujuan dan persyaratan dukungan aplikasi. Server web yang berhasil menyala belum membuktikan bahwa PHP, basis data, dan ekstensinya bekerja dengan benar.

  • Cadangan: simpan data layanan, basis data, konfigurasi dalam /etc, sertifikat, dan rahasia yang dibutuhkan untuk pemulihan di lokasi terpisah yang aman. Gunakan metode pencadangan konsisten yang sesuai dengan produk basis data dan periksa pemulihannya. Snapshot mesin virtual yang sedang berjalan saja tidak menjamin konsistensi basis data.
  • Akses pemulihan: siapkan dan uji konsol fisik, konsol manajemen jarak jauh, atau konsol serial cloud yang tetap bisa diakses saat SSH (Secure Shell) terputus. Meskipun peningkatan dilakukan melalui SSH, jangan mengandalkannya sebagai satu-satunya jalur pemulihan.
  • Ketentuan cloud: periksa dukungan penyedia untuk image, kernel, metode boot, dan agen manajemen. Tidak semua server cloud melarang peningkatan langsung pada sistem yang ada. Jika pemulihan sulit atau kompatibilitas layanan perlu diuji lebih dahulu, bandingkan juga pilihan membangun server baru dan memigrasikan data.

Perintah berikut memeriksa rilis saat ini, ruang dan inode yang tersedia, status paket yang belum lengkap, serta paket yang ditahan. Perintah-perintah ini tidak memulai peningkatan rilis.

cat /etc/os-release
uname -r
df -h / /boot
df -i / /boot
sudo dpkg --audit
apt-mark showhold

Catat VERSION_ID dan atasi dahulu kekurangan ruang pada / dan /boot. Kebutuhan ruang bergantung pada instalasi dan rencana perubahan. Selidiki masalah dari dpkg --audit dan pahami alasan paket ditahan sebelum mengubahnya. Jangan melepas semua penahanan hanya untuk melewati pemeriksaan peningkatan.

Memperbarui rilis saat ini dan memeriksa kebijakan

  1. Segarkan daftar paket rilis saat ini lalu terapkan seluruh pembaruan. Perintah persiapan ini tercantum dalam prosedur resmi peningkatan Ubuntu Server.
sudo apt update
sudo apt dist-upgrade -o APT::Get::Always-Include-Phased-Updates=true

dist-upgrade menyesuaikan dependensi melalui repositori yang dikonfigurasi dan dapat menghapus paket. Baca rencana perubahan dan hentikan jika paket penting akan dihapus tanpa diduga. Opsi tersebut menyertakan pembaruan yang didistribusikan bertahap; perintah ini sendiri tidak mengganti rilis Ubuntu. Pastikan kedua perintah berhasil dan tidak ada pembaruan tertunda.

  1. Periksa apakah /run/reboot-required ada. Keberadaan berkas ini berarti reboot diperlukan untuk menyelesaikan pembaruan saat ini.
if [ -f /run/reboot-required ]; then
    cat /run/reboot-required
fi

Jika diperlukan, jalankan sudo reboot pada waktu pemeliharaan, sambungkan kembali, dan periksa layanan sebelum melanjutkan. Tidak adanya berkas tersebut bukan berarti pengujian aplikasi sudah selesai.

  1. Jika do-release-upgrade tidak tersedia, instal paket penyedianya lalu periksa kebijakan pemberitahuan rilis.
sudo apt install ubuntu-release-upgrader-core
cat /etc/update-manager/release-upgrades

Instalasi dapat dilewati jika perintah sudah tersedia. Agar server LTS tetap mengikuti jalur LTS, gunakan Prompt=lts pada berkas konfigurasi. Prompt=normal juga mempertimbangkan rilis interim, tetapi tidak mengizinkan lompatan rilis. Jika perlu diubah, cadangkan berkas dengan nama lain dan sunting hanya entri terkait menggunakan sudoedit /etc/update-manager/release-upgrades. Perbedaannya dijelaskan pada panduan Ubuntu tentang LTS dan rilis interim.

Memeriksa tujuan dan memulai peningkatan

Periksa dahulu apakah peningkatan rilis tersedia. Opsi -c hanya memeriksa lalu keluar tanpa memulai peningkatan; opsi ini tidak menguji kompatibilitas aplikasi.

sudo do-release-upgrade -c

Jika tidak ada tujuan yang ditawarkan, periksa versi saat ini, jalur yang didukung, Prompt, pembaruan tertunda, jaringan, dan ketersediaan peningkatan. Dalam manual do-release-upgrade, -d mencari rilis pengembangan dan juga dapat digunakan untuk mengevaluasi LTS baru sebelum point release pertamanya. Jangan menambahkannya sembarangan di server produksi hanya untuk melewati pesan bahwa tidak ada rilis baru.

Setelah cadangan dan akses pemulihan siap serta tujuan sesuai rencana, mulai dengan perintah berikut. Jangan menambahkan opsi persetujuan otomatis dan tetaplah siap menjawab pertanyaan.

sudo do-release-upgrade
  • Ringkasan perubahan: tinjau rilis tujuan, paket yang akan dihapus atau dipasang, ukuran unduhan, dan kebutuhan ruang. Jika layanan penting akan dihapus atau rencana berbeda dari perkiraan, berhenti sebelum menyetujui dan selidiki penyebabnya. Setelah instalasi paket dimulai, jangan mematikan proses secara paksa atau mematikan server.
  • Pertanyaan konfigurasi: bandingkan berkas yang ada dengan versi dari pengelola paket. Ikuti petunjuk layar untuk melihat perbedaan, mempertahankan, atau mengganti berkas. Mempertahankan semuanya atau mengganti semuanya dapat menghilangkan pengaturan layanan atau perubahan penting bagi versi baru.
  • Repositori eksternal dan akses: PPA (Personal Package Archive) dan repositori pihak ketiga dinonaktifkan selama peningkatan. Jika alat memberi tahu adanya port SSH pemulihan tersendiri, tinjau aturan firewall dan keamanan cloud sesuai pesan itu, lalu batasi akses ke administrator. Jangan menonaktifkan seluruh firewall atau membiarkan port yang tidak diperlukan terbuka permanen.

Baca juga daftar paket usang sebelum menyetujui penghapusannya. Jika peningkatan yang selesai meminta reboot, lakukan pada waktu pemeliharaan dan pertahankan akses konsol sampai pemeriksaan selesai.

Memeriksa versi dan layanan setelah reboot

Sambungkan kembali dan periksa rilis tujuan serta layanan yang gagal. Bandingkan versi kernel dengan catatan sebelum peningkatan atau informasi paket rilis tujuan, lalu segarkan daftar paket.

cat /etc/os-release
uname -r
systemctl --failed
sudo apt update
apt list --upgradable

Pastikan VERSION_ID sesuai tujuan dan selidiki setiap kegagalan dalam systemctl --failed. Walaupun tidak ada unit gagal, uji respons web, baca-tulis basis data, tugas terjadwal, pemantauan, dan pencadangan sesuai kebutuhan nyata layanan. Uji sesi SSH baru sebelum menutup konsol pemulihan.

Konfigurasikan kembali hanya repositori eksternal yang diperlukan setelah memastikan dukungannya untuk rilis Ubuntu baru dan kompatibilitas paket terpasang. Jangan mengaktifkan semua repositori dengan nama kode lama. Lakukan pembersihan tambahan setelah layanan stabil, sambil meninjau paket yang diusulkan untuk dihapus.

Menangani kesalahan dan koneksi terputus

Simpan pesan kesalahan terakhir dan log dalam /var/log/dist-upgrade/. Panduan Ubuntu untuk melaporkan kesalahan peningkatan juga menyebut log tersebut sebagai bahan pemeriksaan. Tampilkan daftar berkas dahulu, lalu baca log yang tersedia untuk mempersempit tahap kegagalan dan penyebab terkait paket.

sudo ls -lah /var/log/dist-upgrade/
sudo less /var/log/dist-upgrade/main.log

Jika SSH terputus, gunakan konsol pemulihan untuk memeriksa proses peningkatan yang sudah berjalan dan kemajuannya terlebih dahulu. Jangan menjalankan peningkatan baru atau menghapus berkas kunci APT hanya karena koneksi terputus. Gangguan saat pemrosesan paket memerlukan pemulihan berdasarkan log dan status paket saat ini.

Tidak ada satu perintah umum untuk membatalkan peningkatan rilis dan kembali ke Ubuntu sebelumnya. Jika pemulihan diperlukan, pulihkan cadangan server dan basis data yang sudah diuji ke titik waktu yang konsisten, atau beralih ke server lama yang telah disiapkan. Pertimbangkan cara mempertahankan penulisan data sejak pencadangan. Mengembalikan berkas konfigurasi Prompt saja tidak memulihkan sistem operasi yang sudah berubah.