Closed beruic closed 8 years ago
You can. Use scoop update *
scoop update *
doesn't work in Git Bash. The *
makes scoop look at the contents of the current folder.
E.g.:
$ scoop update *
ERROR 'Factory' isn't installed.
ERROR 'Infrastructure' isn't installed.
ERROR 'node' isn't installed.
ERROR 'Site' isn't installed.
ERROR 'Sitecore' isn't installed.
ERROR 'Tooling' isn't installed.
ERROR 'Upgrade' isn't installed.
@cenobitedk Does it work if you escape the *
character like this?
scoop update '*'
# Or:
scoop update "*"
Yes, both works as expected :)
scoop update \*
also works.
@cenobitedk Does it work if you escape the
*
character like this?scoop update '*' # Or: scoop update "*"
Using Git Bash (Windows 10 64-Bit), this works. Does it really have to be this cryptic? Do people seriously need to guess and/or search online how to update everything?
I suggest reopening the issue and adding a proper solution to this. I like the idea of -A -a --all
, but what would be better in my opinion is:
scoop update # fetch new version information
scoop upgrade scoop # upgrade Scoop itself (or any other given package)
scoop upgrade # upgrade all packages including Scoop
On pretty much every package manager, "update" is not understood as really upgrading a package, but rather fetching package information. Is it an option to change to this behavior next major release?
Awesome project by the way. I love it.
@pedzed
λ scoop alias add upgrade "scoop update *"
λ scoop update
λ scoop upgrade
So not everyone uses --all
or *
, I can see someone uses all
in https://github.com/lukesampson/scoop/issues/1745, we can't satisfy all people, thus the alias
feature is what you need.
@h404bi the thing is that it just doesn't work properly, as the people above me mention. You need to escape the asterisk, which is just bad: an asterisk in a CLI should be avoided.
I can't reproduce what you said doesn't work properly
. Just add an alias, please have a try.
What about scoop alias add upgrade "scoop update '*'"
? (Notice the escaped *
.)
why cannot I just use scoop update
?
We just need to stop update
upgrading packages:
update
-> update manifestupgrade <package>...
-> upgrade listed packagesupgrade
-> upgrade all packagesWe just need to stop
update
upgrading packages:
update
-> update package manifestsupgrade <package>...
-> upgrade the local installation of the listed packagesupgrade
-> upgrade the local installation of all packages (installed without the global (-g) option)
This makes sense to me, as they really are two separate functions. It’s also how apt-get works. As 3. only upgrades non-global (local) packages, we could even add;
upgrade-all
-> upgrade all locally and globally installed packages
scoop update *
doesn't work in Git Bash. The*
makes scoop look at the contents of the current folder.E.g.:
$ scoop update * ERROR 'Factory' isn't installed. ERROR 'Infrastructure' isn't installed. ERROR 'node' isn't installed. ERROR 'Site' isn't installed. ERROR 'Sitecore' isn't installed. ERROR 'Tooling' isn't installed. ERROR 'Upgrade' isn't installed.
I would recommend using Windows Terminal these days
Windows Terminal has nothing to do with it. They're talking about the shell, which is bash.
I should have said power shell. Which would be the shell ;-) `PS C:\Users\heelr> scoop update * Updating Scoop... Updating 'extras' bucket...
It's really weird to use a shell expansion character for this, considering scoop doesn't actually use wildcards.
I feel like adding a --all
flag (and maybe deprecating *
specifier) would be healthy, bringing the behavior of
scoop update
and winget upgrade
closer.
Also scoop update <packagename> *
upgrades everything, while winget upgrade <packagename> --all
only upgrades <packagename>
, but let's be fair, no one should write either of those :v
Again, my preference lays in separating update
(update repository) from upgrade
(install packages), but that's clearly not the way it's going to happen on Windows, so this is the next best thing.
If nothing is planned for scoop upgrade
consider making it an alias to scoop update
as well.
I don't understand why I cannot update all my packages in one go.
I suggest
scoop update --all
or alternativelyscoop update -a
, which should maybe start by updating scoop it self, but I realize this can lead to issues.