Skip to content

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:

  • rpm paket faylini dpkgga qanday mos kelishini tushunasiz;
  • dnf (va uning o'tmishdoshi yum) 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

dnfyumning 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

rpm -q httpd
httpd-2.4.57-5.el9.x86_64

-q — query. Paket o'rnatilmagan bo'lsa, rpm "package httpd is not installed" deb chiqaradi.

Paket haqida batafsil ma'lumot

rpm -qi httpd

dpkg -s <paket>ga mos keladi — versiya, o'rnatilgan sana, hajm va tavsif ko'rsatiladi.

Paket qaysi fayllarni o'rnatgan

rpm -ql httpd

dpkg -L <paket>ga mos keladi.

.rpm faylini to'g'ridan-to'g'ri o'rnatish

sudo rpm -ivh paket-1.0-1.el9.x86_64.rpm
  • -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

dnf search nginx

apt searchga mos keladi.

O'rnatish

sudo dnf install nginx

apt installga mos keladi. dnf kerakli barcha bog'liq paketlarni repozitoriydan avtomatik topib, ro'yxatini ko'rsatib, tasdiqdan so'ng o'rnatadi.

Tizimni yangilash

sudo dnf check-update
sudo dnf update

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

sudo dnf remove nginx

apt removega mos keladi.

O'rnatilgan paketlar ro'yxati

dnf list installed

dpkg -lga mos keladi.

Paket bog'liqliklarini ko'rish

dnf repoquery --requires nginx

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:

sudo dnf makecache

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

  1. RHEL-asosidagi test VM'da (masalan, Rocky Linux) dnf search, dnf install va rpm -qi buyruqlarini birma-bir bajarib, natijalarni Debian'dagi mos buyruqlar bilan solishtiring.
  2. O'rnatilgan paketning barcha fayllarini rpm -ql bilan chiqarib, ular orasidan konfiguratsiya faylini toping.
  3. Yangi .repo fayl yaratib, gpgcheck=1 bilan sozlang, so'ng dnf makecache bajaring.
  4. 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.

Manbalar