Mustand: sisu ei ole veel tehniliselt ega keeleliselt täielikult kontrollitud ega toimetatud.

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.

Loogika

Paketihalduses on kolm taset:

  1. süsteemi paketihaldur paigaldab käsureatööriistu ja süsteemiteeke
  2. keele paketihaldur paigaldab ühe programmeerimiskeele teeke
  3. projekti sõltuvused kuuluvad võimalusel projekti kataloogi või virtuaalkeskkonda

Kõige sagedasem algaja viga on paigaldada kõik ühe käsuga “kuhugi süsteemi”, mõtlemata, kes seda hiljem kasutab ja kust see leitakse.

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.

Uuendamine, info ja eemaldamine

Debianis ja Ubuntus värskendab apt update paketinimekirja, mitte veel kõiki programme.


sudo apt update
apt show ripgrep
sudo apt install ripgrep
sudo apt remove ripgrep

Fedoras on tavaline kuju:


dnf info ripgrep
sudo dnf install ripgrep
sudo dnf remove ripgrep

Arch Linuxis otsitakse ja paigaldatakse nii:


pacman -Ss ripgrep
sudo pacman -S ripgrep
sudo pacman -R ripgrep

Homebrew puhul:


brew info ripgrep
brew install ripgrep
brew uninstall ripgrep

Eemaldamise näited on siin väikese tööriista peal. Ära eemalda juhuslikult süsteemiteeke ega pakette, mille rollist sa aru ei saa.

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.

pip kuju

Pythoni puhul eelista kuju:


python3 -m pip install requests

mitte lihtsalt:


pip install requests

Nii on selgem, millise Pythoni tõlgendiga pakette paigaldatakse. See muutub eriti tähtsaks siis, kui arvutis on mitu Pythoni versiooni või aktiivne virtuaalkeskkond.

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's sageli --cask võtmega:


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.

Kontrollkäigud pärast paigaldust

Kontrolli tööriista olemasolu ja versiooni:


command -v python3
python3 --version
python3 -m pip --version
command -v node
node --version
npm --version

Kui käsk on paigaldatud, aga shell seda ei leia, kontrolli:


echo "$PATH"
command -v käsk
type -a käsk

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 või npm õiguste vigapaigaldad valesse tasemessekasuta 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 projektisõ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