Beetaversioon: sisu on enamasti terviklik ja avalikuks katsetamiseks valmis, kuid vajab veel tehnilist, keelelist ja kasutatavuse kontrolli.

Peatüki vaade

Linux/Unix/macOS käsurea kiirõpik

Praegu loed peatükki Paketihaldus: apt, dnf, pacman, brew, mis kuulub osasse Osa II: Süsteemi pilt ja haldus.

Paketihaldus: apt, dnf, pacman, brew

Paketihaldur paigaldab tarkvara koos vajalike sõltuvustega ja hoiab süsteemi seisundi jälgitavana. Peamine oskus on valida õige tase: kas paigaldad tööriista kogu süsteemile, oma kasutajale või ainult ühele projektile.

Kiire orientiir

TööriistKus tavaliseltMilleks
aptDebian, Ubuntusüsteemi paketid
dnfFedorasüsteemi paketid
pacmanArch Linuxsüsteemi paketid
brewmacOS, vahel Linuxkasutajataseme tööriistad
python3 -m pipPythonPythoni paketid
npmNode.jsJavaScripti projektid

Vali korraga ainult oma süsteemile või projektile sobiv rida. Ubuntu kasutaja ei käivita Fedora käske ja macOS-i kasutaja ei paigalda Homebrew pakette käsuga sudo apt.

Tüüpilised algaja vead

  • käivitatakse mitu eri distributsiooni paigalduskäsku järjest
  • kasutatakse sudo-t seal, kus paketihaldur seda ei vaja, näiteks Homebrew puhul
  • paigaldatakse Pythoni projektiteek süsteemi, kuigi õigem oleks venv
  • arvatakse, et Homebrew on macOS-is juba olemas
  • ei loeta paigalduslogi lõppu, kus sageli on tegelik veateade või järgmine juhis

Vali oma süsteemi käsk

Otsi paketti enne paigaldamist:


apt search ripgrep
dnf search ripgrep
pacman -Ss ripgrep
brew search ripgrep

Paigalda ainult oma süsteemi rida:


sudo apt install ripgrep
sudo dnf install ripgrep
sudo pacman -S ripgrep
brew install ripgrep

Kontrolli pärast paigaldust:


rg --version
command -v rg

Kui paigaldus õnnestub, näed tavaliselt logi, allalaadimist, sõltuvusi ja lõpuks vaikset käsuviipa. Kui käsk ei ilmu pärast paigaldust nähtavale, kontrolli PATH-i ja ava vajadusel uus terminaliaken.

Miks mõnikord on vaja sudo

Linuxi süsteemipaketid muudavad tavaliselt süsteemi katalooge. Seetõttu kasutatakse tihti:


sudo apt install htop

Homebrew töötab enamasti kasutaja õigustes:


brew install htop

Ära lisa sudo-t lihtsalt harjumusest. Kui paketihaldur seda ei küsi, on parem jätta see kasutamata.

update ja upgrade

Nimed on sarnased, aga tähendus on erinev.

KujuMida teeb
sudo apt updatevärskendab paketinimekirja
sudo apt upgradeuuendab juba paigaldatud paketid
brew updatevärskendab Homebrew pakiretsepte
brew upgradeuuendab Homebrew paketid

Ära käivita suurt upgrade-i siis, kui sul on kohe vaja arvutit tööks või esitluseks. Uuendamine võib võtta aega ja mõnikord küsida lisavalikuid.

Paketi info ja eemaldamine

Vali ainult oma süsteemi rida. Info küsimine on vaatamine; eemaldamine muudab paigaldatud tarkvara.

SüsteemLoe kirjeldustEemalda teadlikult paigaldatud näidispakett
Debian / Ubuntuapt show ripgrepsudo apt remove ripgrep
Fedoradnf info ripgrepsudo dnf remove ripgrep
Arch Linuxpacman -Si ripgrepsudo pacman -R ripgrep
Homebrewbrew info ripgrepbrew uninstall ripgrep

Ära eemalda süsteemiteeke ega pakette, mille rolli sa ei tunne. Loe paketihalduri kavandatud muudatused enne kinnitamist läbi.

Süsteemi paketihaldur ja keele paketihaldur

apt install python3-requests ja python3 -m pip install requests ei ole sama asi.

KujuTaseMillal kasutada
sudo apt install python3-requestssüsteemkui distributsioonipakett on teadlik valik
python3 -m pip install requestsPythonkui paigaldad Pythoni paketi aktiivsesse keskkonda
npm installprojektkui projektis on package.json

Pythoni projektis on tavaliselt parem kasutada virtuaalkeskkonda:


python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install requests
python3 -m pip show requests

Node.js projektis paigaldatakse sõltuvused projekti kataloogis:


npm install
npm list --depth=0
npm run dev

Kui käsk npm run dev ei tööta, vaata kõigepealt package.json faili. Seal on kirjas, millised scripts nimed on üldse olemas.

macOS ja Homebrew

macOS-is on osa Unixi käske juba olemas, aga Homebrew tuleb tavaliselt ise paigaldada. Seda ei pea tegema enne, kui vajad tööriista, mida süsteemis pole või mille uuemat versiooni on vaja.

Näiteks:


brew install ripgrep jq tmux gh

Graafilisi rakendusi paigaldatakse Homebrew'ga sageli valiku --cask abil:


brew install --cask docker-desktop

Kui vajad macOS-is Linuxi võrgukäskude sarnaseid nimesid, on üks võimalus:


brew install iproute2mac

See on valikuline lisakiht. Enamasti piisab macOS-is sisseehitatud käskudest ifconfig, lsof ja netstat.

Kui paigaldus ebaõnnestub

Kõigepealt loe veateate viimaseid ridu. Seal on tavaliselt põhjus.

SümptomTüüpiline põhjusEsimene kontroll
package not foundnimi on vale või nimekiri vanaotsi paketti ja tee vajadusel update
permission deniedkäsk vajab kõrgemaid õigusikasuta süsteemipaketiga sudo, aga mitte pimesi
lock või database is lockedteine paketihaldur töötaboota, ära kustuta lukufaile käsitsi
command not found pärast paigaldustkäsk pole PATH-is või nimi on teinecommand -v nimi, type -a nimi
pip-i või npm-i õiguste vigapaigaldad valesse keskkondakasuta projekti virtuaalkeskkonda või projekti kataloogi

Minitest

  1. Ütle, milline süsteemi paketihaldur sobib sinu masinale.
  2. Otsi sellega paketti ripgrep või htop.
  3. Loe ühe paketi infot ilma seda paigaldamata.
  4. Selgita, miks pip install ja apt install ei ole sama tase.
  5. Kontrolli, kas python3, pip, node ja npm on sinu masinas olemas.
  6. Kui kasutad macOS-i, kontrolli, kas brew on olemas käsuga command -v brew.

Peatüki täisspikker

Baas ja süsteemipilt

Eesmärk

vali õige tase: süsteemi paketihaldur tööriistadele, keele paketihaldur teekidele ja projekti sõltuvused võimalusel projekti sisse

Põhikujud

  • apt search ripgrepotsi Debianis või Ubuntus
  • sudo apt install ripgreppaigalda Debianis või Ubuntus
  • sudo dnf install ripgreppaigalda Fedoras
  • sudo pacman -S ripgreppaigalda Archis
  • brew install ripgreppaigalda Homebrew'ga
  • python3 -m pip install requestspaigalda Pythoni pakett aktiivsesse keskkonda
  • npm installpaigalda projekti Node.js sõltuvused
  • command -v rgkontrolli, kas käsk leitakse

Tööriistad ja tasemed

  • apt, dnf, pacmanLinuxi süsteemipaketid
  • brewmacOS-i kasutajataseme tööriistad
  • updatevärskenda nimekirja või retsepte
  • upgradeuuenda paigaldatud paketid
  • --caskHomebrew graafiline rakendus
  • venvPythoni projekti eraldi keskkond
  • package.jsonNode.js projekti sõltuvused