包管理器的分类:
- 操作系统级:主要用于安装软件配置系统环境
- 开发语言级:主要用于添加第三方开源软件
有了包管理器,只需要关注项目需要哪些软件包,不需要关注软件包里还需要嵌套依赖哪些软件包,这些包管理器都会自动完成,而且也不需要把这些软件包上传到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/
https://mvnrepository.com/
https://repo.maven.apache.org/maven2/
②Bintray JCenter
引用
http://jcenter.bintray.com/
https://bintray.com/bintray/jcenter
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>
// 如果有要求用户名密码则输入:
$ 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
$ git config --global --unset http.proxy
③Android SDK代理
引用
Tools > Options... > Setting 里设置以下信息:
HTTP Proxy server: mirrors.neusoft.edu.cn
Proxy Port: 80
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>
<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
$ 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
$ 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
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/