C/C++程序格式
1、源代码,程序的文本文件
如果要编译源代码,需要编译器、头文件、开发库
2、二进制格式,编译后的可执行文件
Java/Python程序格式
1、源代码,编译成能够在其虚拟机(jvm/pvm)运行的格式
2、二进制格式
项目构建工具
C/C++ :make
Java : maven
这些工具提前将程序的依赖关系做了说明,根据依赖关系(研发人员的配置文档)将程序按照运行需要进行编译
这些都比较抽象,不是编程人员,基本上看不懂 现在就大概做个了解
程序包管理器
源代码(根据使用环境)--》目标二进制格式(二进制程序、库文件、配置文件、帮助文件)--》组成一个或有限几个"包"文件,实现软件的安装、升级、卸载、查询、校验
debian DPT(debian package tool) DPKG(程序包命令行管理工具)".deb"
RHEL RPM(Redhat package manager)".rpm"
SUSE RPM 不与RHEL系统兼容
源代码程序的名称格式
name-version.tar.gz
version:major.minor.release
主版本 次版本 发行号
RPM包的命名格式
name-version-release.arch.rpm
release:指的是RPM包的发行号, arch指的是运行的系统平台 i386 x86_64 ppc noarch
拆包
将原有的程序包拆分成若干个程序包,有主包和次包。主包内包含程序运行所需的所有组件。次包包含该程序的开发库等文件
主包:name-version-release.arch.rpm
次包:name-function-version-release.arch.rpm
版本说明
changelog
依赖关系
A程序的运行需要首先使用B程序得出一个结论,有了这个结论A程序才能运行,那么A程序就依赖B程序。
为了解决 依赖关系,就出现了前端工具,这个工具自动解决依赖关系
YUM:RHEL系列RPM包管理器的前端工具
APT-GET(apt-cache):deb包管理器的前端工具
zypper:SUSE的RPM包管理器的前端工具
DNF:fedora 22+系统上RPM包管理器的前端工具
原文地址:http://blog.51cto.com/yueyue207/2086987