标签:
看到一篇文章不错:
http://harttle.com/2015/05/29/pkg-manager.html
包管理和构建系统是现代的软件开发团队中必不可少的工具,也是Linux软件系统的常见组织方式。 现代编程语言大多给出了自己专用的包管理和构建系统,那么本文便来总结一下小编用过的那些包管理和构建系统。
服务器端 Javascript 通常使用NPM作为依赖管理工具。
npm
命令来进行依赖的下载、升级和移除。package.json
来定义软件包的元信息、开发依赖(开发或测试需要)、部署依赖(运行时需要)。node_modules
中。-g
)会使它成为命令行工具而不是全局依赖。 > 递归的依赖下载风格使得NPM的缓存及其重要。缓存位于~/.npm
下,这里保存这.tgz
格式的包文件。JavaScript 通常使用 Grunt 进行构建。
Gruntfile.js
中。前端 lib 可以通过 Bower 来下载。Bower 不仅可以下载已注册的软件包,还可以下载Github Repo,甚至是一个文件的URL。
bower
命令进行依赖管理。bower.json
定义了软件包的元信息与依赖。bower.json
中进行设置。Bower可以灵活地下载各种依赖,但它的缺点也是明显的:未注册的软件包往往包含冗余的非生产环境的代码,有时甚至需要手动构建。
Maven是基于项目对象模型(POM)的项目管理工具,通过文本文件来描述项目的版本、URL、License、依赖等信息。
pom.xml
来描述Maven项目。.properties
文件和命令行参数读取系统特性。Ant是由Java写成的编译、测试和部署Java应用的命令行工具。
build.xml
来描述构建过程。build.xml
的逻辑类似Makefile,每个target由命令和参数构成。Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具。它使用一种基于Groovy的特定领域语言来声明项目设置,而不是传统的XML。
Python的包管理工具能讲一整天的故事:distribute、setuptools、distutils、easy_install、pip、distutils2、packaging、eggs、wheels、pyvenv、virtualenv……
这也是我为什么讨厌安装python软件的原因,与此同时,旧版本的python2比新的python3更加流行以及两者不兼容也常常给Linux包管理造成麻烦。
现在开始讲故事:
venv
和virtualenv
则是用来创建python虚拟环境来实现应用隔离的。
Ruby的软件包单元为RubyGem。
.gemspec
文件描述。Rakefile
描述。标签:
原文地址:http://www.cnblogs.com/charlesblc/p/5952338.html