最近我花了一點時間關注了在不同系統之中所用到的包管理器(Package Manager) 。最開始的時候,我是在使用Linux操作系統時,對這種工具以及它背后的想法深深迷戀住了:這真是自由的軟件世界。全世界所有的開發人員都可以將自己覺得有用的組件或者軟件發布到一個共用的地方,其他的所有人都可以很方便地按需取用。
讓我們記住Richard Stallman 以及他提出並創立的GNU計划。http://baike.baidu.com/view/36272.htm
在Linux系統中,包管理器是如此強大,讓人驚嘆。據說這也是Linux之所以很安全的原因,因為幾乎所有軟件都可以免費地通過包管理器下載到,不需要東找西找(也就免去了中毒的可能性),甚至黑客們連去編寫病毒的願望都沒有。
閑話少說,我就從Linux中的包管理器說起吧
apt-get
Ubuntu中,默認采用apt-get 作為包管理器
常見的命令:
- apt-get update
- apt-get upgrade
- apt-get install
- apt-get uninstall
- apt-get source
yum
CentOS中,默認使用yum作為包管理器,用法很類似,有興趣的朋友可以參考 https://www.centos.org/docs/5/html/yum/
我大部分時間不用CentOS,這里就不截圖了。
Nuget Package Manager
這是微軟提供的一個包管理器。他提供了可以用於.NET開發平台的各種組件包的托管及管理。
【注意】它提供的只是組件,而且僅限於.NET開發平台用的。這些組件,通常是一些DLL,不能直接運行的,但可以用於我們在具體開發的項目中。
https://www.myget.org/ (這是一個新的站點,目的是想做一個統一的包源管理中心,Create NuGet feeds, npm, Bower and Vsix repositories with your own packages and those from other package sources such as NuGet.org or Npmjs.com.)
如何安裝
http://docs.nuget.org/consume/installing-nuget
最好是集成在Visual Studio中,
除了圖形化,也有命令行模式
還有獨立的命令行工具(nuget.exe)
官方也提供一個獨立的圖形化界面
chocolatey
這個可以翻譯為“巧克力”嗎?呵呵。這個與nuget有本質的區別,nuget是提供了組件的包管理器(也就是說它提供的包,是包含了一些組件,本身是不能運行的),而chocolatey提供的是直接可以執行的程序,這一點是很類似於linux中的 apt-get 這個功能的
實際上,它是要基於.NET Framework 4.0和PowerShell才能運行的,也只能在Windows上面運行。
安裝好之后,隨便啟動一個命令行(需要用管理員身份),然后輸入choco,就可以看到當前的版本信息
通過choco list命令可以獲取到當前所有的包的列表
通過choco install命令可以安裝需要的包,例如choco install git
npm
npm is the package manager for javascript. https://www.npmjs.com/
這也是一個神奇的工具。它的背后是神奇的nodejs。https://nodejs.org/ ,所以簡單地說,npm就是一個基於nodejs的包管理器,它管理的是javascript。