介紹
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下面的所有軟件,非常危險。