包管理器Package Manager

包管理器是一个面向软件开发人员的工具,使用它能方便的使用和分享软件包,并管理软件包依赖关系。

包管理器的分类:
  • 操作系统级:主要用于安装软件配置系统环境
  • 开发语言级:主要用于添加第三方开源软件
如果没有包管理器,就需要通过浏览器自己手动挨个下载需要的每个软件包,然后自己把包放到正确的文件夹中,这样的过程是很繁琐的。现在大部分开发语言都提供了包管理器来帮助开发人员更好的管理软件包。

有了包管理器,只需要关注项目需要哪些软件包,不需要关注软件包里还需要嵌套依赖哪些软件包,这些包管理器都会自动完成,而且也不需要把这些软件包上传到SCM中!

当通过包管理器为项目中添加了一个软件包时:
①从指定仓库repository下载软件包(脚本语言一般直接是代码)
②把下载的软件包放到正确的地方并和项目工程关联
③解决可传递的依赖(依赖能够自动继承和传递)

(1)操作系统级
1) apt (Debian, Ubuntu)
  apt-get install <package>

2) yum (CentOS, Fedora, RHEL)  
  yum install <package>

3) Homebrew (OS X)
  brew install <package>

(2)开发语言级
1)Java
  Maven   配置文件:pom.xml
  mvn install
  Gradle   配置文件:build.gradle
  gradle install

2)Objective-C
  CocoaPods   配置文件:.podspec文件
  pod install <package>

3)PHP
  PEAR   配置文件:package.xml
  pear install <package>

4)Ruby
  gem   配置文件:.gemspec文件
  gem install <package>

5)Python
  PyPI   配置文件:setup.py文件
  pip install <package>

6)Perl
  CPAN   配置文件:META.yml文件
  cpan <package>

7).NET
  Nuget   配置文件:.nupkg文件
  PM> Install-Package <package>

8)Node.js
  npm   配置文件:package.json文件
  npm install <package>
  Yarn   配置文件:package.json文件
  yarn add [package]

9)JavaScript
  Bower   配置文件:bower.json文件
  bower install <package>#<version>
  WebJars 客户端包(e.g. jQuery & Bootstrap)
  集成在Maven中

Libraries.io The Open Source Discovery Service.


■命令详细一览


■Java 常用的 Repository

①Maven Central Repository
引用
https://search.maven.org/
https://mvnrepository.com/
https://repo.maven.apache.org/maven2/

②Bintray JCenter
引用
http://jcenter.bintray.com/
https://bintray.com/bintray/jcenter

③Spring Repository
引用
http://repo.spring.io/release/


由于国内网络原因,很多时候需要使用VPN、Proxy、Mirror等方式才能安装。

■代理Proxy

①设置代理:
引用
$ set http_proxy=http://proxy.mysite.com:8080
// 如果有要求用户名密码则输入:
$ set http_proxy_user=<username>
$ set http_proxy_pass=<password>


②Git代理
引用
$ git config --global http.proxy http://proxy.mysite.com:8080
$ git config --global --unset http.proxy


③Android SDK代理
引用
Tools > Options... > Setting 里设置以下信息:
HTTP Proxy server: mirrors.neusoft.edu.cn
Proxy Port: 80


■镜像Mirror

①Maven
引用
<mirror>
  <id>nexus-osc</id>
  <mirrorOf>*</mirrorOf>
  <name>Nexus osc</name>
  <url>http://maven.oschina.net/content/groups/public/</url>
</mirror>


②npm
引用
全局镜像:
$ npm config set registry https://registry.npm.taobao.org/
安装时才指定:
$ npm install --registry https://registry.npm.taobao.org/ xxx
取消镜像:
$ npm config delete proxy


③RubyGems
引用
$ gem sources --remove https://rubygems.org/
$ gem sources -a https://ruby.taobao.org/
安装时才指定:
$ gem install --http-proxy https://ruby.taobao.org/ rails


④Python pip
引用
全局镜像:
Linux:~/.pip/pip.conf
Windows:%HOMEPATH%\pip\pip.ini
  [global]
  index-url = http://pypi.douban.com/simple
安装时才指定:
$ pip install web.py -i http://pypi.douban.com/simple


参考:
http://en.wikipedia.org/wiki/List_of_software_package_management_systems
http://blog.versioneye.com/2014/01/15/which-programming-language-has-the-best-package-manager/

猜你喜欢

转载自rensanning.iteye.com/blog/2062067