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

Linuxis ja macOS-is paigaldatakse tarkvara enamasti paketihalduri abil.

Loogika

Paketihaldur aitab tarkvara paigaldada nii, et sõltuvused ja versioonid püsiksid hallatavad.

See peatükk on seotud:

  • süsteemi seadistamisega
  • venv, pip ja npm teemadega
  • arenduskeskkonna ülesseadmisega

Kiirspikker

  • apt install pakett paigaldab paketi Debiani või Ubuntu süsteemis
  • dnf install pakett paigaldab paketi Fedoras
  • pacman -S pakett paigaldab paketi Arch Linuxis
  • brew install pakett paigaldab paketi macOS-is või Homebrew Linuxis
  • python3 -m pip install pakett paigaldab Pythoni paketi
  • npm install paigaldab projekti JavaScripti sõltuvused

Levinud paketihaldurid

  • apt Debianis ja Ubuntus
  • dnf Fedoras
  • pacman Arch Linuxis
  • brew macOS-is ja mõnikord ka Linuxis

Süsteemi paketihaldur vs keele paketihaldur

Oluline on eristada kaht taset:

  • süsteemi paketihaldur paigaldab tööriistu ja teeke operatsioonisüsteemi tasemel
  • keele paketihaldur paigaldab sõltuvusi konkreetse programmeerimiskeele ökosüsteemis

Näited:

  • apt, dnf, pacman, brew on süsteemi- või kasutajataseme paketihaldurid
  • pip haldab Pythoni pakette
  • npm haldab JavaScripti ja Node.js pakette

See tähendab, et pip install requests ei ole sama asi mis apt install python3-requests, kuigi mõlemad võivad puudutada Pythonit.

Praktiline Homebrew baas macOS-is

Kui teed selle õpiku tööriistad macOS-is kiiresti valmis, siis üks mõistlik algus on:


brew install python3 pandoc node sqlite jq ripgrep tmux gh
brew install --cask docker-desktop basictex

See annab:

  • python3, pip, venv
  • pandoc Markdowni konverteerimiseks
  • node ja npm
  • sqlite3
  • jq, ripgrep, tmux, gh
  • väiksema LaTeX-i baaskomplekti ja Dockeri

Kui tahad LaTeX-i võimalikult täielikku komplekti, siis võid basictex asemel kasutada:


brew install --cask mactex-no-gui

Praktikas ei paigaldata basictex ja mactex-no-gui cask'e tavaliselt koos. basictex on väiksem, mactex-no-gui on suurem ja täielikum.

Sama loogika on automatiseeritud ka skriptis:


./scripts/setup-mac.sh

Käivita need käsud


sudo apt update
sudo apt install htop

sudo dnf install htop

sudo pacman -S htop

brew install htop

python3 -m pip install requests
python3 -m pip install --user pipx

npm install
npm install lodash

Kõige tavalisemad lipud

  • apt install paigaldab paketi
  • apt remove eemaldab paketi
  • apt search otsib pakette nime järgi
  • dnf install paigaldab paketi Fedoras
  • pacman -S paigaldab paketi Arch Linuxis
  • brew install paigaldab paketi Homebrew kaudu
  • python3 -m pip install paigaldab Pythoni paketi
  • npm install paigaldab projekti sõltuvused

Soovitus

Märgi alati selgelt, millise distributsiooni käske parajasti näidatakse, sest paketihaldus ei ole kõigis süsteemides ühesugune.

Tavalised tegevused


sudo apt search ripgrep
sudo dnf search ripgrep
brew search ripgrep

sudo apt remove htop
sudo dnf remove htop
brew uninstall htop

python3 -m pip list
python3 -m pip show requests

npm list
npm run dev

pip kohta oluline märkus

Pythoni puhul on turvalisem kasutada kujut:


python3 -m pip install ...

mitte lihtsalt:


pip install ...

Nii on selgem, millise Pythoni tõlgendiga pakette paigaldatakse.

npm kohta oluline märkus

npm töötab tihti projekti sees koos failiga package.json.

  • npm install paigaldab projekti sõltuvused
  • npm run nimi käivitab projekti skripti
  • globaalseid paigaldusi tasub teha ettevaatusega ja ainult siis, kui selleks on konkreetne põhjus

Kontrollkäigud pärast paigaldust


python3 --version
python3 -m pip --version
node --version
npm --version
pandoc --version
sqlite3 --version

Minitest

  1. Uuri, milline paketihaldur sinu masinas on.
  2. Otsi selle abil paketti ripgrep või htop.
  3. Vaata, kuidas kuvatakse info ühe konkreetse paketi kohta.
  4. Kontrolli, kas sinu masinas on olemas python3, pip ja npm.
  5. Kui kasutad macOS-i, võrdle oma masinat siin soovitatud brew baaskomplektiga.