IlmHamroh
JavaScript Full-stack/1-qism. Kompyuter, fayllar va terminal16/40-dars13 daqiqa
Mundarija (34)

Dastur o'rnatish va paket menejerlari (OS darajasida)

Qisqacha: Paket menejeri — dasturlarni rasmiy katalogdan bitta buyruq bilan o'rnatadigan, yangilaydigan va o'chiradigan vosita. Windows'da winget, macOS'da Homebrew (brew), Ubuntu Linux'da apt ishlatiladi. Masalan, winget install --id Git.Git -e. Dastur terminalda nomi bilan ishga tushishi uchun uning papkasi PATH ro'yxatida bo'lishi kerak.

Bu darsda

  • Paket, bog'liqlik va paket menejeri nima ekanini tushuntira olasiz.
  • Windows'da winget bilan dastur qidira, o'rnata va yangilay olasiz.
  • macOS'dagi brew va Linux'dagi apt buyruqlarini o'qiy olasiz, apt update va apt upgrade farqini bilasiz.
  • O'rnatiladigan (installer) va ko'chma (portable) dasturni farqlaysiz.
  • command not found xatosi PATH bilan qanday bog'liqligini tushunasiz.

Oldin bilishingiz kerak: Operatsion tizim nima: kernel, jarayon va oqim, Yo'llar (path): absolyut va nisbiy, Fayl ruxsatlari va foydalanuvchilar.

1. Nega bu kerak?

Aziz yangi noutbuk oldi. Unga 10 ta dastur kerak: brauzer, Telegram, kod yozish dasturi, Git va boshqalar. Odatdagi yo'l shunday:

  1. Google'da dastur nomini qidirish.
  2. Rasmiy saytni reklama saytlaridan ajratish.
  3. Faylni yuklab, "Next, Next, Next" bosish.
  4. Buni 10 marta takrorlash.

Bir soat ketadi. Ustiga xavf bor: qidiruvda birinchi chiqqan sayt ba'zan soxta bo'ladi va dastur o'rniga virus beradi. Yarim yildan keyin esa 10 ta dasturni yangilash kerak — yana shu yo'l.

Dasturchilar buni boshqacha qiladi. Ular bitta buyruq yozadi, qolganini paket menejeri bajaradi.

2. Paket menejeri nima?

2.1 Asosiy atamalar

Telefoningizdagi Play Market yoki App Store'ni eslang. Siz dastur nomini yozasiz, "O'rnatish" bosasiz, qolganini do'kon o'zi qiladi. Paket menejeri — kompyuter uchun xuddi shunday do'kon, faqat u terminalda ishlaydi.

  • Paket (package) — o'rnatishga tayyor dastur va u haqidagi ma'lumot: nomi, versiyasi, nimaga muhtojligi. Xuddi yorlig'i bor quti kabi.
  • Bog'liqlik (dependency) — dastur ishlashi uchun kerak bo'lgan boshqa paket. Masalan, rasm tahrirlovchi dastur rasm o'qish kutubxonasiga muhtoj bo'lishi mumkin.
  • Katalog — tekshirilgan paketlarning internetdagi ro'yxati, do'kon vitrinasi kabi. (Bu yerda "papka" ma'nosida emas.)
  • Paket menejeri (package manager) — paketlarni katalogdan topib, bog'liqliklari bilan birga o'rnatadigan dastur.

Paket menejeri uch ishni o'zi bajaradi:

  1. Dasturni tekshirilgan katalogdan yuklaydi — soxta saytga tushib qolmaysiz.
  2. Bog'liqliklarni topib, birga o'rnatadi.
  3. Keyinroq hamma dasturni bitta buyruq bilan yangilaydi.

2.2 Har tizimning o'z menejeri

Tizim Paket menejeri Kim yaratgan
Windows 10/11 winget Microsoft, tizim bilan keladi
Windows (qo'shimcha) Scoop, Chocolatey Hamjamiyat
macOS Homebrew (brew) Hamjamiyat, alohida o'rnatiladi
Ubuntu, Debian apt Tizim bilan keladi

Linux'ning boshqa turlarida boshqa nomlar uchraydi (Fedora'da dnf), lekin g'oya bir xil.

Maslahat: Keyinroq kursda "paket menejeri" so'zini yana eshitasiz — npm. U JavaScript kutubxonalari uchun, bu darsdagilar esa butun kompyuter dasturlari uchun. G'oya bir xil, npm ni alohida qismda o'rganamiz.

Tekshirib ko'ring: Paket menejeri "bog'liqliklarni o'zi o'rnatadi" deganda nima nazarda tutiladi?

Javob

Dastur ishlashi uchun boshqa paketlar kerak bo'lsa, menejer ularni ham topib, birga o'rnatadi. Siz ularni o'zingiz qidirib yurmaysiz. Qo'lda o'rnatishda bittasi yetishmasa, dastur ishga tushmay qolardi.

3. Windows: winget bilan birinchi o'rnatish

3.1 PowerShell'ni ochish

Buyruqlar terminal deb ataluvchi oynada yoziladi. U nima ekanini Terminal, shell va prompt darsida to'liq ko'ramiz. Hozir faqat uni ochamiz:

  1. Klaviaturada Windows tugmasini bosing.
  2. PowerShell deb yozing va chiqqan dasturni oching.
  3. Qora yoki ko'k oynada miltillab turgan kursor paydo bo'ladi. Buyruqni yozib, Enter bosasiz.

Avval winget borligini tekshiramiz:

powershell
winget --version
text
v1.29.380

Versiya raqami sizda boshqacha bo'lishi mumkin — asosiysi, raqam chiqdi. Xato chiqsa, darsning "Ko'p uchraydigan xatolar" bo'limiga qarang.

3.2 Qidirish

Git'ni qidiramiz. Git — kod tarixini saqlaydigan dastur, u bilan birga Git Bash terminali ham keladi. Keyingi darslarda bizga aynan Git Bash kerak bo'ladi.

powershell
winget search --id Git.Git -e

Buyruqdagi qo'shimchalar:

  • search — "qidir".
  • --id Git.Git — paketning katalogdagi aniq nomi (ID). ID odatda "Ishlab chiqaruvchi.Dastur" ko'rinishida bo'ladi.
  • -e — "aynan shu nom" (exact). Busiz Git so'zi bor o'nlab paket chiqadi.

Bunday qo'shimchalar flag deb ataladi — Buyruq anatomiyasi darsida batafsil ko'ramiz. Natija (biz Windows 11 da ishga tushirdik):

text
Name Id      Version
---------------------
Git  Git.Git 2.55.0.3

Birinchi marta winget katalog shartlariga rozilik so'rashi mumkin: Do you agree to all the source agreements terms? — Y bosib, Enter bosing.

3.3 O'rnatish

powershell
winget install --id Git.Git -e

winget o'rnatuvchini yuklaydi, uning buzilmaganini tekshiradi va o'rnatadi. Windows "Bu dasturga o'zgartirish kiritishga ruxsat berasizmi?" deb so'rashi mumkin — bu UAC oynasi, "Ha" bosing. Oxirida Successfully installed ("muvaffaqiyatli o'rnatildi") yozuvi chiqadi.

3.4 Boshqa kerakli buyruqlar

Buyruq Nima qiladi
winget search telegram Katalogdan qidiradi
winget install --id Git.Git -e O'rnatadi
winget list Kompyuterdagi dasturlar ro'yxati
winget upgrade Qaysilarining yangi versiyasi borligini ko'rsatadi
winget upgrade --all Hammasini yangilaydi
winget uninstall --id Git.Git -e O'chiradi

Scoop va Chocolatey ham shunday ishlaydi: scoop install git, choco install git. Scoop Administrator huquqisiz, foydalanuvchi papkasiga o'rnatadi. Chocolatey odatda Administrator huquqini so'raydi. Boshlash uchun winget yetarli.

Tekshirib ko'ring: winget upgrade va winget upgrade --all farqi nima?

Javob

winget upgrade faqat ro'yxat ko'rsatadi: qaysi dasturning yangi versiyasi chiqqan. Hech narsani o'zgartirmaydi. winget upgrade --all esa shu ro'yxatdagi hamma dasturni haqiqatan yangilaydi.

4. macOS va Linux: brew va apt

Bu bo'limdagi buyruqlar macOS va Ubuntu uchun. Windows'da bo'lsangiz, tanishib chiqing: serverlar deyarli hammasi Linux'da ishlaydi, keyingi darsda o'rnatadigan WSL'da (Windows ichidagi Linux) esa apt sizda ham ishlaydi.

4.1 macOS: Homebrew

Homebrew macOS bilan kelmaydi. U brew.sh rasmiy saytidagi bitta qatorli buyruq bilan o'rnatiladi — buyruqni o'sha saytdan nusxalang. Keyin:

bash
brew install git
brew update
brew upgrade
brew uninstall git
  • brew install git — o'rnatadi.
  • brew update — Homebrew'ning o'zini va katalogni yangilaydi.
  • brew upgrade — o'rnatilgan dasturlarni yangilaydi.
  • brew uninstall git — o'chiradi.

Oynali, "katta" dasturlar --cask bilan o'rnatiladi: brew install --cask telegram.

4.2 Ubuntu Linux: apt

Serverlarning ko'pchiligida Ubuntu turadi, shuning uchun apt ni albatta bilish kerak:

bash
sudo apt update
sudo apt upgrade
sudo apt install git
sudo apt remove git

sudo — "bu buyruqni administrator huquqi bilan bajar". Uni Fayl ruxsatlari darsida ko'rgan edik. Dastur o'rnatish butun tizimni o'zgartiradi, shuning uchun sudo so'raladi.

Eng ko'p chalkashtiriladigan juftlik:

Buyruq Nima qiladi O'xshatish
apt update Katalogni yangilaydi, dasturlarga tegmaydi Do'konning yangi narx varag'ini olish
apt upgrade Dasturlarni haqiqatan yangilaydi Varaqqa qarab xarid qilish

Shuning uchun ular ko'pincha ketma-ket yoziladi: avval update, keyin upgrade yoki install.

Tekshirib ko'ring: Yangi Ubuntu serverda sudo apt install git yozildi va Unable to locate package git ("git paketi topilmadi") xatosi chiqdi. Qaysi buyruq unutilgan bo'lishi mumkin?

Javob

sudo apt update. Yangi serverda katalog hali yuklanmagan bo'ladi, shuning uchun apt paketni "bilmaydi". Avval update katalogni oladi, keyin install paketni topadi.

5. Installer va portable

Dastur kompyuterga ikki xil ko'rinishda keladi.

5.1 O'rnatiladigan dastur (installer)

Maxsus o'rnatuvchi fayl: Windows'da .exe yoki .msi, macOS'da .dmg yoki .pkg, Ubuntu'da .deb. U:

  • fayllarni tizim papkasiga ko'chiradi (C:\Program Files, /usr/bin, /Applications);
  • Windows'da reestrga (registry — Windows sozlamalari saqlanadigan baza) yozuv qo'shadi;
  • ko'pincha dastur papkasini PATH ro'yxatiga qo'shadi (buni quyida ko'ramiz);
  • "Dasturlarni o'chirish" ro'yxatida paydo bo'ladi.

5.2 Ko'chma dastur (portable)

Bitta papka yoki .zip arxiv. Ochasiz va ishlatasiz, hech narsa o'rnatilmaydi. Papkani fleshkaga yozib, boshqa kompyuterda ham ochsa bo'ladi. O'chirish uchun papkani o'chirish yetarli.

Lekin ko'chma dastur o'zini PATH'ga qo'shmaydi. Uni terminalda nomi bilan chaqirmoqchi bo'lsangiz, papkasini PATH'ga o'zingiz qo'shasiz.

Tekshirib ko'ring: Ish kompyuterida Administrator huquqi yo'q. Qaysi turdagi dasturni ishlatish osonroq va nega?

Javob

Ko'chma (portable) dasturni. U tizim papkalariga yozmaydi va reestrga tegmaydi, shuning uchun Administrator huquqi kerak emas. Scoop ham shu sababli qulay: u dasturlarni foydalanuvchi papkasiga qo'yadi.

6. Muhit o'zgaruvchisi nima?

PATH'ni tushunish uchun avval bitta atama kerak.

Muhit o'zgaruvchisi (environment variable) — operatsion tizim dasturlar uchun saqlab qo'yadigan "nom — qiymat" juftligi. Uyning kirish eshigidagi e'lonlar taxtasini tasavvur qiling: "Uy egasi: Ali", "Qo'ng'iroq ishlamaydi". Har kim kirishda o'qiydi.

Masalan, USERNAME o'zgaruvchisida foydalanuvchi nomi turadi. Eng muhimi esa PATH. Muhit o'zgaruvchilarini to'liq Muhit o'zgaruvchilari va PATH darsida o'rganamiz.

7. PATH: terminal dasturni qayerdan qidiradi?

7.1 Muammo

Git'ni o'rnatdingiz. Terminalga git deb yozdingiz. Javob:

text
git : The term 'git' is not recognized as the name of a cmdlet,
function, script file, or operable program.

Tarjimasi: "git atamasi buyruq, funksiya, skript fayli yoki ishga tushadigan dastur nomi sifatida tanilmadi". Qisqasi — "bunday buyruqni topmadim". Axir dastur o'rnatilgan-ku!

7.2 Terminal qanday qidiradi

Terminal butun diskni qidirmaydi — millionlab fayl ichidan qidirish juda sekin bo'lardi. U faqat PATH ro'yxatidagi papkalarga qaraydi. PATH — papkalar ro'yxati saqlangan muhit o'zgaruvchisi.

flowchart TD
  A["Siz yozdingiz: git"] --> B{"PATH, 1-papka:<br/>C:\Windows\System32"}
  B -- "git yo'q" --> C{"2-papka:<br/>C:\Program Files\Python"}
  C -- "git yo'q" --> D{"3-papka:<br/>C:\Program Files\Git\cmd"}
  D -- "git.exe bor" --> E["Topildi, ishga tushadi"]
  D -- "hech qayerda yo'q" --> F["Xato: not recognized<br/>yoki command not found"]

Terminal papkalarni tartib bilan tekshiradi va birinchi topgan joyida to'xtaydi. Hech qayerda topmasa — xato beradi.

7.3 PATH'ni ko'rish

PowerShell'da (papkalar ; bilan ajratilgan):

powershell
$env:Path -split ';'

Bu buyruq PATH qiymatini olib, ; belgisidan bo'lib, har papkani alohida qatorda chiqaradi. Uning tuzilishini PowerShell darsida ko'ramiz — hozir natijaga qarash yetarli.

Bash'da (macOS, Linux, Git Bash — papkalar : bilan ajratilgan):

bash
echo $PATH

Dastur qayerdan topilayotganini ham so'rash mumkin. PowerShell'da where.exe git, bash'da which git:

text
C:\Program Files\Git\cmd\git.exe

(Sizda yo'l boshqacha bo'lishi mumkin — Git qayerga o'rnatilganiga qarab.)

7.4 Xato har xil ko'rinadi

Bitta muammo — har terminalda boshqacha matn:

Qayerda Xato matni
PowerShell The term 'git' is not recognized...
cmd (eski Windows terminali) 'git' is not recognized as an internal or external command
bash (Linux, Git Bash) bash: git: command not found
zsh (macOS) zsh: command not found: git

Hammasining ma'nosi bir: "PATH'dagi papkalarning hech birida bunday dastur yo'q".

7.5 PATH'ga papka qo'shish (Windows)

Paket menejerlari buni o'zi qiladi. Ko'chma dasturni qo'lda qo'shish kerak bo'lsa:

  1. Windows tugmasini bosib, environment variables deb yozing.
  2. "Edit the system environment variables" ni oching, keyin "Environment Variables..." tugmasini bosing.
  3. Yuqoridagi ro'yxatda (faqat sizning foydalanuvchingiz uchun) Path ni tanlab, "Edit" bosing.
  4. "New" bosing va dastur turgan papkaning to'liq yo'lini yozing. OK bosing.
  5. Terminalni yopib, qayta oching.

Tekshirib ko'ring: PATH'da ikki papka bor va ikkalasida ham node.exe turibdi: avval C:\eski-node, keyin C:\Program Files\nodejs. node yozilganda qaysi biri ishga tushadi?

Javob

C:\eski-node dagisi. Terminal PATH'ni tartib bilan tekshiradi va birinchi topgan dasturni ishga tushiradi. Shuning uchun "yangi versiyani o'rnatdim, lekin eski versiya ishlayapti" degan muammo ko'pincha PATH tartibidan chiqadi.

8. Ko'p uchraydigan xatolar

8.1 O'rnatdim, lekin terminal topmayapti

Sababi: terminal PATH'ni faqat ochilgan paytda bir marta o'qiydi. Dastur o'rnatilganda ochiq turgan oyna yangi PATH'dan bexabar. Tuzatish: terminalni yopib, qayta oching. Yordam bermasa — kompyuterdan chiqib, qayta kiring.

8.2 winget ning o'zi topilmaydi

text
winget : The term 'winget' is not recognized as the name of a cmdlet...

Sababi: eski Windows 10'da winget bo'lmasligi mumkin. U "App Installer" (Ilova o'rnatuvchisi) dasturi bilan keladi. Tuzatish: Microsoft Store'da "App Installer" ni topib, o'rnating yoki yangilang.

8.3 apt va sudosiz o'rnatish

text
E: Could not open lock file /var/lib/dpkg/lock-frontend
- open (13: Permission denied)
E: Unable to acquire the dpkg frontend lock
(/var/lib/dpkg/lock-frontend), are you root?

Xabarda apt ham, git ham tilga olinmagan — faqat qandaydir "lock file". Sababi: "lock file" — apt bir vaqtda ikki o'rnatish ketmasligi uchun qo'yadigan qulf fayli. Uni ochish uchun administrator huquqi kerak. Oxirgi savol are you root? — "siz administratormisiz?" — asosiy ishora. Tuzatish: buyruq boshiga sudo qo'ying.

8.4 Soxta saytdan yuklash

Paket menejerida yo'q dasturni qo'lda yuklash kerak bo'lsa — faqat rasmiy saytdan oling. Qidiruvdagi "Reklama" belgili natijalarni bosmang. Bu mavzu Ish joyini tayyorlash darsidagi fishing bilan bir xil.

9. Mashqlar

1-mashq (oson): Mos buyruq

Uch dasturchi Git o'rnatmoqchi: Malika — macOS'da, Jasur — Ubuntu serverda, Ali — Windows 11'da. Har biri uchun o'rnatish buyrug'ini yozing. Ishora: darsdagi winget, brew va apt bo'limlariga qarang; Jasurda katalog yangilanmagan deb hisoblang.

Yechim
  • Malika: brew install git
  • Jasur: avval sudo apt update, keyin sudo apt install git
  • Ali: winget install --id Git.Git -e

Jasurda ikki buyruq, chunki yangi serverda katalog hali yuklanmagan. sudo esa tizimga dastur o'rnatish uchun kerak.

2-mashq (o'rta): Git'ni o'zingiz o'rnating

Windows'da bo'lsangiz, Git'ni haqiqatan o'rnating (keyingi darslarda Git Bash kerak bo'ladi):

  1. PowerShell'ni oching (Windows tugmasi → PowerShell).
  2. Git'ni ID bilan qidiring.
  3. O'rnating.
  4. Terminalni yopib, qayta oching va git --version yozing.

macOS'da bo'lsangiz, git --version yozing: Git bo'lmasa, tizim o'zi o'rnatishni taklif qiladi.

Yechim
powershell
winget search --id Git.Git -e
winget install --id Git.Git -e

Terminalni qayta ochgandan keyin:

powershell
git --version
text
git version 2.55.0.windows.3

Raqam sizda boshqacha bo'lishi mumkin. Agar not recognized chiqsa — terminalni qayta ochmagansiz ("O'rnatdim, lekin terminal topmayapti" xatosi). Start menyusida endi "Git Bash" dasturi ham paydo bo'ladi.

3-mashq (qiyin): Tergovchi bo'ling

Jasur "Python"ni .zip arxiv sifatida yuklab, D:\dasturlar\python papkasiga ochdi. Papka ichida python.exe bor. Terminalda python --version yozsa, not recognized chiqyapti. $env:Path -split ';' natijasida bu papka yo'q.

  1. Muammo nimada?
  2. Uni qanday tuzatish kerak?
  3. Tuzatgandan keyin ham ochiq turgan terminalda xato chiqsa — nega?
Yechim
  1. Bu ko'chma (portable) dastur. U o'zini PATH'ga qo'shmagan, terminal esa faqat PATH'dagi papkalardan qidiradi.
  2. D:\dasturlar\python papkasini PATH'ga qo'shish kerak ("PATH'ga papka qo'shish" bo'limidagi qadamlar). Yoki bundan ham yaxshisi — Python'ni paket menejeri bilan o'rnatish: u PATH'ni o'zi to'g'rilaydi.
  3. Ochiq turgan terminal PATH'ni ochilgan paytda o'qib olgan. Yangi PATH'ni ko'rishi uchun uni yopib, qayta ochish kerak.

10. Real ishda

  • Yangi kompyuterni sozlash. Dasturchilar kerakli dasturlar ro'yxatini faylda saqlaydi. Windows'da winget export ro'yxatni faylga yozadi, winget import esa boshqa kompyuterga hammasini o'rnatadi. macOS'da shu ish uchun Brewfile ishlatiladi.
  • Serverlar. Ubuntu serverga kerakli dasturlar apt bilan o'rnatiladi. Serverni sozlash yo'riqnomalarining birinchi qatori ko'pincha sudo apt update.
  • Jamoada. "Menda ishlayapti, senda yo'q" muammosining ko'p sababi — har xil versiya yoki noto'g'ri PATH. Buni tez aniqlay oladigan dasturchi qadrlanadi.
  • Keyingi darslarda. Node.js'ni ham shunday o'rnatamiz: winget install --id OpenJS.NodeJS.LTS -e. Batafsil — Node.js darsida.

Xulosa

  • Paket menejeri dasturni rasmiy katalogdan bog'liqliklari bilan birga bitta buyruqda o'rnatadi va yangilaydi.
  • Windows — winget, macOS — brew, Ubuntu — apt (sudo bilan).
  • apt update katalogni yangilaydi, apt upgrade dasturlarni yangilaydi.
  • Installer tizimga o'rnatadi va odatda PATH'ga qo'shadi; portable — shunchaki papka.
  • PATH — terminal dastur qidiradigan papkalar ro'yxati. not recognized yoki command not found — "PATH'da topilmadi".
  • Dastur o'rnatgandan keyin terminalni qayta oching.

Keyingi dars: WSL2: Windows ichida Linux — Windows kompyuteringizga haqiqiy Linux o'rnatib, server bilan bir xil muhitda ishlashni o'rganamiz.

Ulashish:Telegram'da

Izohlar (0)

Izoh yozish uchun kiring.

  • Hozircha izoh yo'q. Birinchi bo'ling!
Dastur o'rnatish va paket menejerlari (OS darajasida) — IlmHamroh