win10使用Scoop软件包管理器,支持版本切换
介绍
Scoop
是一款软件包管理工具,类似你电脑上的软件管家,只不过Scoop
是命令行操作的,可以说是一款专门为程序员开发的软件管家,你不需要再一个一个的访问官网,然后找软件的安装包,而只需要一个命令,全部搞定。
Scoop
适用于windows
平台,而类Unix
系统(Linux/MacOS)可以使用SDKMAN
,可以参考文章 https://ithelp.ithome.com.tw/articles/10236086
与之类似的还有Chocolatey
,微软的winget
。
Scoop
与Chocolatey
的比较: http://www.kokojia.com/article/39520.html
Scoop
与winget
的比较: https://www.zhihu.com/question/395989844/answer/1236061830
Scoop
更适用与开发人员使用
项目地址: https://github.com/lukesampson/scoop
安装
参考教程
https://blog.csdn.net/qq_43741794/article/details/113079959
https://sspai.com/post/52496
https://zhuanlan.zhihu.com/p/135278662
安装位置
scoop
有两个安装目录,一个是当前用户的安装目录,一个是所有用户的安装目录。之后的使用中通过scoop
安装的软件会安装在这两个目录,默认是在 %USERPROFILE%
下,有需要将其变更到其他目录的可以使用如下配置
使用PowerShell
执行如下命令:
# 设置用户软件安装位置
$env:SCOOP='D:\Applications\Scoop' # 自己改你的位置,下同
[Environment]::SetEnvironmentVariable('SCOOP', $env:SCOOP, 'User')
# 设置全局软件安装位置
$env:SCOOP_GLOBAL='F:\GlobalScoopApps'
[Environment]::SetEnvironmentVariable('SCOOP_GLOBAL', $env:SCOOP_GLOBAL, 'Machine')
实际相当于配置了两个环境变量,当然也可以手动配置。
安装
以管理员身份运行PowerShell
,执行
Set-ExecutionPolicy RemoteSigned -scope CurrentUser
#然后输入 Y 或 A 回车
然后执行安装命令
Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')
# 或者
iwr -useb get.scoop.sh | iex
配置源
因为scoop
的源是github
,因为网络的问题往往会比较慢或失败,配置源可以使更新scoop
和bucket
时快一点
但是治标不治本,起不到根本作用, 因为通过scoop
安装的软件包基本都在github
或国外服,网络的坑依然在
- 更换 scoop 源
scoop config SCOOP_REPO https://gitee.com/squallliu/scoop
scoop update
- 更换 bucket 源
scoop install git
git -C "${Env:USERPROFILE}\scoop\buckets\main" remote set-url origin https://hub.fastgit.org/ScoopInstaller/Main.git
git -C "${Env:USERPROFILE}\scoop\buckets\java" remote set-url origin https://hub.fastgit.org/ScoopInstaller/Java.git
git -C "${Env:USERPROFILE}\scoop\buckets\php" remote set-url origin https://hub.fastgit.org/ScoopInstaller/PHP.git
git -C "${Env:USERPROFILE}\scoop\buckets\versions" remote set-url origin https://hub.fastgit.org/ScoopInstaller/Versions.git
git -C "${Env:USERPROFILE}\scoop\buckets\nightlies" remote set-url origin https://hub.fastgit.org/ScoopInstaller/Nightlies.git
# 以此类推 extras 的为
git -C "${Env:USERPROFILE}\scoop\buckets\extras" remote set-url origin https://hub.fastgit.org/lukesampson/scoop-extras.git
上面的方式首先要执行scoop bucket add 仓库名
将bucket安装到本地,然后执行上面的命令更改git仓库的远程地址,所以在add bucket时本身可能因为网络问题就添加失败。下面的方式将更简便
scoop bucket add java https://hub.fastgit.org/ScoopInstaller/Java.git
scoop bucket add php https://hub.fastgit.org/ScoopInstaller/PHP.git
scoop bucket add versions https://hub.fastgit.org/ScoopInstaller/Versions.git
scoop bucket add nightlies https://hub.fastgit.org/ScoopInstaller/Nightlies.git
scoop bucket add extras https://hub.fastgit.org/lukesampson/scoop-extras.git
使用
基本使用
如果只是安装给当前用户,直接执行安装命令即可,会安装到之前说的当前用户安装目录中,比如
# scoop install [app]@[版本号]
scoop install git@2.23.0.windows.1
如果想要全局安装,安装时需要带 -g
参数,会安装到之前说的全局安装目录。以管理员身份打开PowerShell
# scoop install -g [app]@[版本号]
scoop install -g git@2.23.0.windows.1
如果全局安装时不想以管理员身份运行PowerShell
,则可以安装sudo
,然后在普通身份时也可以对全局进行操作:
scoop install -g sudo # 此时以管理员身份打开的Powershell
sudo scoop install -g git # 此时普通身份亦可
当然也可以一次安装多个软件
sudo scoop install 7zip git openssh --global
scoop install aria2 curl grep sed less touch
scoop install python ruby go perl
7Zip
,Git
基本是必须要装的,因为要装很多软件都要依赖它们,连添加bucket
都要git
的。
另外aria2
也可以装上,因为说是可以提高软件包下载速度。如果使用aria2
任然速度慢或者出现无法下载的问题,可以使用如下命令将其禁用:
scoop config aria2-enabled false
多版本切换
scoop reset
将 re-installs
应用程序的 shims
,并根据应用程序的 manifest
更新 PATH
环境变量。
使用 scoop reset <java>[@<version>]
说明安装和切换不同的 Java (JDK)版本
$ scoop bucket add java
$ scoop install oraclejdk
Installing 'oraclejdk' (12.0.2-10) [64bit]
$ scoop install zulu6
Installing 'zulu6' (6.18.1.5) [64bit]
$ scoop install openjdk10
Installing 'openjdk10' (10.0.1) [64bit]
$ java -version
openjdk version "10.0.1" 2018-04-17
OpenJDK Runtime Environment (build 10.0.1+10)
OpenJDK 64-Bit Server VM (build 10.0.1+10, mixed mode)
$ scoop reset zulu6
Resetting zulu6 (6.18.1.5).
Linking ~\scoop\apps\zulu6\current => ~\scoop\apps\zulu6\6.18.1.5
$ java -version
openjdk version "1.6.0-99"
OpenJDK Runtime Environment (Zulu 6.18.1.5-win64) (build 1.6.0-99-b99)
OpenJDK 64-Bit Server VM (Zulu 6.18.1.5-win64) (build 23.77-b99, mixed mode)
$ scoop reset oraclejdk
$ java -version
java version "12.0.2" 2019-07-16
Java(TM) SE Runtime Environment (build 12.0.2+10)
Java HotSpot(TM) 64-Bit Server VM (build 12.0.2+10, mixed mode, sharing)
Python版本管理
$ scoop bucket add versions # add the 'versions' bucket if you haven't already
$ scoop install python27 python
python --version # -> Python 3.6.2
# switch to python 2.7.x
$ scoop reset python27
python --version # -> Python 2.7.13
# switch back (to 3.x)
$ scoop reset python
python --version # -> Python 3.6.2
添加自定义bucket
参考 https://zhuanlan.zhihu.com/p/165635039
社区仓库
参考 https://sspai.com/post/52710
其他命令
命令 | 说明 |
---|---|
scoop help | 查看帮助 |
scoop list | 可以查看已安装的所有软件 |
scoop search 软件名 | 查找是否有你需要的软件 |
scoop info 软件名 | 查看软件介绍 |
scoop uninstall 软件名 | 卸载软件 |
scoop status | 查看可更新的软件 |
scoop update 软件名 | 更新软件 |
scoop update * | 一次性更新所有软件(必须在安装目录下使用) |
scoop update | 更新scoop,有时当你安装或其他操作时scoop会自行更新自己,由于软件数量和版本极多,更新频率会有点高 |
scoop bucket add bucket名称 | 添加bucket |
scoop bucket add bucket名称 bucket地址 | 添加自定义bucket |
scoop bucket known | 列出已知所有官方bucket |
卸载
scoop uninstall scoop # 这个卸载,会删除你配置的scoop下面的所有软件,非常危险。