RPM, YUM va DNF: RHEL oilasida paketlarni boshqarish
Paketlarni boshqarish asoslari, apt va repozitoriylar hamda dpkg va bog'liqliklar maqolalari Debian/Ubuntu ekotizimiga qaratilgan edi. Lekin RPM asosidagi distributivlar — RHEL, CentOS Stream, Rocky Linux, AlmaLinux va Fedora — production’da, ayniqsa korporativ muhitlarda xuddi shunchalik keng tarqalgan. Bu maqola shu ekotizimning asosiy vositalarini allaqachon biladigan Debian tomonidagi tushunchalarga to'g'ridan-to'g'ri moslab ko'rib chiqadi.
Ikki qatlamli model o'sha, ekotizim boshqa
Debian tomonida dpkg past darajali vosita, apt esa uning ustida repozitoriylar va bog'liqliklarni boshqaradigan yuqori darajali qatlam. RPM oilasi aynan shu tuzilishni takrorlaydi:
| Qatlam | Debian/Ubuntu | RHEL oilasi | Vazifasi |
|---|---|---|---|
| Past darajali | dpkg |
rpm |
Paket faylini o'rnatadi/olib tashlaydi, bog'liqliklarni tekshiradi, lekin hal qilmaydi |
| Yuqori darajali | apt |
dnf (eski tizimlarda yum) |
Repozitoriylardan qidiradi, bog'liqliklarni avtomatik hal qiladi, yangilanishlarni boshqaradi |
dnf — yum ning zamonaviy vorisi va RHEL 8+, Fedora hamda Rocky/AlmaLinux’da sukut bo'yicha ishlatiladi. Eski RHEL 7/CentOS 7 tizimlari hali ham yum dan foydalanadi, lekin uning buyruq sintaksisi deyarli bir xil va ko'p joriy tizimlarda yum ning o'zi shunchaki dnf ga yo'naltirilgan alias.
rpm: past darajali vosita
O'rnatilgan paketni tekshirish
-q — query (so'rov). Agar paket o'rnatilmagan bo'lsa, rpm "package httpd is not installed" deb xabar beradi.
Paket haqida batafsil ma’lumot
dpkg -s <package> ning ekvivalenti — versiya, o'rnatilgan sana, hajm va tavsifni ko'rsatadi.
Paket qaysi fayllarni o'rnatgan
dpkg -L <package> ning ekvivalenti.
Fayl qaysi paketga tegishli — teskari yo'nalish
rpm -qf diskda allaqachon turgan fayl qaysi paketdan kelganini aytadi — bu Debian tomonidagi dpkg -S ning to'g'ridan-to'g'ri ekvivalenti. Hali o'rnatilmagan fayl uchun dnf provides xuddi shu savolga butun repozitoriy bo'yicha javob beradi. Yetishmayotgan buyruq yoki kutubxonani olish uchun qaysi paketni o'rnatish kerakligini aynan shu yo'l bilan aniqlaysiz:
.rpm faylni to'g'ridan-to'g'ri o'rnatish
-i— o'rnatish (install);-v— batafsil chiqish (verbose);-h— jarayon belgilarini (#) chiqarish.
Bu dpkg -i package.deb ning ekvivalenti — va xuddi dpkg kabi bog'liqliklar avtomatik hal qilinmaydi:
Warning
rpm -ivh bog'liq paketlarni avtomatik topib o'rnatmaydi — agar ulardan biri yetishmasa, xuddi dpkg -i kabi xato beradi va to'xtaydi. Amalda .rpm faylni to'g'ridan-to'g'ri o'rnatish kamdan-kam kerak bo'ladi; dnf install deyarli har doim repozitoriydan bog'liqliklarni avtomatik hal qilgan holda o'rnatadi.
dnf: bog'liqliklarni hal qiladigan yuqori darajali vosita
Paketni qidirish
apt search ning ekvivalenti.
O'rnatish
apt install ning ekvivalenti. dnf kerakli barcha bog'liq paketlarni repozitoriydan avtomatik topadi, ro'yxatni ko'rsatadi va tasdiqlangandan keyin o'rnatadi.
Tizimni yangilash
Bu apt update && apt upgrade juftligining ekvivalenti. Farqi shundaki, dnf da repozitoriy metama’lumotlarini yangilash va paketlarni yangilash ko'pincha bitta dnf update buyrug'ida birlashtiriladi (check-update esa hech narsani o'zgartirmasdan faqat mavjud yangilanishlarni ko'rsatadi).
Olib tashlash
apt remove ning ekvivalenti.
O'rnatilgan paketlarni ro'yxatlash
dpkg -l ning ekvivalenti.
Paket bog'liqliklarini ko'rish
apt-cache depends ning ekvivalenti.
Repozitoriylarni sozlash
RPM oilasida repozitoriylar /etc/yum.repos.d/ ostidagi .repo fayllarida tasvirlanadi — bu Debian’dagi /etc/apt/sources.list.d/ ning ekvivalenti:
[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— imzo tekshiruvini majburiy qiladi;gpgkey— tekshiruv uchun ishlatiladigan ochiq kalit manzili.
Danger
Repozitoriyni gpgcheck=0 bilan sozlash paket imzosini tekshirmasdan o'rnatishga ruxsat beradi — bu APT tomonida imzosiz .deb faylni o'rnatishga o'xshaydi va supply-chain hujumiga yo'l ochadi. Agar manba muayyan, vaqtinchalik sabab bilan haqiqatan ishonchli bo'lmasa, gpgcheck doim yoqilgan holda qolishi kerak.
Yangi repozitoriy qo'shgandan keyin metama’lumotlar keshini yangilang:
apt update ning ekvivalenti.
Tranzaksiyalar tarixi va rollback: dnf history
dnf da bor, apt da esa ichiga o'rnatilmagan haqiqiy imkoniyatlardan biri — har bir tranzaksiyaning to'liq, so'rov qilish mumkin bo'lgan qaydi va uni bekor qilish imkoniyati. Har bir o'rnatish, yangilash yoki olib tashlash raqamlangan tranzaksiya sifatida log'ga yoziladi:
ID | Command line | Date and time | Action(s) | Altered
-------------------------------------------------------------------------------
14 | update | 2026-07-28 02:11 | Update | 37
13 | install nginx | 2026-07-25 09:40 | Install | 4
Muayyan tranzaksiya aynan nimani o'zgartirganini ko'zdan kechiring, so'ng yangilanish regressiyaga sabab bo'lgan bo'lsa, uni ortga qaytaring:
undo shu tranzaksiya o'zgartirgan paketlarni qaytaradi — u yangilagan narsalarni downgrade qiladi va o'rnatgan narsalarini olib tashlaydi. Bu Debian tomonida Production’da yangilanishlar maqolasida snapshot’lar va apt-mark hold orqali hal qilinadigan rollback muammosiga RHEL oilasining javobi. U asosiy versiya yangilanishidan oldingi haqiqiy zaxira nusxaning o'rnini bosmaydi, lekin bitta muvaffaqiyatsiz dnf update uchun ko'pincha eng tez va toza tiklanish usuli.
Atamalar jadvali: APT ↔ DNF
| Vazifa | APT/dpkg (Debian) | DNF/rpm (RHEL oilasi) |
|---|---|---|
| Paketni qidirish | apt search |
dnf search |
| O'rnatish | apt install |
dnf install |
| Olib tashlash | apt remove |
dnf remove |
| To'liq olib tashlash (konfiguratsiya bilan) | apt purge |
dnf remove + qo'lda tozalash |
| Repozitoriy metama’lumotlarini yangilash | apt update |
dnf makecache |
| Barcha paketlarni yangilash | apt upgrade |
dnf update |
| O'rnatilgan paket haqida ma’lumot | dpkg -s |
rpm -qi |
| Paket o'rnatgan fayllar | dpkg -L |
rpm -ql |
| Fayl qaysi paketga tegishli | dpkg -S |
rpm -qf / dnf provides |
| Oxirgi tranzaksiyani ortga qaytarish | (ichiga o'rnatilmagan) | dnf history undo <id> |
.deb/.rpm faylni to'g'ridan-to'g'ri o'rnatish |
dpkg -i |
rpm -ivh |
| Repozitoriy fayllari joylashuvi | /etc/apt/sources.list.d/ |
/etc/yum.repos.d/ |
Intervyuda
Ikkala ekotizim bilan ham tanishman deydigan har bir kishiga beriladigan amaliy intervyu savoli: "nega dnf install bilan muammosiz o'rnatiladigan paket rpm -ivh da bog'liqlik xatosi bilan yiqiladi?" Javob aynan shu modulda avval ko'rilgan dpkg/apt munosabatini takrorlaydi: past darajali vosita (rpm, xuddi dpkg kabi) bog'liqliklarni faqat tizimda allaqachon bor narsalarga nisbatan tekshiradi, yuqori darajali vosita (dnf, xuddi apt kabi) esa past darajali o'rnatuvchini chaqirishdan oldin to'liq zanjirni repozitoriydan hal qilib, yuklab oladi. Ikki ekotizimni bir-biriga aloqasiz deb qaramasdan, bu o'xshashlikni aniq ayta olish odatda aynan shu turdagi savol tekshiradigan narsa.
Keng tarqalgan xatolar
rpm -ivh ni standart o'rnatish usuli deb hisoblash
Bu past darajali vosita bog'liqliklarni hal qilmaydi. Standart o'rnatish doim repozitoriydan dnf install <name> orqali bajarilishi kerak.
yum va dnf ni butunlay boshqa vositalar deb o'ylash
Zamonaviy tizimlarda yum ko'pincha shunchaki dnf ga yo'naltirilgan alias; ikkalasining buyruq sintaksisi deyarli bir xil. Eski hujjatlarda yum tilga olingan joyda uni to'g'ridan-to'g'ri dnf ga almashtirish odatda o'zgarishsiz ishlaydi.
gpgcheck=0 ni "vaqtinchalik" yechim sifatida qoldirish
Sinov muhitida vaqtincha o'chirilgan tekshiruvning production konfiguratsiyasiga o'tib ketishi keng tarqalgan va oldini olish mumkin bo'lgan xavfsizlik xatosi.
Mashqlar
- RHEL asosidagi sinov VM’ida (masalan, Rocky Linux)
dnf search,dnf installvarpm -qini birma-bir ishga tushiring va natijalarni ularning Debian tomonidagi ekvivalentlari bilan solishtiring. - O'rnatilgan paketga tegishli barcha fayllarni
rpm -qlbilan ro'yxatlang va ular orasidan konfiguratsiya faylini aniqlang. gpgcheck=1sozlangan yangi.repofayl yarating, so'ngdnf makecacheni ishga tushiring.- Yuqoridagi atamalar jadvaliga qaramasdan, uning har bir qatorining ikkala tomonini yoddan yozing, so'ng javoblaringizni jadval bilan solishtiring.
Mashqni bajardim deyish uchun: har bir mashq uchun hozirgina ishga tushirgan RHEL tomonidagi buyruqning Debian tomonidagi ekvivalentini ayta olishingiz va nega rpm/dpkg bog'liqliklarni tekshirishda bir xil cheklovga ega ekanini tushuntira olishingiz kerak.
Xulosa
RPM oilasida rpm — past darajali, dnf (yoki eskiroq yum) esa yuqori darajali vosita. Bu Debian’dagi dpkg/apt juftligining tuzilishini aynan takrorlaydi. Asosiy amaliy farqlar — buyruq nomlari va repozitoriy fayllari formati (sources.list o'rniga .repo); asosiy tushunchalar va ish jarayoni deyarli bir xil. Ikkala ekotizimni bilish muayyan production server qaysi distributiv oilasida ishlashidan qat’i nazar, paketlarni boshqarishga tez moslashish imkonini beradi.
Manbalar
- Red Hat Enterprise Linux 9: dasturiy paketlarni boshqarish: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/configuring_basic_system_settings/managing-software-packages_configuring-basic-system-settings
- DNF hujjatlari: https://dnf.readthedocs.io/en/latest/
- Linux man-pages:
rpm(8): https://man7.org/linux/man-pages/man8/rpm.8.html - Fedora Docs: dnf.conf va .repo fayllari: https://dnf.readthedocs.io/en/latest/conf_ref.html