Linux程序包管理
API:Application Program Interface
ABI:Application Binary Interface
Unix-like,
ELF
Windows
exe,msl
库级别的虚拟化;
Linux:WinE
Windows:Cywin
系统级开发:
C/C++: http, vsftpd,nginx
go
应用级开发:
java/Python/perl/ruby/php:
java:hadoop,hbase,(jvm)
Python:openstack,(pvm)
perl:(perl)
ruby:(ruby)
php:(php)
程序格式:
源代码:文本格式的程序代码:
编译开发环境:编译器,头文件,开发库
二进制格式:文本格式的程序代码–>编译器–>二进制格式(二进制程序,库文件、配置文件、帮助文件)
java/python程序格式:
源代码:编译成能够在其虚拟机(jvm/pvm)运行的格式;
开发环境:编译器、开发库
二进制
项目构建工具:
c/c++:make
java:maven
程序报管理器:
源代码–>目标二进制格式–>组织成为一个或有限几个”包“文件;
安装、升级、卸载、查询、校验
程序包管理器:
debian:dpt, dpkg, ".deb"
redhat: redhat package manager简称rpm, ”.rpm"
S.u.S.E:rpm, ".rpm"
Gentoo: ports
Archlinux:
源代码:name-VERSION.tar,gz
VERSION: major.minor.release
rpm包名格式:
name-VERSION-release.arch.rpm
VERSION: major.minor.release
release.arch: rpm报的发行号
release.os: 2.el7.i386.rpm
rchetecture: i386,x64(amd64),ppc,noarch
redis-3.0-1.centos7.x64.rpm<–redis-3.0.2.targz
拆包:主包和支包
主包:name-VERSION-release.arch.rpm
支包:name-function-VERSION-release.arch.rpm
function:devel,utils,libs….
依赖关系:
x, y, z
x–>y,z
y–>A,B,C
C–>y
前端工具:自动解决依赖关系;
yum:rhel系列系统上rpm包管理器的前端工具;
apt-get (apt-cache):deb包管理的前端工具;
zypper: suse的rpm管理器前端工具;
dnf: Fedora 22+系统上rpm包管理器的前端工具;
程序包理器:
功能:将编译好的应用程序的个组成文件打包成一个或几个程序包文件,从而更方便地实现程序包的安装,升级,卸载和查询等管理操作;
1、程序包的组成清单(每个程序报都单独实现);
文件清单
安装和卸载是运行的脚本
2、数据库(公共)
程序报的名称和版本;
依赖关系;
功能说明;
安装生成各文件的路径及校验码信息;
等等
/var/lib/rpm/
获取程序报的途径:
(1)系统发行版的光盘或官方的文件服务器(或镜像站点):
http://mirrors.aliyun.com
http://mirrors.163.com
(2)项目的官方站点
(3)第三方组织:
(a)EPEL
(b)搜索引擎
(4)自动动手,丰衣足食
建议:检查其合法性
来源合法性;
程序包的完整性;
CentOS系统删rpm命令管理程序包:
安装,升级,卸载,查询和校验,数据库维护
rpm命令:rpm [OPTIONS] [PACHAGE-]
安装:-i.–freshen
升级:-u,–update,-F,–freshen
卸载:-e, –erase
查询:-q'–query
校验:-V,–verify
数据库维护:–builddb, –initdb
安装:rpm{-i |–install-options] PACKAGE-FILE…
rpm
GENERAL OPTIONS:
-v: verbose,详细信息
-vv:更详细的输出
[install-options]:
-h: hash marks输出进度条;每个#表示2%的进度;
–test: 测试安装,检查并报告依赖关系及冲突消息等;
–replacepkgs: 重新安装
注意:rpm可用自带脚本:
四类:
preinstall:安装过程开始之前运行的脚本,%pre
postinstall:安装过程完成之后运行的脚本,%post
preuninstall:卸载过程真正开始执行之前运行的脚本%postun,–nopostun]
–nosignature: 不检查包签名信息,不检查来源合法性;
–nodigest: 不检查包完整信息;
原创文章,作者:shadow,如若转载,请注明出处:http://www.178linux.com/65391