Command line batch installer for Windows

    Command line batch installer for Windows

    O chestie super tare la Linux îi că poți instala foarte ușor toate apli­cați­ile de care ai nevoie din terminal cu sudo apt-get install (pe Debian-like distros). Pui comanda asta într-un shell file pe care îl execuți la re­in­sta­larea sistemului (sau mutare pe unul nou) și nu te mai chinuiești să instalezi tu totul cu mânuța.

    Până acuma existau câteva aplicații pentru Windows care îți permiteau să instalezi mai multe aplicații deodată (Ninite sau AllMyApps), dar erau limitate: erau GUI și aveau o paletă destul de limitată de aplicații, care nu se putea extinde de oricine.

    Vești bune: au apărut și pentru Windows package managere care lucrează de la linia de comandă și la care pot fi adăugate pachete de către oricine. Situația nu e la fel de perfectă ca pe Linux, dar se poate supraviețui.

    De-a lungul timpului au fost mai multe încercări de a face așa ceva, dar au cam eșuat: wpkg sau win-get, dar până acuma nu au avut priză la public.

    Chocolatey în schimb este destul de popular: are peste 1300 de pachete și mai mult de 1.3 milioane de instalări. Nu par a fi multe, dar câte aplicații aveți instalate oricum pe calculator? Eu înainte de re­in­sta­lare aveam sub 150 (cu toate cele 50 de aplicații care mi le instalează Visual Studio și SQL Server).

    Chocolatey se poate instala foarte ușor de la linia de comandă:

    @powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%systemdrive%chocolateybin

    Asta pornește o nouă instanță de PowerShell care apare are builtin webclient cu care se pot descarcă URL-uri arbitrare.

    După ce se instalează, putem instala ușor program cu ajutorul comenzii cinst. Pentru a vedea ce programe sunt disponi­bile: choco list pkgName sau choco search args. Pentru a șterge programe: cuninst (dar nu merge pentru toate programele, doar cele care sunt definite cum trebuie).

    Marea bubă la Chocolatey este faptul că pe Windows nu există conceptul de sudo, ci este UAC. Așa că pentru fiecare program care se instalează global (la toți userii) va apărea o fereastră de UAC. Din păcate, asta este by design de la Windows, nu prea ai ce face, decât să instalezi local.

    Și aici intervine Scoop. Acesta este similar cu Chocolatey, doar că are alt target: pro­gram­a­tori. Are o paletă mult mai mică de programe, dar le instalează local (no UAC prompt) și ma­jori­tatea pro­gramelor sunt pentru dezvoltat soft (Python, Ruby, gcc, GoW, etc).

    Scoop se instalează foarte similar cu Chocolatey:

    set-executionpolicy unrestricted -s cu iex (new-object net.webclient).downloadstring('https://get.scoop.sh')

    Iar apoi scoop install app instalează ce vrem noi (și îi în repository-urile Scoop).

    Săptămâna aceasta când mi-am reinstalat Windowsul, am folosit un script care se folosea de ambele programe pentru a-mi instala ma­jori­tatea pro­gramelor. Scriptul este pe GitHubul meu.

    Mai este o al­ter­na­tivă foarte nouă, CoApp, dar care este mai mult orientată spre librării, nu programe, dar care are un atu enorm: tipul care o dezvoltă lucrează la Microsoft și vrea să facă tot ce e posibil ca să fie integrat în Windows un sistem de genul acesta în viitor. Lookin' Good!