搭建 Windows 統(tǒng)一開發(fā)環(huán)境 Chocolatey,Scoop

Chocolatey 是一款 Windows 軟件包管理工具 (可簡稱為choco),類似于 macOS 的 Homebrew,Ubuntu 的 apt-get。Chocolatey 基于 PowerShell 腳本和 NuGet(微軟開發(fā)平臺的軟件包管理器),便于開發(fā)者快速安裝應(yīng)用程序和工具,便于開發(fā)團(tuán)隊(duì)統(tǒng)一開發(fā)環(huán)境。

另外需要說明的是, Chocolatey 只是把官方下載路徑封裝到了 Chocolatey 中,所以下載源都是其官方路徑,所以下載的一定是合法的,但是如果原軟件是需要 Licence 注冊的話,那么 Chocolatey 下載安裝好的軟件還是需要你去購買注冊。不過 Chocolatey 一般還是會選用免費(fèi) Licence 可用的軟件。

一、安裝

安裝 Chocolatey,只需要在 Windows 系統(tǒng)的命令行工具下面去執(zhí)行一行命令(cmd),只需要在其中的一個(gè)上面安裝 Chocolatey 就可以了。你要用管理員的身份去運(yùn)行命令行工具,不然會遇到權(quán)限問題。

訪問 Chocolatey 官網(wǎng),找到 CMD.exe 或者 PowerShell.exe 安裝命令,這里推薦選擇individual,也就是下面的第三種安裝方法,前面兩種是參考的其他教程的,沒有驗(yàn)證過。

image.png

1、終端下執(zhí)行

@powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin

2、CMD.exe 命令(本地電腦使用管理員運(yùn)行,開始菜單搜索 CMD,然后右鍵點(diǎn)擊以管理員運(yùn)行)

@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "[System.Net.ServicePointManager]::SecurityProtocol = 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"

3、PowerShell.exe 命令(windows10 右鍵開始菜單,點(diǎn)擊 Windows PowerShell(管理員)運(yùn)行)(我是使用這種方法安裝的)

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

看到以下輸出,就安裝完了

Chocolatey (choco.exe) is now ready.
You can call choco from anywhere, command line or powershell by typing choco.
Run choco /? for a list of functions.
You may need to shut down and restart powershell and/or consoles
 first prior to using choco.
Ensuring Chocolatey commands are on the path
Ensuring chocolatey.nupkg is in the lib folder

一般情況下,系統(tǒng)環(huán)境變量path和ChocolateyInstall會自動添加,但筆者的path沒有全路徑導(dǎo)致無法執(zhí)行choco命令,更改為全路徑之后正常。

安裝完成后,在命令行工具的下面,輸入:

choco help

如果出現(xiàn)一些有用的幫助信息,比如 Chocolatey 的版本號,安裝到的目錄,相關(guān)的命令,還有示例等等,這就說明我們已經(jīng)可以在系統(tǒng)上使用 Chocolatey 了。

二、使用

特性配置

choco feature -?

可以看到所有的命令使用提示,相當(dāng)于help


image.png
choco feature list
image.png
choco feature enable -n allowGlobalConfirmation  # 避免每次回答 Y
choco feature enable -name=exitOnRebootDetected  # 不執(zhí)行重啟檢測
image.png
# 軟件原生安裝目錄
C:\Program Files
C:\Program Files (x86)
C:\Users\<username>\AppData

# Chocolatey 安裝目錄
C:\ProgramData\chocolatey

# 通過環(huán)境變量設(shè)置軟件安裝目錄
[environment]::setEnvironmentVariable('ChocolateyInstall','C:\ProgramData\chocolatey','Machine')
[environment]::setEnvironmentVariable('ChocolateyToolsLocation','D:\Choco','Machine')

# 非管理員安裝默認(rèn)路徑是 C:\ProgramData\chocoportable
$env:path += ";C:\ProgramData\chocoportable"
$InstallDir='C:\ProgramData\chocoportable'
$env:ChocolateyInstall="$InstallDir"

# 通過命令行參數(shù) --proxy 指定代理
choco outdated --proxy=localhost:1080

包的類型

常見的 Chocolatey 軟件包有三種類型:

無后綴:默認(rèn)安裝 .install 后綴的最新版本的包, 若已安裝則跳過。(例:nodejs,git)如果系統(tǒng)中已經(jīng)安裝了這個(gè)包,就會跳過去,如果沒安裝,Chocolatey 就會為你安裝一個(gè),默認(rèn)安裝的這個(gè)包的類型應(yīng)該就是 .install 后綴的包。

.install 后綴: 軟件安裝后出現(xiàn)在控制面板 “卸載或更改程序” 中。(例:nodejs.install,git.install)安裝帶 .install 后綴的包,這個(gè)包會出現(xiàn)在系統(tǒng)控制面板里的 卸載或更改程序 里面,你可以把 .install 的包想成是通過安裝程序(msi)安裝的包。

.portable 后綴: 軟件安裝后不會出現(xiàn)在 “卸載或更改程序” 中。(例:putty.portable)

其中
.commandline(例:nodejs.commandline,未來會被拋棄)與 .portable 后綴的包是壓縮包(zip),安裝這種后綴的包,你不能在 卸載或更改程序 里找到它們。

choco 常用命令的縮寫形式:

cinst ...  # 相當(dāng)于 choco install ...
cuninst ...  # 相當(dāng)于 choco uninstall ...
cup <pkg|all>  # 相當(dāng)于 choco upgrade ...

查找軟件

訪問軟件包官網(wǎng) https://chocolatey.org/packages

查詢軟件 7zip 可訪問 https://chocolatey.org/packages?q=7zip

或使用 choco search 命令查找:

image.png
# 查找軟件
choco search 7zip 
choco search 7zip.install -all  # 所有版本

Chocolatey的使用也很簡單,使用指令如下:

choco search <keyword>    搜索軟件
choco list <keyword>  跟 search 命令功能類似
choco install <package1 package2 package3...>  安裝軟件
choco install <package>  -version *** 安裝指定版本
choco  uninstall name 卸載軟件
choco version <package>  查看安裝包的版本情況
choco  upgrade <package>   更新某個(gè)軟件 
choco list -localonly        查看一下所有安裝在本地的包的列表
choco list -lo       功能同上

軟件管理

# 安裝軟件
choco search peazip
choco info peazip  # 查看軟件信息
choco install peazip  # 自動安裝依賴包 peazip.install
choco install peazip.install  # 安裝 peazip.install 最新版
choco install peazip.install --version 7.2.0  # 安裝指定版本

# 指定安裝位置
choco install fiddler --install-arguments "/D=D:\Choco\fiddler"

# 安裝命令行工具與刷新環(huán)境變量
choco install nodejs.install  # 缺省安裝最新版本
refreshenv  # 刷新環(huán)境變量,避免重啟終端
node -v  # 確認(rèn)安裝成功

# 一次安裝多個(gè)包
choco install <package1 package2 package3...>

# 升級安裝軟件
choco list -l  # 查看已安裝軟件列表
choco outdated  # 檢查是否有可升級版本
choco upgrade nodejs.instlll  # 升級 nodejs
choco upgrade chocolatey  # 升級自身
choco upgrade all  # 全部升級

# 卸載軟件
choco uninstall peazip  # 選擇 n 保留 peazip.install
choco uninstall peazip.install  # 卸載 peazip.install


# 常用軟件
choco install dart-sdk
choco install flutter

choco install autohotkey.portable    #安裝 AutoHotkey (Portable)
choco install nodejs.install  #安裝 node
choco install git.install     #安裝 git
choco install ruby            #安裝 ruby
choco install python          #安裝 python
choco install jdk8            #安裝 JDK8
choco install googlechrome    #安裝 Chrome
choco install google-chrome-x64 #Google Chrome (64-bit only)
choco install firefox         #安裝 firefox
choco install notepadplusplus.install #安裝 notepad++
choco install Atom                    #安裝 Atom
choco install SublimeText3            #安裝 SublimeText

Chocolatey 的安裝腳本默認(rèn)要求管理員權(quán)限,對于非高權(quán)限用戶來說不太友好;通過 Chocolatey 安裝程序時(shí),安裝目錄散落各地,非常亂也不好管理。建議搭配 Scoop 使用。

Scoop 的安裝Scoop 由澳洲程序員Luke Sampson于2015年創(chuàng)建,其特色之一就是其安裝管理不依賴“管理員權(quán)限”,這對使用有權(quán)限限制的公共計(jì)算機(jī)的使用者是一大利好。

Scoop 是 Windows 上的命令行安裝程序,主要針對命令行下的開發(fā)者工具,和程序猿更配哦。個(gè)人的感覺是,Scoop 更像 Mac 上的 Homebrew, Chocolatey 更像 Homebrew-Cask。關(guān)于 Scoop 的更多介紹請看官網(wǎng)http://scoop.sh/,同時(shí),Scoop 是開源的項(xiàng)目,倉庫地址點(diǎn)這里

Scoop 安裝

其的安裝步驟如下:

步驟 1:在 PowerShell 中打開遠(yuǎn)程權(quán)限

Set-ExecutionPolicy RemoteSigned -scope CurrentUser

步驟 2:自定義 Scoop 安裝目錄

$env:SCOOP='Your_Scoop_Path'
[Environment]::SetEnvironmentVariable('SCOOP', $env:SCOOP, 'User')

如果跳過該步驟, Scoop 將默認(rèn)把所有用戶安裝的 App 和 Scoop 本身置于 C:Usersuser_namescoop

步驟 3:下載并安裝 Scoop

Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')

步驟 4:安裝包(主要是命令行程序):

scoop install <app_name>
scoop install sudo

Scoop 的基本操作與 Chotolatey 類似。

步驟 5:通過 scoop help 查看使用簡介

Scoop 的使用(加載擴(kuò)展庫)

步驟 1:安裝 Aria2 來加速下載

scoop install aria2
# 如果使用代理,有時(shí)需要通過如下命令關(guān)閉 aria2
scoop config aria2-enabled false

步驟 2:安裝 Git 來添加新倉庫

scoop install git

步驟3:添加官方維護(hù)的extras庫(含大量GUI程序)

scoop bucket add extras
scoop update
# git 下載如果使用 Scoop 原生的下載協(xié)議可能比較慢,建議采用如下迂回方案:
# 用第三方下載器,如 Motrix 下載
# 然后將文件拷貝到 path to scoop/cache
scoop install git # 此時(shí)會產(chǎn)生一個(gè)擴(kuò)展名為 .download 的文件
scoop uninstall git  #重命名自己下載的文件名為3中的文件名,但取代 .download 文件
scoop install git 

 #可選步驟:添加我創(chuàng)建并維護(hù)的scoopet庫(專注服務(wù)科研)
scoop bucket add scoopet https://github.com/integzz/scoopet
scoop update

scoopet 庫包含的安裝腳本分為如下四類:

科研工具:如 miniconda(國內(nèi)鏡像),julia(國內(nèi)鏡像),copytranslator,gephi,geogebra,mendeley,netlogo
開發(fā)輔助:如 cyberduck,virtualbox,vmware
日常辦公:如 adobe acrobat,wpsoffice,百度網(wǎng)盤,靈格斯詞霸
社交休閑:如 you-get,網(wǎng)易云音樂,微信
詳情見 https:// github.com/integzz/scoo pet/blob/master/README_CN.md

步驟 4:安裝 App

# 使用scoop search 命令搜索 App 的具體名稱
scoop install scoop-completion
scoop install <app_name>
# 利用插件scoop-completion協(xié)助安裝
scoop install scoop-completion
# 使用 scoop-completion:鍵入 App 名稱的前幾個(gè)字母后敲擊 tab鍵進(jìn)行補(bǔ)全 scoop-completion包含于 scoopet 庫中

步驟 5:查看官方推薦倉庫

scoop bucket known

main [默認(rèn)]
extras [墻裂推薦]
versions
nightlies
nirsoft
php
nerd-fonts
nonportable
java
games
jetbrains

這里,推薦一個(gè)網(wǎng)站,這個(gè)方便全網(wǎng)查詢安裝腳本所在 bucket

Apps | Scoopscoop.netlify.app

Scoop 的管理與配置

# 查看已安裝程序
scoop list
# 查看更新
scoop status
# 刪除舊版本
scoop cleanup
# 自身診斷
scoop checkup
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,363評論 6 532
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,497評論 3 416
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,305評論 0 374
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,962評論 1 311
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,727評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,193評論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,257評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,411評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,945評論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,777評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,978評論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,519評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,216評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,642評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,878評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,657評論 3 391
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,960評論 2 373

推薦閱讀更多精彩內(nèi)容