I am just getting started with using scoop and I think I am in love ❤️
One thing that I found missing was a way to install specific versions of programs.
There is a documented "workaround" with another bucket that works for ruby and python: https://github.com/lukesampson/scoop/wiki/Switching-Ruby-and-Python-Versions But this is also only for major versions and only works for these two special cases.
Then I found https://github.com/lukesampson/scoop/pull/1332 which seems to implement parts of what I was looking for - but closes with "Lets leave this as a bit of a hidden feature for a while. I'll write some docs for it soon enough" (in 2017).
There are other issues that mention this syntax, its possible problems and its missing documentation: https://github.com/lukesampson/scoop/issues/2254 #1780 And here even is an open issue to document this behavior: #2141
<program>@<version> syntax considered stable and usable now?scoop?Ok, one "problem" (feature?) seems to be that you generally can not install an older version over a newer version:
PS C:\Users\Jan> scoop install [email protected]
WARN 'ruby' (2.6.0-1) is already installed.
Use 'scoop update ruby' to install a new version.
Another problem seems to be when the current manifest config does not match the path of older download URLs as it was recently changed: https://github.com/lukesampson/scoop/commit/91d9723b08e86a2db4f94e6164b7fa598f42d49c
PS C:\Users\Jan> scoop install [email protected]
WARN Given version (2.5.3-1) does not match manifest (2.6.0-1)
WARN Attempting to generate manifest for 'ruby' (2.5.3-1)
Autoupdating ruby
Downloading rubyinstaller-2.5.3-1-x86.7z to compute hashes!
The request was aborted: The connection was closed unexpectedly.
URL https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.5.3-1/rubyinstaller-2.5.3-1-x86.7z is not valid
Could not find hash!
Could not install [email protected]
New generated path is https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.5.3-1/rubyinstaller-2.5.3-1-x86.7z, correct one would have been https://github.com/oneclick/rubyinstaller2/releases/download/rubyinstaller-2.5.3-1/rubyinstaller-2.5.3-1-x86.7z
(Workaround (?) here was to clone the old manifest, and publish it as a gist that I can use to install: https://gist.github.com/janpio/40e014d0ae31215b4bab2b5bbe5a69e8/3500373c9484ca8c3c89aac4998cda333451a555 + https://gist.githubusercontent.com/janpio/40e014d0ae31215b4bab2b5bbe5a69e8/raw/3500373c9484ca8c3c89aac4998cda333451a555/scoop_ruby_20_to_25.json)
There is also another issue. Every manifest that uses custom capture groups will not work. (Like $matchVersion, $matchHead, $matchMyAwesomeCaptureGroup`)
See aria2.json or brotli.json
With chrome getting:
current $ scoop install [email protected]
WARN Given version (73.0.3683.68) does not match manifest (74.0.3729.131)
WARN Attempting to generate manifest for 'chrome' (73.0.3683.68)
Autoupdating chrome
DEBUG[1557912977] $substitutions (hashtable) -> C:Usersmescoopappsscoopcurrentlibautoupdate.ps1:149:5
DEBUG[1557912977] $substitutions.$buildVersion 68
DEBUG[1557912977] $substitutions.$baseurl https://redirector.gvt1.com/edgedl/release2/chrome/$match32_73.0.3683.68
DEBUG[1557912977] $substitutions.$dashVersion 73-0-3683-68
DEBUG[1557912977] $substitutions.$url https://redirector.gvt1.com/edgedl/release2/chrome/$match32_73.0.3683.68/73.0.3683.68_ch…
DEBUG[1557912977] $substitutions.$matchHead 73.0.3683
DEBUG[1557912977] $substitutions.$preReleaseVersion 73.0.3683.68
DEBUG[1557912977] $substitutions.$majorVersion 73
DEBUG[1557912977] $substitutions.$basename 73.0.3683.68_chrome_installer.exe
DEBUG[1557912977] $substitutions.$patchVersion 3683
DEBUG[1557912977] $substitutions.$cleanVersion 730368368
DEBUG[1557912977] $substitutions.$minorVersion 0
DEBUG[1557912977] $substitutions.$version 73.0.3683.68
DEBUG[1557912977] $substitutions.$underscoreVersion 73_0_3683_68
DEBUG[1557912977] $substitutions.$matchTail .68
DEBUG[1557912977] $hashfile_url = $null -> C:Usersmescoopappsscoopcurrentlibautoupdate.ps1:152:5
Downloading 73.0.3683.68_chrome_installer.exe to compute hashes!
The remote server returned an error: (404) Not Found.
URL https://redirector.gvt1.com/edgedl/release2/chrome/$match32_73.0.3683.68/73.0.3683.68_chrome_installer.exe#/cosi.7z is not valid
Could not find hash!
Could not install [email protected]
@janpio, it seems just like the checksum ($match32 part) is missing there as well as @r15ch13 pointed out already. Does it make sense as a workaround to factor these out from the manifest? Must confess I am a noobie here.
I have a workaround described here until the match-issue is sorted out.
Applies to chrome only.
Most helpful comment
There is also another issue. Every manifest that uses custom capture groups will not work. (Like
$matchVersion,$matchHead, $matchMyAwesomeCaptureGroup`)See aria2.json or brotli.json