win10使用Scoop軟件包管理器,支持版本切換


介紹

Scoop是一款軟件包管理工具,類似你電腦上的軟件管家,只不過Scoop是命令行操作的,可以說是一款專門為程序員開發的軟件管家,你不需要再一個一個的訪問官網,然后找軟件的安裝包,而只需要一個命令,全部搞定。
Scoop適用於windows平台,而類Unix系統(Linux/MacOS)可以使用SDKMAN,可以參考文章 https://ithelp.ithome.com.tw/articles/10236086

與之類似的還有Chocolatey,微軟的winget
ScoopChocolatey的比較: http://www.kokojia.com/article/39520.html
Scoopwinget的比較: 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,因為網絡的問題往往會比較慢或失敗,配置源可以使更新scoopbucket時快一點
但是治標不治本,起不到根本作用, 因為通過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 resetre-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下面的所有軟件,非常危險。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM