Cara memeriksa distribusi, versi, kernel, dan arsitektur Linux

Langkah pertama untuk mengidentifikasi distribusi Linux dan versinya adalah membaca /etc/os-release. Kolom PRETTY_NAME menyediakan nama yang dapat dibaca manusia, sedangkan ID dan VERSION_ID menyediakan pengenal yang lebih mudah digunakan dalam skrip.

Gunakan hostnamectl ketika Anda menginginkan ringkasan praktis tentang distribusi, kernel, dan arsitektur. Gunakan uname -r untuk versi kernel Linux yang sedang berjalan, bukan versi distribusi. Nilai-nilai ini menggambarkan bagian-bagian sistem yang berbeda dan tidak boleh dianggap bisa saling dipertukarkan.

Perintah yang harus dijalankan terlebih dahulu

Untuk memeriksa hanya nama dan versi distribusi, mulai dengan:

cat /etc/os-release

Untuk menampilkan hanya bidang-bidang yang paling berguna:

grep -E '^(PRETTY_NAME|ID|VERSION_ID|ID_LIKE)=' /etc/os-release

Jalankan perintah berikut ketika Anda juga memerlukan rilis kernel dan arsitektur CPU.

cat /etc/os-release
hostnamectl
uname -r
uname -m

Apa itu distribusi Linux?

Secara teknis, Linux adalah kernel sistem operasi. Sebuah distribusi Linux menggabungkan kernel tersebut dengan alat sistem, pustaka, manajer paket, penginstal, dan konfigurasi default untuk membentuk sistem operasi yang dapat digunakan.

Ubuntu, Debian, Fedora, Rocky Linux, openSUSE, dan Arch Linux semuanya menggunakan kernel Linux, tetapi format paket, kebijakan pembaruan, dan perintah administrasinya berbeda. Periksa keluarga distribusi dan versi sebelum menerapkan instruksi instalasi atau konfigurasi server.

Keluarga distribusi Distribusi umum Format paket dan alat Nilai yang perlu diperiksa
Keluarga Debian Debian, Ubuntu, Linux Mint DEB, APT ID dan ID_LIKE=debian
Keluarga Red Hat RHEL, Fedora, Rocky Linux, AlmaLinux RPM, DNF ID dan nilai terkait RHEL atau Fedora di ID_LIKE
Keluarga SUSE openSUSE, SUSE Linux Enterprise RPM, Zypper ID dan ID_LIKE=suse
Keluarga Arch Arch Linux, Manjaro pkg.tar.zst, Pacman ID dan ID_LIKE=arch
Independen Alpine Linux dan lainnya Spesifik distribusi ID dan dokumentasi resmi distribusi

ID_LIKE adalah informasi pendukung yang menjelaskan keluarga terkait atau asal. Ini mungkin tidak ada. Gunakan ID sebagai pengidentifikasi distribusi utama dan konsultasikan ID_LIKE hanya jika kompatibilitas keluarga penting.

Periksa distribusi dan versi di /etc/os-release

/etc/os-release menyimpan data identifikasi sistem operasi sebagai entri KEY=value. Menurut spesifikasi os-release systemd resmi, perangkat lunak sebaiknya menggunakan /etc/os-release dan menggunakan /usr/lib/os-release sebagai cadangan ketika yang pertama tidak tersedia.

Tampilkan semua bidang identifikasi

cat /etc/os-release

Bidang yang tepat bervariasi menurut distribusi, tetapi keluaran umumnya menyerupai:

PRETTY_NAME="Ubuntu 24.04 LTS"
NAME="Ubuntu"
VERSION_ID="24.04"
VERSION_CODENAME=noble
ID=ubuntu
ID_LIKE=debian

Contoh ini mengidentifikasi Ubuntu 24.04 dalam keluarga Debian. Teks tingkat patch dan detail lainnya dapat bervariasi tergantung distribusi dan status pembaruan.

Pahami bidang utama os-release

Bidang Makna Penggunaan khas
PRETTY_NAME Nama distribusi yang dapat dibaca manusia dan versi Tampilan dan pemeriksaan manual
NAME Nama sistem operasi tanpa versi Label deskriptif
ID Pengidentifikasi distribusi dengan huruf kecil Cabang distribusi dalam skrip
VERSION_ID Versi distribusi yang dimaksudkan untuk perbandingan mesin Pemeriksaan versi yang didukung
ID_LIKE Keluarga distribusi terkait atau asal Menentukan kemungkinan konvensi paket dan konfigurasi
VERSION_CODENAME Nama kode untuk rilis distribusi Konfigurasi dan dokumentasi repositori

Distribusi rilis bergulir mungkin tidak memiliki versi mayor tetap dan dapat menghilangkan VERSION_ID. Ketidakhadiran field opsional tidak berarti bahwa file tersebut tidak valid.

Gunakan hostnamectl untuk ringkasan sistem

Pada distribusi yang menggunakan systemd, hostnamectl dapat menampilkan nama host, sistem operasi, kernel, dan arsitektur CPU secara bersamaan.

hostnamectl

Bidang yang paling berguna adalah:

  • Operating System: nama dan versi distribusi
  • Kernel: rilis kernel yang sedang berjalan
  • Architecture: arsitektur sistem
  • Virtualization: lingkungan mesin virtual atau kontainer yang terdeteksi

hostnamectl adalah ringkasan praktis, tetapi mungkin tidak tersedia di instalasi minimal, beberapa kontainer, atau distribusi yang tidak menggunakan systemd. Gunakan /etc/os-release dan uname di lingkungan tersebut.

Bedakan versi distribusi dari versi kernel

Nilai yang dilaporkan oleh uname bukanlah rilis distribusi seperti Ubuntu 24.04 atau Rocky Linux 10. Nilai tersebut menggambarkan kernel yang sedang berjalan dan arsitektur perangkat keras.

uname -r
uname -m
uname -a
Perintah Informasi yang dikembalikan Contoh penggunaan
uname -r Rilis kernel Memeriksa kompatibilitas driver dan modul kernel
uname -m Arsitektur perangkat keras Memilih paket x86_64 atau aarch64
uname -a Beberapa nilai terkait kernel dalam satu baris Menyediakan ringkasan pemecahan masalah yang ringkas

Sebuah sistem dapat mempertahankan rilis distribusi yang sama sambil menerima kernel yang lebih baru. Sistem pada versi distribusi yang sama juga dapat menjalankan kernel yang berbeda. Setelah pembaruan paket kernel, uname -r dapat terus menampilkan kernel yang lama sampai sistem di-reboot. Dokumentasi manual uname mendefinisikan setiap opsi.

Gunakan metode alternatif pada sistem lama

Periksa dengan lsb_release

Jika lsb_release terpasang, ia dapat menampilkan distributor, deskripsi, rilis, dan nama kode.

lsb_release -a

Perintah ini tidak termasuk dalam setiap instalasi minimal. Periksa terlebih dahulu dengan command -v lsb_release. manual lsb_release Debian menjelaskan bidang keluarannya.

Baca file rilis khusus distribusi

Pada sistem lama tanpa /etc/os-release, gunakan file khusus distribusi sebagai cadangan.

cat /etc/redhat-release
cat /etc/debian_version
cat /etc/alpine-release

Ketersediaan dan format file ini berbeda-beda menurut distribusi. Dalam otomatisasi, lebih baik menggunakan /etc/os-release dan periksa hanya file cadangan eksplisit yang digunakan oleh distribusi yang didukung. Hindari menggabungkan semua file yang cocok dengan /etc/*release secara membabi buta.

Mendeteksi distribusi dalam skrip shell

Untuk skrip instalasi dan otomatisasi operasi, gunakan ID dan VERSION_ID alih-alih menguraikan PRETTY_NAME yang dapat dibaca manusia.

if [ -r /etc/os-release ]; then
    . /etc/os-release
    printf 'distribution=%s\n' "$ID"
    printf 'version=%s\n' "${VERSION_ID:-unknown}"
    printf 'family=%s\n' "${ID_LIKE:-unknown}"
else
    printf 'distribution=unknown\n'
    uname -srm
fi

Ekspresi ${VERSION_ID:-unknown} menggunakan unknown ketika nilai tidak disetel atau kosong. Karena banyak bidang os-release bersifat opsional dan distribusi dapat menambahkan bidang mereka sendiri, skrip tidak boleh berasumsi bahwa setiap nilai ada.

Saat memilih perintah manajemen paket, bandingkan terlebih dahulu ID dan gunakan ID_LIKE hanya sebagai kondisi pendukung. Bahkan distribusi dalam keluarga yang sama dapat menggunakan konfigurasi repositori dan nama paket yang berbeda, jadi kesamaan keluarga tidak menjamin setiap perintah dapat dipertukarkan.

Interpretasikan hasil di kontainer, WSL, dan chroot

Kontainer

Di dalam sebuah kontainer, /etc/os-release biasanya mengidentifikasi distribusi user-space pada image kontainer, bukan host. Sebaliknya, uname -r dapat menampilkan kernel yang dibagikan dengan host. Adalah normal jika perintah-perintah ini tampak menggambarkan keluarga distribusi yang berbeda.

Windows Subsystem for Linux

Di Windows Subsystem for Linux (WSL), /etc/os-release mengidentifikasi distribusi Ubuntu, Debian, atau distribusi lainnya yang diinstal. Output dari uname -r dapat mencakup string yang mengidentifikasi kernel WSL. Lanjutkan menggunakan /etc/os-release untuk versi distribusi.

Lingkungan chroot

Di dalam chroot, /etc/os-release mengidentifikasi distribusi dalam sistem file chroot, sementara uname menggambarkan kernel yang dibagikan dengan host yang sedang berjalan. Perhitungkan perbedaan ini selama pekerjaan pemulihan dan proses pembangunan lintas-distribusi.

Pertanyaan yang sering diajukan

Perintah apa yang paling dapat diandalkan untuk memeriksa versi Linux?

Untuk mengidentifikasi distribusi dan rilisnya, mulailah dengan cat /etc/os-release. Periksa kernel secara terpisah dengan uname -r dan arsitektur CPU dengan uname -m.

Apakah ada yang salah jika hostnamectl hilang atau tidak berjalan?

Tidak selalu. Lingkungan dan distribusi minimal yang tidak menggunakan systemd mungkin tidak menyediakan hostnamectl. Gunakan /etc/os-release dan uname untuk mengambil informasi tersebut secara terpisah.

Bagaimana saya dapat membedakan CentOS, Rocky Linux, dan AlmaLinux?

Periksa ID di /etc/os-release. Distribusi ini memiliki bagian dari model administrasi yang sama, tetapi kebijakan dukungan dan repositorinya terpisah. Jangan anggap mereka sebagai distribusi yang sama hanya berdasarkan ID_LIKE.

Apakah x86_64 dan aarch64 merupakan versi distribusi Linux?

Tidak. Mereka mengidentifikasi arsitektur perangkat keras. Sebuah rilis distribusi dapat menyediakan citra terpisah untuk x86_64 dan aarch64, jadi periksa arsitektur saat memilih paket perangkat lunak atau media instalasi.

Ringkasan

Gunakan /etc/os-release untuk nama dan versi distribusi Linux, hostnamectl untuk ringkasan sistem yang nyaman, uname -r untuk kernel yang sedang berjalan, dan uname -m untuk arsitektur.

Dalam skrip, gunakan ID, VERSION_ID, dan, bila perlu, ID_LIKE alih-alih mengurai PRETTY_NAME. Dalam kontainer, WSL, dan lingkungan chroot, ingat bahwa distribusi user-space dan kernel yang berjalan bisa berasal dari lapisan yang berbeda.