Sahifa 1 Kali Linux Fosh etildi


Download 0.74 Mb.
bet20/29
Sana10.12.2020
Hajmi0.74 Mb.
#163758
1   ...   16   17   18   19   20   21   22   23   ...   29
Bog'liq
kali linux


8.4.1. nazorat Fayl

Biz control.tar.gz arxivida joylashgan boshqaruv faylini ko'rib chiqishni boshlaymiz .

Nazorat qilish fayl to'plami haqida eng muhim ma'lumotlarni o'z ichiga oladi. Bu shunga o'xshash tuzilmani ishlatadi

sarlavhalarini elektron pochta orqali yuborish va dpkg -I buyrug'i bilan ko'rish mumkin. Masalan, boshqaruv fayli

uchun apt , bu kabi ko'rinadi:

dpkg -I apt_1.4 ~ beta1_amd64.deb nazorati

Paket: mos

Versiya: 1.4 ~ beta1

Arxitektura: amd64

Ta'minlovchi: APT rivojlanish guruhi

O'rnatilgan o'lcham: 3478

Bog'liq: adduser, gpgv | gpgv2 | gpgv1, debian-archive-keyring, init-system-helpers (> =

¯ 1.18 ~), libapt-pkg5.0 (> = 1.3 ~ rc2), libc6 (> = 2.15), libgcc1 (> = 1: 3.0),

¯ libstdc ++ 6 (> = 5.2)

Tavsiya etiladi: gnupg | gnupg2 | gnupg1

Takliflar: apt-doc, qobiliyat | sinaptik | wajig, dpkg-dev (> = 1.17.2), powermgmt-bazasi,

¯ python-apt

Tanaffuslar: apt-utils (<< 1.3 ~ exp2 ~)

O'zgartiradi: apt-utils (<< 1.3 ~ exp2 ~)

Bo'lim: administrator

Afzallik: muhim

Tavsif: buyruq qatori to'plami menejeri

Ushbu to'plam qidirish uchun buyruq qatori vositalarini va

paketlar haqidagi ma'lumotlarni boshqarish, shuningdek so'rov qilish

libapt-pkg kutubxonasining barcha xususiyatlariga past darajadagi kirish sifatida.

.

Bunga quyidagilar kiradi:



* paketlar va ular haqida ma'lumot olish uchun apt-get

tasdiqlangan manbalardan va o'rnatish, yangilash va

paketlarni ularning bog'liqliklari bilan birga olib tashlash

* o'rnatilgan ma'lumotlar haqida ma'lumot olish uchun apt-kesh

shuningdek, o'rnatiladigan paketlar

* olinadigan ommaviy axborot vositalarini paketlar manbai sifatida ishlatish uchun apt-cdrom

* apt-config konfiguratsiya sozlamalari interfeysi sifatida

* autentifikatsiya kalitlarini boshqarish uchun interfeys sifatida apt-key

Ushbu bo'limda biz sizni boshqarish fayli orqali ko'rib chiqamiz va turli sohalarni tushuntiramiz. Har biri

bu sizga qadoqlash tizimini yaxshiroq tushunishga imkon beradi, sizga yanada aniqroq mos keladi

konfiguratsiyani boshqarish va yuzaga kelishi mumkin bo'lgan muammolarni bartaraf etish uchun sizga kerakli tushunchalarni taqdim etish

sodir bo'lishi.

206

Kali Linux ochildi





233-bet

Bog'liqliklar: bog'liq bo'lgan maydon

Paketga bog'liqliklar paket sarlavhasidagi Depends maydonida aniqlanadi. Bu ro'yxat

paketning to'g'ri ishlashi uchun bajarilishi kerak bo'lgan shartlar - bu ma'lumotlar kabi vositalar tomonidan ishlatiladi

kerakli kutubxonalarni o'rnatish uchun apt

o'rnatiladigan paket. Har bir qaramlik uchun siz mos keladigan versiyalar doirasini cheklashingiz mumkin

bu shart. Boshqacha qilib aytganda, sizga libc6 to'plami kerakligini haqiqat bilan ifoda etish mumkin

"2.15" ga teng yoki kattaroq versiyada (" libc6 (> = 2.15) " yozilgan). Versiyani taqqoslash

operatorlar quyidagilar:

• << : kamroq;

• <= : kichik yoki teng;

• = : ga teng ("2.6.1" "2.6.1-1" ga teng emasligiga e'tibor bering);

• > = : kattaroq yoki teng;

• >> : dan katta.

Bajarilishi kerak bo'lgan shartlar ro'yxatida vergul ajratuvchi vazifasini bajaradi, mantiqiy "VA" deb talqin etiladi.

Sharoitda vertikal chiziq ("|") mantiqiy "OR" ni ifodalaydi (u "OR" ni o'z ichiga oladi, lekin "

klasterli "yoki / yoki"). "VA" dan katta ustuvorlikka ega bo'lgan holda, siz undan kerakli darajada foydalanishingiz mumkin.

esse. Shunday qilib, “(A OR B) AND C” bog'liqlik A | yoziladi B, C . Aksincha, ekspres

"A OR (B VA C)" qismi "(A OR B) AND (A OR C)" deb yozilishi kerak, chunki qaramlik maydoni

mantiqiy operatorlar orasidagi ustuvorliklar tartibini o'zgartiradigan qavslarga toqat qilmaydi

"YOKI" va "VA". Shunday qilib A | yoziladi B, A | C . Http://www.debian.org/doc/ ga qarang

Qo'shimcha ma'lumot uchun debian-policy / ch-Relationss.html .

Bog'liqliklar tizimi dasturning ishlashini kafolatlash uchun yaxshi mexanizmdir, ammo u

meta-paketlar bilan yana bir foydalanishga ega. Bu faqat bog'liqlikni tavsiflaydigan bo'sh paketlar.

Ular meta-to'plam tomonidan tanlangan doimiy dasturlar guruhini o'rnatishni osonlashtiradi

parvarish qiluvchi; Shunday qilib, apt install meta-to'plami ushbu dasturlarning barchasini avtomatik ravishda o'rnatadi

meta-to'plamning bog'liqliklaridan foydalanish. Gnome , KDE-to'liq va Kali-Linux-to'la paketlarni exam-

bir nechta meta-to'plamlar.

Oldindan bog'liq, ko'proq talabchan bog'liq

Paket sarlavhalarida "Pre-Depends" maydonida keltirilgan oldindan bog'liqliklar

normal bog'liqliklar; ularning sintaksisi bir xil. Oddiy qaramlik bu paketning

savolning yoshi paketni e'lon qilish konfiguratsiyasidan oldin paketdan chiqarilishi va sozlanishi kerak

qaramlik. Oldindan bog'liqlik, ko'rib chiqilayotgan paketning paketdan chiqarilishi kerakligini belgilaydi

va oldindan e'lon qilgan paketni oldindan o'rnatish skriptini bajarishdan oldin tuzilgan.

qaramlik, bu uning o'rnatilishidan oldin.

207


8-bob - Debian paketlarini boshqarish



234-bet

Oldindan bog'liqlik apt uchun juda talabchan, chunki u buyurtma berishda qat'iy cheklovni keltirib chiqaradi

o'rnatish uchun paketlar. Shunday qilib, o'ta zarurat bo'lmasa, oldindan bog'liqliklarga yo'l qo'yilmaydi. Bu

agar ilgarilashidan oldin tavsiyanoma qilingan debian-devel@lists.debian.org

oldindan bog'liqlik, chunki odatda ish atrofida boshqa echim topish mumkin.



Maydonlarni tavsiya qiladi, taklif qiladi va yaxshilaydi

Tavsiyalar va takliflar maydonlari majburiy bo'lmagan bog'liqliklarni tavsiflaydi. Qayta ishlash

tavsiya etilgan bog'liqliklar, eng muhimi, taqdim etilayotgan funksiyalarni sezilarli darajada yaxshilaydi

paket, ammo uning ishlashi uchun ajralmas emas. Ikkilamchi tavsiya etilgan bog'liqliklar

muhimligi, ma'lum paketlar o'zlarining foydali dasturlarini to'ldirishi va ko'paytirishi mumkinligini ko'rsatadi,

ammo boshqasini o'rnatmasdan o'rnatish juda o'rinli.

Siz nima uchun buni aniq bilmasangiz, har doim tavsiya etilgan paketlarni o'rnatishingiz kerak

ularga kerak. Aksincha, nima uchun ekanligingizni bilmasangiz, tavsiya etilgan paketlarni o'rnatish shart emas

ularga kerak.

Kengaytirilgan maydon, shuningdek, taklifni tavsiflaydi, ammo boshqa kontekstda. Bu haqiqatan ham joylashgan

taklif qilingan paket, taklifdan foyda keltiradigan paketda emas. Uning qiziqishi yotadi

tegishli paketni o'zgartirmasdan taklifni qo'shish mumkinligi bilan.

Shunday qilib, dasturning barcha qo'shimchalari, plaginlari va boshqa kengaytmalari keyinchalik ro'yxatda paydo bo'lishi mumkin.

dasturiy ta'minot bilan bog'liq gestions. Garchi u bir necha yildan beri mavjud bo'lsa-da, bu so'nggi maydon hali ham mavjud

apt yoki sinaptik kabi dasturlar tomonidan katta e'tiborga olinmaydi . Asl maqsad paketni yoqtirish edi

xul-ext-adblock-plus (Firefox kengaytmasi) e'lon qiladi Kengaytiradi: firefox, firefox-esr va shu tariqa paydo bo'ladi

firefox va firefox-esr bilan bog'liq taklif qilingan paketlar ro'yxati .

Mojarolar: mojarolar maydoni

To'qnashuvlar maydonini bir vaqtning o'zida boshqasini o'rnatib bo'lmasligini bildiradi. The

Buning eng keng tarqalgan sabablari shundaki, ikkala paket ham bir xil nomdagi faylni o'z ichiga oladi

bir xil uzatishni boshqarish protokoli (TCP) portidagi bir xil xizmat yoki bir-birlariga to'sqinlik qilishi mumkin

operatsiya.

Agar u allaqachon o'rnatilgan paket bilan ziddiyatni keltirib chiqaradigan bo'lsa, dpkg paketni o'rnatishni rad etadi,

bundan mustasno, agar yangi paket o'rnatilgan paketni o'rnini bosishini aniqlasa , u holda dpkg

eski paketni yangisiga almashtirishni tanlaydi. APT har doim sizning ko'rsatmalaringizga amal qiladi: agar

siz yangi paketni o'rnatishni tanlaysiz, u avtomatik ravishda paydo bo'lgan paketni o'chirishni taklif qiladi

muammo.


208

Kali Linux ochildi





Sahifa 235

Nomuvofiqliklar: Breaks Field

Tanaffuslar maydoni Mojarolar maydoniga o'xshash ta'sirga ega, ammo alohida ma'noga ega. Bu

paketni o'rnatishi boshqa paketni (yoki uning ma'lum versiyalarini) buzishini bildiradi.

Umuman olganda, ikkita paket o'rtasidagi ushbu nomuvofiqlik vaqtinchalik va "Breaks" munosabatlaridir

mos kelmaydigan versiyalarga tegishli.

Paket allaqachon o'rnatilgan paketni buzganda , dpkg uni o'rnatishni rad etadi va apt sinab ko'radi

yangi versiyaga (qaysi) buzilgan paketni yangilash orqali muammoni hal qilish

sobit bo'lishi kerak va shu bilan yana mos keladi).

Yangilanishlar yuz berganda, bunday holat orqaga qarab mos kelmasdan yuzaga kelishi mumkin: bu shunday

agar yangi versiya eski versiya bilan ishlamasa va ishlamay qolsa

maxsus qoidalarsiz boshqa dastur. Tanaffuslar maydoni ushbu turlarning oldini olishga yordam beradi

muammolar.



Taqdim etilgan narsalar: maydonni taqdim etadi

Ushbu maydon virtual paketning har bir qiziqarli kontseptsiyasini taqdim etadi . Ithasmanyroles, buttwoare

alohida ahamiyatga ega. Birinchi rol umumiyni bog'lash uchun virtual paketdan foydalanishdan iborat

u bilan xizmat (to'plam xizmatni taqdim etadi). Ikkinchisi paket to'liq ekanligini anglatadi

boshqasini almashtiradi va shu maqsadda u boshqasining bog'liqligini qondirishi mumkin

qoniqtirar edi. Shu bilan bir xil ishlatmasdan almashtirish paketini yaratish mumkin

paket nomi.

Meta-to'plam va virtual

Paket

Meta-paketlarni virtual paketlardan aniq ajratish zarur. For-

mer - bu faqat bitta paketni ifodalashdan iborat bo'lgan haqiqiy paketlar (shu jumladan haqiqiy .deb fayllari)

bog'liqliklar.

Ammo virtual paketlar jismonan mavjud emas; ular faqat aniqlash vositasidir

umumiy, mantiqiy mezonlarga asoslangan haqiqiy paketlarni (masalan, taqdim etilgan xizmat yoki)

standart dastur yoki oldindan mavjud bo'lgan paket bilan muvofiqligi).

Xizmat ko'rsatish Keling, birinchi ishni misol bilan batafsilroq muhokama qilaylik: barcha pochta xabarlari

kabi serverlarPostfix yoki sendmail ta'minlash uchun aytilgan mail-transport-agent virtual paketini.

Shunday qilib, ushbu xizmatning ishlashi kerak bo'lgan har qanday paket (masalan, pochta ro'yxati menejeri, masalan)

smartlist yoki sympa ) shunchaki bog'liqliklarida buning o'rniga pochta-transport agentini talab qilishini ta'kidlaydi

mumkin bo'lgan echimlarning katta, ammo to'liq bo'lmagan ro'yxatini ko'rsatish. Bundan tashqari, o'rnatish befoyda

bitta mashinada ikkita pochta serveri, shuning uchun ushbu paketlarning har biri ziddiyatni e'lon qiladi

bilan pochta-transport-agent virtual to'plami. Paket va o'zi o'rtasidagi ziddiyat e'tiborga olinmaydi

tizim, ammo bu usul ikkita pochta serverini yonma-yon o'rnatishni taqiqlaydi.

209


8-bob - Debian paketlarini boshqarish



236-bet

Boshqa paket bilan almashinish imkoniyati taqdim etadigan maydon ham qiziqarli bo'lganda,

paketning chodiri kattaroq paketga kiritilgan. Masalan, libdigest-md5-perl Perl moduli

Perl 5.6 da ixtiyoriy modul bo'lgan va Perl 5.8 da standart sifatida birlashtirilgan. Shunday qilib,

paket perl 5.8-versiyadan beri e'lon qilingan. Quyidagilarga bog'liqliklar mavjud: libdigest-md5-perl

tizimda Perl 5.8 (yoki undan yangi) bo'lsa, ushbu paketga mos keladi. Libdigest-md5-Perl o'zini upakovka

o'chirildi, chunki eski Perl versiyalari olib tashlanganida endi maqsad yo'q edi.



8.3-rasm, bog'liqliklarni buzmaslik uchun taqdim etiladigan maydondan foydalanish

Bu xususiyat juda foydalidir, chunki rivojlanish injiqliklarini oldindan bilish hech qachon mumkin emas

va eskirgan nomini o'zgartirish va boshqa avtomatik almashtirishga moslashish kerak

dasturiy ta'minot.



Fayllarni almashtirish: maydonni almashtiradi

Almashtirish maydonida paket boshqa fayllar to'plamida mavjud bo'lgan fayllar mavjudligini bildiradi.

yoshi, ammo paket ularni almashtirishga qonuniy ravishda haqli. Ushbu spetsifikatsiyasiz, dpkg

boshqa paketning fayllarini yozib bo'lmasligini bildirgan holda bajarilmaydi (texnik jihatdan mumkin

--force-üzerine yozish opsiyasi bilan buni bajarishga majbur qiling, ammo bu standart operatsiya hisoblanmaydi).

Bu mumkin bo'lgan muammolarni aniqlashga imkon beradi va texnik xodimdan bu masalani o'rganishni talab qiladi

bunday maydonni qo'shishni tanlashdan oldin.

210


Kali Linux ochildi



237-bet

Ushbu maydondan foydalanish paket nomlari o'zgarganda yoki paketga kiritilganida oqlanadi

boshqa. Bu shuningdek, xizmat ko'rsatuvchi fayllarni boshqacha taqsimlashga qaror qilganida sodir bo'ladi

turli xil ikkilik paketlar, bizning paketimizdan ishlab chiqarilgan: bir-biriga almashtirilgan fayl uzunlik

eski paketga, lekin faqat yangisiga.

O'rnatilgan paketdagi barcha fayllar almashtirilgan bo'lsa, paket qayta ko'rib chiqiladi

Ko'chib. Va nihoyat, bu maydon dpkg- ni a bo'lgan joyda o'zgartirilgan paketni olib tashlashga undaydi

ziddiyat.

8.4.2. Konfiguratsiya skriptlari

Bundan tashqari , nazorat fayl, control.tar.gz har Debian paketi uchun arxiv bo'lishi mumkin

dpkg tomonidan turli bosqichlarda chaqirilgan bir qator skriptlar ( postinst , postrm , preinst , prerm )

paketni qayta ishlash. Ushbu fayllarni .deb paketida joylashganligini ko'rsatish uchun biz dpkg -I dan foydalanishimiz mumkin

Arxiv:


dpkg -I /var/cache/apt/archives/zsh_5.3-1_amd64.deb | bosh

yangi debian to'plami, 2.0 versiyasi.

hajmi 814486 bayt: boshqaruv arxivi = 2557 bayt.

838 bayt,

20 qator

boshqaruv

3327 bayt,

43 qator


md5sums

969 bayt,

41 qator

* postinst

#! / bin / sh

348 bayt,

20 qator

* postrm


#! / bin / sh

175 bayt,

5 qator

* preinst



#! / bin / sh

175 bayt,

5 qator

* prerm


#! / bin / sh

Paket: zsh

Versiya: 5.3-1

dpkg -I zsh_5.3-1_amd64.deb oldindan

#! / bin / sh

o'rnatilgan -e

# Avtomatik ravishda qo'shilgan dh_installdeb

dpkg-maintscript-helper symlink_to_dir / usr / share / doc / zsh zsh-common 5.0.7-3 - ”$ @”

# Avtomatik ravishda qo'shilgan qismni tugatish

Debian siyosati ushbu fayllarning har birini batafsil tavsiflaydi, unda chaqirilgan skriptlar va tortishuvlar ko'rsatiladi.

aldash Ushbu buyruqlar murakkablashishi mumkin, chunki ko'p marta yozilgan matnlar muvaffaqiyatsiz bo'ladi, dpkg bo'ladi

O'rnatishni yoki olib tashlashni bekor qilishni bekor qilib, qoniqarli holatga qaytishga harakat qiling

mumkin).

211


8-bob - Debian paketlarini boshqarish



238-bet

Dpkg bazasi Siz yurgizadigan mumkin dpkg da fayl tizimi haqida ma'lumotlar bazasini / bor / lib / dpkg / . Bu di-

rektorida o'rnatilgan barcha paketlarning ishlaydigan yozuvlari mavjud

tizim. O'rnatilgan paketlar uchun barcha konfiguratsiya skriptlari

/ var / lib / dpkg / info / katalogi, paket bilan qo'shilgan fayl shaklida

ism:

ls /var/lib/dpkg/info/zsh.*



/var/lib/dpkg/info/zsh.list

/var/lib/dpkg/info/zsh.md5sums

/var/lib/dpkg/info/zsh.postinst

/var/lib/dpkg/info/zsh.postrm

/var/lib/dpkg/info/zsh.preinst

/var/lib/dpkg/info/zsh.prerm

Ushbu katalog tarkibiga har bir paket uchun .list kengaytmasiga ega fayl kiradi,

ushbu paketga tegishli fayllar ro'yxatini kiritish:

head /var/lib/dpkg/info/zsh.list

/.

/ bin



/ bin / zsh

/ bin / zsh5

/ usr

/ usr / lib



/ usr / lib / x86_64-linux-gnu

/ usr / lib / x86_64-linux-gnu / zsh

/usr/lib/x86_64-linux-gnu/zsh/5.2

/usr/lib/x86_64-linux-gnu/zsh/5.2/zsh

[...]

/ Bor / lib / dpkg / holati fayl shaklida ma'lumotlarni bloklar bir qator (o'z ichiga olgan



holatini tavsiflovchi mashhur pochta sarlavhalari izoh talab qiladi, RFC 2822)

har bir paket. O'rnatilgan paketlarning boshqaruv faylidagi ma'lumotlar ham

u erda takrorlangan.

more / var / lib / dpkg / status

To'plam: gnome-belgilar

Holat: o'rnatish ok o'rnatilgan

Afzallik: ixtiyoriy

Bo'lim: gnome

O'rnatilgan o'lcham: 1785

Boshqaruvchi: Debian GNOME xizmatchilari

¯ keepers@lists.alioth.debian.org>

Arxitektura: amd64

Versiya: 3.20.1-1

[...]


212

Kali Linux ochildi





239-bet

Keling, konfiguratsiya fayllarini muhokama qilaylik va ularning o'zaro ta'sirini ko'rib chiqaylik. Umuman olganda, oldindan tayyorlangan skript

paket o'rnatilishidan oldin bajarilgan, postinst esa unga amal qiladi. Xuddi shunday, prerm ham

paketni olib tashlashdan oldin chaqiriladi va keyin postrm . Paketning yangilanishi tengdir

oldingi versiyasini olib tashlash va yangisini o'rnatish. Ichida tasvirlash mumkin emas

bu erda mumkin bo'lgan barcha senariylarni batafsil bayon qiling, ammo biz eng keng tarqalgan ikkitasini muhokama qilamiz: o'rnatish / o'rnatish

sana va olib tashlash.

Ushbu ketma-ketliklar juda chalkash bo'lishi mumkin, ammo vizual tasvir yordam berishi mumkin. Manoj Srivastava

dpkg tomonidan konfiguratsiya skriptlari qanday chaqirilishini tushuntirib beradigan ushbu diagrammalarni yaratdi . Shunga o'xshash di-

gramm Debian Women loyihasi tomonidan ishlab chiqilgan; ular biroz osonroq

turish, lekin kamroq to'liq.

² https://people.debian.org/~srivasta/MaintainerScripts.html

² https://wiki.debian.org/MaintainerScripts

E'tibor bering

Ning ramziy nomlari

Ssenariylar

Ushbu bo'limda tasvirlangan ketma-ketliklar aniq nomlar bo'yicha konfiguratsiya skriptlarini chaqiradi,

kabi eski-prerm yoki yangi-postinst . Ular, o'z navbatida, dastlabki skript kelishuvidir

paketning eski versiyasida (yangilanishdan oldin o'rnatilgan) va postinstda joylashtirilgan

skript yangi versiyada (yangilanish tomonidan o'rnatilgan).

O'rnatish va skriptlar ketma-ketligini yangilash

O'rnatish paytida (yoki yangilashda) nima sodir bo'ladi:

1. Yangilash uchun dpkg eski yangilangan yangi versiyasini chaqiradi .

2. Hali ham yangilash kerak, dpkg keyin yangi-oldindan yangilangan eski versiyasini ishga tushiradi ; birinchi marta

stallation, u yangi oldindan o'rnatishni amalga oshiradi . Bu so'nggi versiyada eski versiyani qo'shishi mumkin -

terifthepackagehasalreadybeenin o'rnatilgan va olib tashlangan (sozlanmagan, konfiguratsiya

saqlangan fayllar).

3. Keyin yangi paketli fayllar paketdan chiqariladi. Agar fayl allaqachon mavjud bo'lsa, u almashtiriladi, ammo zaxira nusxasi

nusxasi tayyorlanadi va vaqtincha saqlanadi.

Bir yangilash uchun 4. dpkg amalga oshiradi eski-postrm yangilashingiz yangi-versiyasini .

5. dpkg barcha ichki ma'lumotlarni yangilaydi (fayllar ro'yxati, konfiguratsiya skriptlari va boshqalar)

almashtirilgan fayllarning zaxira nusxalari. Bu qaytib kelmaslik nuqtasidir: dpkg endi hammaga kirish huquqiga ega emas

oldingi holatga qaytish uchun zarur bo'lgan elementlarning.

6. dpkg konfiguratsiya fayllarini yangilaydi, bu sizning avtomatlashtira olmasligini hal qilishingizni so'raydi.

ically bu vazifani boshqarish. Ushbu protsedura tafsilotlari 8.4.3 bo'limida  , " Tekshirish -

yig'indilar, konffillar”[214-bet].

7. Va nihoyat, dpkg ijro tomonidan paketini konfiguratsiya yangi-postinst configure last-



versiya tuzilgan .

213


8-bob - Debian paketlarini boshqarish



Sahifa 240

Download 0.74 Mb.

Do'stlaringiz bilan baham:
1   ...   16   17   18   19   20   21   22   23   ...   29




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling