Scoop - správca balíčkov
Cieľ
Chcem pomocou nástroja Scoop pridávať, odoberať a celkovo spravovať softvérové balíčky v prostredí operačného systému MS Windows.
Riešenie
Momentálne v prostredí MS Windows existuje niekoľko rôznych správcov balíčkov / inštalátorov, len na ilustráciu:
- MS Store
- Winget
- Chocolatey
- Scoop
Mňa vyslovene zaujal posledný menovaný. Scoop je zaujímavý okrem iného aj preto, že:
- v predvolenom nastavení všetko inštaluje do domáceho adresára
- nevyžaduje administrátorské oprávnenia
- nie je potrebne pridávať po každej inštalácii novu cestu ku binárkam do premennej prostredia, bo všetky nainštalované spustiteľné súbory sú v jednom adresári
~\scoop\shims\ - nemali by vznikať problémy so vzájomnými závislosťami, keďže nainštalované programy sú izolované a nezávisle na sebe navzájom
Inštalácia nástroja Scoop
Správcu balíčkov Scoop môžem nainštalovať stiahnutím a vykonaním inštalačného skriptu. Samozrejme zdroju by som mal dôverovať, respektíve skript si môžem kuknúť na zadávanej adrese alebo na
gite
ešte pred jeho spustením. Nasledujúce príkazy musím zadávať v prostredí PowerShell vo verzii 5.1 a vyššie.
# mozem si najskor overit ci mam povolene vykonavat skripty
Get-ExecutionPolicy
# ak este nie, mozem povolit
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
# stiahnem a vykonam instalacny skript
Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression
# alebo to iste, ale v skratenej podobe
irm get.scoop.sh | iex
V prípade ak chcem inštalovať na iné ako predvolené miesto (C:\Users\<meno>\scoop), môžem inštalačný skript len stiahnuť a spustiť ho neskôr aj s vlastnými parametrami.
irm get.scoop.sh -outfile 'installScoop.ps1'
# alebo ak musim stahovat cez proxy
irm get.scoop.sh -Proxy 'http://127.0.0.1:3128' -OutFile 'installScoop.ps1'
# dalsie parametre mozem kuknut na gite:
# https://github.com/ScoopInstaller/Install/blob/master/install.ps1
./installScoop.ps1 -ScoopDir 'D:\App\Scoop'
# alebo aj instalovat cez proxy
./installScoop.ps1 -ScoopDir 'C:\App\Scoop' -Proxy 'http://127.0.0.1:3128'
Ak potrebujem komunikovať cez proxy stále, aj pri ďalšom používaní Scoop, môžem ho nastaviť.
scoop config proxy 127.0.0.1:3128
Softvérové katalógy
Zoznamy softvérových balíkov, ktoré si môžem nainštalovať, sa tuná nazývajú, že bucket.
V predvolenom nastavení Scoop využíva len jeden softvérový katalóg / bucket - main.
# zobrazi dostupne buckety/katalogy
scoop bucket known
# zobrazi zoznam pridanych bucketov
scoop bucket list
Existuje veľké množstvo bucketov, momentálne ich stránka zobrazuje 1447, niektoré obsahujú tisíce aplikácii, no niektoré len jednu :)
Prehlaď oficiálnych katalógov:
main- jednoduché programy, bez grafického rozhrania, slobodný softvérextras- aplikácie, ktoré nespĺňajú kritéria pre zaradenie do bucketu mainversions- rôzne verzie programov (alfa, beta, nočné vydania, atď..)php- prakticky všetky vydania PHP od 5.2.10 až po najnovšienerd-fonts- nádherné fonty vhodne obzvlášť do terminálu alebo do vývojového prostrediagames- hry a herne emulátorynirsoft- plne priehrštie nástrojov vyvinutých Nirom Soferomjava- všetko okolo Javy (OpenJDK, Alibaba Dragonwell, Eclipse Temurin, Amazon Corretto)
V prípade záujmu môžem bucket jednoducho pridať či neskôr odstrániť.
# pridanie bucketu
scoop bucket add nerd-fonts
# zoznam pridanych bucketov
scoop bucket list
# odobratie bucketu
scoop bucket rm nerd-fonts
Vyhľadanie balíčkov
Po pridaní softvérového katalógu môžem požadovanú aplikáciu vyhľadávať - scoop search.
scoop search php
Výstupom je zoznam nájdených balíkov plus buckety odkiaľ sa prípadne nainštalujú.
Results from local buckets...
Name Version Source Binaries
---- ------- ------ --------
php-nts 8.3.1 main
php 8.3.1 main
php5.2.10-nts 5.2.10 php
php5.2.10 5.2.10 php
php5.2.11-nts 5.2.11 php
php5.2.11 5.2.11 php
...
php8.1-nts 8.1.27 php
php8.1 8.1.27 php
php8.2-nts 8.2.14 php
php8.2 8.2.14 php
php8.3-nts 8.3.1 php
php8.3 8.3.1 php
Balíčky môžem vyhľadávať aj priamo stránke projektu Scoop - Buckets .
Ak sa požadovaná aplikácia nachádza v jednom z pridaných bucketov, môžem o nej zobraziť podrobnejšie informácie príkazom scoop info.
scoop info php8.3
Výstupom je tabuľka s informáciami ako: presná verzia, bucket, licencia, nainštalované binárky atď.
Name : php8.3
Version : 8.3.1
Bucket : php
Website : https://windows.php.net/downloads/releases
License : PHP-3.01
Updated at : 20. 12. 2023 17:40:41
Updated by : github-actions[bot]
Binaries : php.exe | php-cgi.exe
Environment : PHP_INI_SCAN_DIR = <root>;<root>\conf.d;
Suggestions : extras/vcredist2019
Správa balíčkov
Požadovanú aplikáciu môžem nainštalovať pomocou príkazu scoop install.
# ak uz je bucket pridany, mozem rovno instalovat
scoop install python
# alebo najskor pridam bucket
scoop bucket add versions
scoop install versions/python27
Nainštalovanú aplikáciu môžem neskôr odinštalovať príkazom scoop uninstall.
scoop uninstall googlechrome
Nainštalované aplikácie môžem ďalej zobraziť (scoop list) alebo ich jednotlivo alebo naraz všetky aktualizovať na novšie verzie (scoop update).
# zobrazi zoznam vsetkych nainstalovanych aplikacii
scoop list
# mozem aktualizovat informacie o dostupnosti novsich
# verzii nastroja 'scoop' aj nainstalovanych balikov
scoop update
# zobrazi stav samotnej aplikacie 'scoop' a pridanych bucketov
# po predchadzajucom 'scoop update' zobrazi zoznam balikov,
# ktore maju dostupnu novsiu verziu
scoop status
# mozem aktualizvat len jednu, konkretnu aplikaciu
scoop update jq
# alebo mozem aktualizovat vsetky nainstalovane aplikacie
scoop update *