- API:Application Program Interface(应用编程接口)
- ABI:Application Binary Interface(应用二进制接口)
- Unix-like,
- ELF
- Windows
- exe,msi
库级别的虚拟化:
- Linux:WinE
- Windows:Cywin
系统级开发:
- C/C++:httpd,vsftpd,nginx
- go
应用级开发:
- Java/python/perl/Ruby/PHP:
- java:hadoop,hbase,(运行 Java 程序依赖于 jvm 虚拟机)
- python:OpenStack,(pvm)
- perl:(perl 解释器)
- Ruby:(Ruby 解释器)
- PHP:(PHP 解释器)
C/C++ 程序格式:
源代码: 文本格式的程序代码
编译开发环境: 编译器, 头文件, 开发库
二进制格式: 文本格式的程序代码 --> 编译器 --> 二进制格式(二进制程序, 库文件, 配置文件, 帮助文件)
Java/python 程序格式:
源代码: 编译成能够在其虚拟机 (jvm/pvm) 运行的格式
开发环境: 编译器, 开发库
二进制:
项目构建工具:
- c/c++:make
- java:maven
程序包管理器:
源代码 --> 目标二进制格式 --> 组织成为一个或有限几个 "包" 文件
安装, 升级, 卸载, 查询, 校验
程序包管理器:
- Debian:dpt,dpkg,".deb"
- RedHat:RedHat package manager(红帽管理工具),rpm,".rpm";rpm is package manager;
- S.U.S.E:rpm,".rpm"
- Gentoo:ports
- Arch Linux:
源代码: name-VERSION.tar.gz
VERSION:major,minor.release
rmp 包命名格式:
- name-VERSION-release.arch.rmp
- VERSION:major.minor.release
release.arch:rpm 包的发行号
- release.os:2.el7.i386.rpm
- archetecture:i386,x64(amd64),ppc,noarch
- Redis-3.0.2.targz --> Redis-3.0.2-1.centos7.x64.rpm
拆包: 主包和支包
主包: name-VERSION-release.arch.rpm
支包: name-function-VERSION-release.arch.rpm
function:devel,utils,libs,......
依赖关系:
X,Y,Z
X --> Y,Z
前段工具: 自动解决依赖关系
yum:RHEL 系列系统上 rpm 包管理器的前段工具
apt-get(apt-cache):deb 包管理器的前段工具
zyyper:suse 的 rpm 管理器前段工具
dnf:Fedora 22 + 系统上 rpm 包管理工具
程序包管理器:
功能: 将编译好的应用程序的各组成文件打包成一个或几个程序包文件, 从而更方便地实现程序包的安装, 升级, 卸载等管理操作
1, 程序包的组成清单(每个程序包都单独实现):
文件清单
安装或卸载时运行的脚本
2, 数据库(公共)
程序包的名称和版本
依赖关系
功能说明
安装生成的各文件的文件路径及校验码信息
等等等
/var/lib/rpm
来源: http://www.bubuko.com/infodetail-2963484.html