RPM, YUM va DNF: RHEL oilasidagi paket boshqaruvi
Paketlarni boshqarish asoslari, apt va repozitoriylar va dpkg va bog'liqliklar maqolalari Debian/Ubuntu ekotizimiga qaratilgan. Lekin production muhitda RHEL, CentOS Stream, Rocky Linux, AlmaLinux yoki Fedora kabi RPM-asosidagi distributivlar ham keng tarqalgan — ayniqsa korporativ va enterprise serverlarda. Bu maqola o'sha ekotizimning asosiy vositalarini, Debian tomonidagi analogiyalarga tayangan holda ko'rsatadi.
O'quv maqsadlari
Maqolani tugatgach:
rpmpaket faylinidpkgga qanday mos kelishini tushunasiz;dnf(va uning o'tmishdoshiyum)aptning qaysi vazifasini bajarishini bilasiz;- paket o'rnatish, yangilash, o'chirish va qidirish buyruqlarini RPM oilasida bajara olasiz;
- repozitoriy sozlash va GPG kalitlarini tekshirish tartibini bilasiz;
- APT va DNF terminologiyasidagi mos keluvchi tushunchalarni bir-biriga bog'lay olasiz.
Ikki qatlamli model: bu yerda ham bir xil g'oya
Debian oilasida dpkg past darajadagi paket vositasi, apt esa undan yuqorida turib repozitoriy va bog'liqlikni boshqaradi. RPM oilasida xuddi shu tuzilma takrorlanadi:
| Qatlam | Debian/Ubuntu | RHEL oilasi | Vazifasi |
|---|---|---|---|
| Past daraja | dpkg |
rpm |
Paket faylini o'rnatish/o'chirish, bog'liqlikni tekshiradi, lekin o'zi hal qilmaydi |
| Yuqori daraja | apt |
dnf (eski tizimlarda yum) |
Repozitoriydan qidirish, bog'liqlikni avtomatik hal qilish, yangilash |
dnf — yumning zamonaviy davomchisi; RHEL 8+, Fedora va Rocky/AlmaLinux'da standart. Eski RHEL 7/CentOS 7 tizimlarida hamon yum ishlatiladi, lekin buyruq sintaksisi deyarli bir xil — ko'p tizimda yum dnfga yo'naltirilgan alias sifatida ham ishlaydi.
rpm: past darajadagi vosita
O'rnatilgan paketni tekshirish
-q — query. Paket o'rnatilmagan bo'lsa, rpm "package httpd is not installed" deb chiqaradi.
Paket haqida batafsil ma'lumot
dpkg -s <paket>ga mos keladi — versiya, o'rnatilgan sana, hajm va tavsif ko'rsatiladi.
Paket qaysi fayllarni o'rnatgan
dpkg -L <paket>ga mos keladi.
.rpm faylini to'g'ridan-to'g'ri o'rnatish
-i— install;-v— verbose;-h— progress ko'rsatkichini (#) chiqarish.
dpkg -i paket.debga mos keladi — va xuddi shunga o'xshab, bog'liqlik avtomatik hal qilinmaydi:
Warning
rpm -ivh bog'liq paketlarni avtomatik topib o'rnatmaydi — bog'liqlik yetishmasa xato beradi va to'xtaydi, xuddi dpkg -i singari. Amalda .rpm faylini to'g'ridan-to'g'ri o'rnatish kamdan-kam kerak bo'ladi; deyarli har doim dnf install repozitoriydan bog'liqlik bilan birga o'rnatadi.
dnf: yuqori darajadagi, bog'liqlikni hal qiluvchi vosita
Paket qidirish
apt searchga mos keladi.
O'rnatish
apt installga mos keladi. dnf kerakli barcha bog'liq paketlarni repozitoriydan avtomatik topib, ro'yxatini ko'rsatib, tasdiqdan so'ng o'rnatadi.
Tizimni yangilash
apt update && apt upgrade juftligiga mos keladi — farqi shundaki, dnfda repozitoriy metama'lumotini yangilash va paketlarni yangilash ko'pincha bitta dnf update buyrug'ida birlashtirilgan (check-update faqat mavjud yangilanishlarni ko'rsatadi, hech narsani o'zgartirmaydi).
O'chirish
apt removega mos keladi.
O'rnatilgan paketlar ro'yxati
dpkg -lga mos keladi.
Paket bog'liqliklarini ko'rish
apt-cache dependsga mos keladi.
Repozitoriy sozlash
RPM oilasida repozitoriylar /etc/yum.repos.d/ katalogidagi .repo fayllarda tavsiflanadi — Debian'dagi /etc/apt/sources.list.d/ ga mos:
[example-repo]
name=Example Repository
baseurl=https://repo.example.com/el9/x86_64/
enabled=1
gpgcheck=1
gpgkey=https://repo.example.com/RPM-GPG-KEY-example
baseurl— paket fayllari joylashgan manzil;gpgcheck=1— paket imzosini tekshirishni majburiy qiladi;gpgkey— tekshirish uchun ishlatiladigan ochiq kalit manzili.
Danger
gpgcheck=0 bilan repozitoriyni sozlash paket imzosini tekshirmasdan o'rnatishga imkon beradi — bu APT tomonidagi imzosiz .deb o'rnatishga o'xshab, ta'minot zanjiri (supply chain) hujumiga eshik ochadi. Ishonchli manba bo'lmasa, gpgcheck doim yoqilgan qolishi kerak.
Yangi repozitoriyni qo'shgandan keyin metama'lumot keshini yangilash:
apt updatega mos keladi.
Terminologiya jadvali: APT ↔ DNF
| Vazifa | APT/dpkg (Debian) | DNF/rpm (RHEL oilasi) |
|---|---|---|
| Paket qidirish | apt search |
dnf search |
| O'rnatish | apt install |
dnf install |
| O'chirish | apt remove |
dnf remove |
| To'liq o'chirish (konfiguratsiya bilan) | apt purge |
dnf remove + qo'lda tozalash |
| Repozitoriy metama'lumotini yangilash | apt update |
dnf makecache |
| Barcha paketni yangilash | apt upgrade |
dnf update |
| O'rnatilgan paket haqida ma'lumot | dpkg -s |
rpm -qi |
| Paket o'rnatgan fayllar | dpkg -L |
rpm -ql |
.deb/.rpm faylini to'g'ridan-to'g'ri o'rnatish |
dpkg -i |
rpm -ivh |
| Repozitoriy fayllari joylashuvi | /etc/apt/sources.list.d/ |
/etc/yum.repos.d/ |
Ko'p uchraydigan xatolar
rpm -ivhni repozitoriydan o'rnatish o'rniga standart usul deb qabul qilish
Bu past darajadagi vosita bog'liqlikni hal qilmaydi. Odatiy o'rnatish har doim dnf install <nom> orqali, repozitoriydan bo'lishi kerak.
yum va dnfni butunlay boshqa vosita deb hisoblash
Zamonaviy tizimlarda yum ko'pincha dnfga yo'naltirilgan; ikkalasi deyarli bir xil buyruq sintaksisini baham ko'radi. Eski hujjatda yum ko'rilsa, aksariyat holda dnf bilan to'g'ridan-to'g'ri almashtirish mumkin.
gpgcheck=0ni vaqtinchalik "tezkor yechim" sifatida qoldirish
Sinov muhitida vaqtincha o'chirilgan tekshiruv production konfiguratsiyaga ko'chib o'tishi — keng tarqalgan xavfsizlik xatosi.
Amaliy mashqlar
- RHEL-asosidagi test VM'da (masalan, Rocky Linux)
dnf search,dnf installvarpm -qibuyruqlarini birma-bir bajarib, natijalarni Debian'dagi mos buyruqlar bilan solishtiring. - O'rnatilgan paketning barcha fayllarini
rpm -qlbilan chiqarib, ular orasidan konfiguratsiya faylini toping. - Yangi
.repofayl yaratib,gpgcheck=1bilan sozlang, so'ngdnf makecachebajaring. - Yuqoridagi terminologiya jadvalidagi har bir qatorni yodingizdan, buyruqni ikkala tomonda ham yozib chiqing.
Xulosa
RPM oilasida rpm past darajadagi, dnf (yoki eski yum) yuqori darajadagi vosita — bu aynan Debian oilasidagi dpkg/apt juftligining tuzilishini takrorlaydi. Asosiy amaliy farq — buyruq nomlari va repozitoriy fayl formati (.repo vs sources.list), tushunchalar va ish tartibi esa deyarli bir xil. Ikkala ekotizimni bilish production muhitida qaysi distributiv bilan ishlashingizdan qat'i nazar, paket boshqaruvida tez moslasha olish imkonini beradi.