chocolatey package manager 簡介

就像 Linux 有 apt-get, mac 有 homebrew 一樣,windows 也有自己的 package manager: chocolatey

well,真的沒啥可以介紹的。。。因為 package manager 對於用戶來說。。。就是 install upgrade 和 uninstall 三個 command。。。

chocolatey 的主要原理和 apt-get 以及 homebrew 有一些不一樣(然而我並不是很清楚 apt-get 和 homebrew 是啥原理,所以,說錯了不要打我),chocolatey 的 maintainer 和 軟體的開發者在大部分情況下不是同一個人。maintainer 向 choco server 提供軟體的下載地址,安裝方法,以及其他一些附加的信息,包括這個 package 的網站啊等等,然後這些信息保存在 chocolatey 的 server 上面。

這樣做有好處有壞處。

因為不存 binary 而是直接從源下載地址下載,所以幾乎不會出現版權問題。而且作為一個使用率相對較低的 pm 也可以保證 package 足夠多(其實如果要我說,幾乎沒有任何 choco 不能裝的程序,反正我需要的是沒有的)

但是從源地址下載也有麻煩的地方,在於 maintainer 通常不是開發者,所以更新經常不及時的問題,但是由於自動更新的 choco package 引擎越來越多,這個問題也得到了比較好的解決。現在我知道的自動更新引擎包括 choco 官方的:Chocolatey Automatic Package Updater (for package maintainers) 和我自己的:chantisnake/github2choco(是的,我就是來打廣告的。。。)

還有一個麻煩的地方就在於因為永遠用原下載地址,這樣你就不能像 ruby 或者 apt-get 那樣修改一個源就能指望下載速度變快。。。而且更嚴重的是,因為很多軟體的下載地址都在 GitHub 上。。。所以在國內相當的尷尬。

但是如果有 vpn 的話,這裡可以設置 choco 實用 proxy:Proxy-Settings-for-Chocolatey 但是好像不支持 ss。。。

以上。


推薦閱讀:

PowerShell指令為什麼都要採用 Verb-XXXX 的格式?
乾貨 || Windows Shellcode學習筆記——棧溢出中對jmp esp的利用與優化
乾貨 || Windows Shellcode學習筆記——shellcode在棧溢出中的利用與優化
媽媽,為什麼我的 powershell 和別人不一樣?!
AppDomainManager後門的實現思路

TAG:PowerShell | 包管理器 | MicrosoftWindows |