前言#
我們都知道 Linux 有包管理的概念,即:可以在命令行下通過一系列的指令來統一管理程式,常見的使用情境包括:搜尋、安裝、更新、卸載等。
macOS 也有類似的包管理器,如 brew
,homebrew
等
借助包管理器,我們可以達到統一管理常用軟體的目的。
Windows 平台弊端#
Windows 目前的軟體生態想必大家都很清楚,各種常用軟體,比如:Git
, Chrome
, VS code
, 7zip
, 網易雲音樂
等,安裝方式比較多,位置雜亂,安裝更新卸載流程繁瑣耗時且效率低下,安裝路徑各異污染目錄,且得不到統一的管理。
他來了 -- Scoop#
Scoop 的出現,就是為了來解決上述問題的,簡單地說,他將各種軟體安裝目錄有序的堆放在一起,使用者資料以及配置檔案單獨存放,更新時僅僅更新程式本身,極大的提高 Windows 平台上管理軟體的效率。
如何安裝 Scoop#
請確保已經安裝了:
- ①
PowerShell 5
(或更高版本,包括PowerShell Core
) - ②
.net Framework 4.5
(或更高版本)。
現在大部分機子都上了 win10,系統大都符合要求,可以直接進行下面的操作
在終端運行下列命令(建議在當前使用者根目錄 (C:\Users\your_username) 下)
# 執行這條命令
Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.Scoop .sh')
# 或者這條更短的命令
iwr -useb get.Scoop .sh | iex
然後你就可以在終端中輸入 Scoop
命令來查看是否安裝完成
如果你遇到錯誤,你可能需要改變執行策略,執行下列命令來啟用 PowerShell
Set-ExecutionPolicy RemoteSigned -scope CurrentUser
Scoop 使用#
添加 bucket#
bucket
可以簡單理解為軟體清單
只有當前添加的 bucket
裡有的軟體才可以下載
通過下面的命令添加常用的 bucket
來擴大你可以安裝的軟體類別和數目
# 最常用的bucket
scoop bucket add extras
# 比較全的bucket
scoop bucket add extras
scoop bucket add dorado https://github.com/chawyehsu/dorado
scoop bucket add sushi https://github.com/kidonng/sushi
...
搜尋軟體#
這條命令會在已經加入的 bucket
裡搜尋合適的軟體並打印出來
scoop search neteasemusic # 搜尋網易雲音樂
安裝軟體#
scoop install <name>
以下列出了常用的程式的安裝命令
必須先裝
7zip
,安裝包的解壓依靠它
# 推薦安裝的常用程式(須先加 extras 的 bucket)
scoop install 7zip git googlechrome vscode nodejs yarn postman everything sharex quicklook telegram
# 個人使用的軟體(須先加 extras、dorado 和 nonportable 的 bucket)
scoop install 7zip git googlechrome vscode yarn v2rayn sharex nodejs quicklook dismplusplus postman telegram oh-my-posh pscolor posh-git mactype-np neteasemusic everything mysql adb sudo nginx
卸載軟體#
scoop uninstall <name>
更新軟體#
scoop update <name>
# 一般都全部更新,用 * 通配符匹配所有
scoop update *
清理快取(下載的安裝包等)#
scoop cache rm *
清理已安裝軟體殘留的舊版本#
更新程式後,舊版本的程式預設是保留的,可以手動清理
scoop cleanup *
切換版本#
當安裝的軟體有多個版本,且都需要同時使用時,可以參考下面設置兩個 nodejs 版本共存與切換類似的方法
- 先安裝所需的版本
scoop install nodejs12
scoop install nodejs
此時預設的 node -v
輸出的是最新版本
- 設置需要的版本 / 版本切換
因為 node12
和最新版共用 node
這個命令,只需要執行 reset
加對應的版本就能夠將該命令設置為指定版本
切換為 node12
版本
scoop reset nodejs12
切換為 node
最新版本
scoop reset nodejs
忽略更新#
通常我們會使用下面的命令來更新所有通過 Scoop 下載的軟體
scoop update *
但是有時候我們不想讓其中某個軟體更新,這個時候就需要用到 hold/unhold
命令
# 更新軟體時限制 Postman 更新
scoop hold postman
# 解除更新限制
scoop unhold postman