Windows包管理器
Scoop
安裝命令
set-executionpolicy remotesigned -scope currentuser #用powershell執行
iex (new-object net.webclient).downloadstring('https://get.scoop.sh') #然后執行
Scoop 基礎語法
從上面的命令中,我們可以發現 Scoop 命令的設計很簡單(和 Homebrew 等 Unix-style 的工具一樣),是「scoop
+ 動作 + 對象」的語法。其中「對象」是可省略的。
最常用的幾個基礎動作有這些:
命令 | 動作 |
---|---|
🌟search | 搜索軟件名 |
🌟install | 安裝軟件 |
update | 更新軟件 |
🌟status | 查看軟件狀態 |
uninstall | 卸載軟件 |
info | 查看軟件詳情 |
home | 打開軟件主頁 |
舉幾個例子,比如:
- 我們想要搜索一下有沒有 Firefox 瀏覽器:
scoop search firefox
- 我們想要安裝 aria2 下載器:
scoop install aria2
- 我們想要卸載7zip:
scoop uninstall 7zip
Scoop 把軟件安裝在哪兒?
- Scoop 在你的用戶根目錄(一般是 C:\Users\用戶名)下創建了一個名為 scoop 的文件夾,並默認將軟件下載安裝到這個文件夾下
- Scoop 將軟件安裝到一個相對隔離的環境下(Each program you install is isolated and independent),從而保證環境的統一和路徑不被污染
添加倉庫
scoop自帶的main bucket軟件過少,我們需要添加官方維護的extras bucket:
scoop bucket add extras
# 之后就可以安裝我們所需的軟件了,附我的安裝軟件清單:
scoop install calibre gimp inkscape latex vscode-portable zotero
#第三方bucket
#若在scoop search中找不到需要的軟件,可以上github上的第三方bucket查找一下。
#https://github.com/rasa/scoop-directory/blob/master/by-score.md
#比如安裝cajviewer,添加bucket:
scoop bucket add scoopbucket https://github.com/yuanying1199/scoopbucket
#安裝cajviewer:
scoop install scoopbucket/cajviewerlite
Chocolatey
安裝:
cmd以管理員身份運行
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
powershell以管理員身份運行
iex ((new-object net.webclient).DownloadString(‘https://chocolatey.org/install.ps1‘))
使用
#### 搜索軟件
choco search curl -all
choco search node
#### 安裝軟件
choco install jdk8
choco install python
choco install ruby
choco uninstall ruby
#### 查看軟件
choco list -local-only
choco list -li
choco list -lai
choco list --page=0 --page-size=25
choco search git
choco search git -s "'https://somewhere/out/there'"
choco search bob -s "'https://somewhere/protected'" -u user -p pass
#### 升級軟件
choco upgrade curl
#### 卸載軟件
choco uninstall curl
choco list -li #查看本地安裝的軟件
choco search nodejs #查找安裝包
choco install sublimetext3 #下載
choco uninstall sublimetext3 #卸載
choco upgrade sublimetext3 #更新(update)
https://chocolatey.org/packages #包庫,可以搜索軟件,按照命令安裝
https://chocolatey.org/docs/uninstallation #卸載Chocolatey
choco upgrade chocolatey #chocolatey自身的升級
區別
從外觀上來看Scoop和Chocolatey的界面比較相似。不過通過深入發掘你就會發現幾個比較小但很重要的差異。其中最重要的差別在於兩款工具是針對的不同的用戶群。
Chocolatey的自我定位是Windows系統的“軟件管理自動化”。它能夠在無需人工干預的情況下自動安裝超過20種Windows軟件包類型,而且開箱即用,支持配置超過7000款主流軟件,包括Google Chrome和VLC多媒體播放器等桌面熱門應用程序。
Scoop同樣可以通過單命令安裝Windows軟件,不過它的適用目標相對來說更狹窄,也更有針對性。這款軟件包管理工具更多的時候是幫助開發者安裝系統工具時使用,尤其是那些依賴於Linux但在Windows系統上不存在的軟件程序。
根據該軟件作者的描述,Scoop的定位主要是“開源、命令行的開發者工具”。Scoop同樣能夠安裝諸如Chrome和VLC這樣的常規Windows程序,但在做這些事情之前用戶需要額外手動添加附加庫。
對於那些只需要一個軟件包管理工具的普通用戶來說,Chocolatey應該是最佳的選擇。用戶不需要進行任何額外配置,就能安裝數百款熱門應用程序。此外如果用戶並不希望使用終端,甚至還能獲得GUI圖形界面。
不過Chocolatey的普遍適用性也帶來了額外的復雜性。Chocolatey依賴於Windows PowerShell及其NuGet包管理器系統,該系統主要用於解決軟件庫依賴關系。Chocolatey也往往需要管理員權限才能運行使用,這就意味着你將會被UAC彈出窗口打斷。
相比之下,Scoop並不使用NuGet而且不會進行全局安裝。相反,這些應用程序的范圍會被限定在你的用戶賬戶中,並安裝到特殊目錄以避免路徑污染。 Scoop甚至將自己與被視為包管理器的距離保持距離,因為它只是“讀取描述如何安裝程序及其依賴關系的清單”。
但是,如果要將程序范圍限定為用戶帳戶,沒有管理員權限或主要尋找開發人員工具,Scoop應該是您的首選。它在技術上更簡單,對系統的目錄結構影響較小,而且比Chocolatey更輕量級。通過添加scoop-extras存儲庫可以輕松添加對流行的Windows桌面程序的支持。
當然,Chocolatey和Scoop都有許多額外的功能,優點和缺點,我們在這里沒有討論過。特別是,Chocolatey擁有許多針對企業的專業能力,使其更適合企業和系統管理員。同時,Scoop簡化的“包”模型意味着應用程序開發人員添加支持相當簡單 - Git存儲庫中的單個文件將通過Scoop實現安裝。