linux程序包管理--rpm命令管理方式
发表于:2024-11-14 作者:千家信息网编辑
千家信息网最后更新 2024年11月14日,1.概述API:Application Program InterfaceABI:Application Binary Interface Unix-like ElF win
千家信息网最后更新 2024年11月14日linux程序包管理--rpm命令管理方式
1.概述
API:Application Program InterfaceABI:Application Binary Interface Unix-like ElF windows exe,msi库级别的虚拟化 winE(linux上运行模拟windows) cywin(windows上运行模拟linux)系统级开发: C/C++:httpd,vsftpd,nginx go应用级开发: java/Python/perl/ruby/php: java:hadoop,hbase(jvm) Python:openstack(pvm)C/C++程序格式: 源代码:文本格式的程序代码 编译开发环境:编译器,头文件,开发库 二进制格式:文本格式的程序代码-->编译器-->二进制格式(二进制程序,库文件,配置文件,帮助文件) Java/Python程序格式: 源代码:编译成能够在其虚拟机上(jvm/pvm)运行的格式; 开发环境:编译器、开发库 二进制: 项目构建工具: c/c++:make java:maven 编译顺序由项目构建工具自行决定(开发者已设置好编译顺序)
2.程序包管理器
源代码-->目标二进制格式-->组织称为一个或有限几个"包"文件; 安装、升级、卸载、查询、校验
程序包管理器:
debian(Ubuntu):dpt,工具:dpkg,程序包以".deb"结尾redhat:redhat package manager ,rpm,".rpm";rpm is package manager;S.u.S.E:rpm ,'.rpm'Gentoo:portsArchLinux:
3.程序包的组成格式
源代码:name-VERSION.tar.gz VERSION:major.minor.releaserpm包命名格式: name-VERSION-release.arch.rpm VERSION:major.minor.release release.arch:rpm包的发行号 release.os:2.el7.i386.rpm archetecture(架构):i386,x64(amd64),ppc,noarch(没平台要求,可以使用在任意平台架构上)rpm拆包:主包和支包 主包:name-VERSION-release.arc.rpm 支包:name-function-VERSION-release.arc.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包管理器的前端工具
4.程序包管理器功能和组成部分
功能:将编译好的应用程序的各组成文件打包成一个或几个程序包文件,从而更方便地实现程序包的安装、升级、卸载和查看1.程序包的组成清单(每个程序包都单独实现); 文件清单 安装和卸载时运行的脚本2.数据库(公共) 程序包的名称和版本 依赖关系 功能说明 安装生成的各文件路径及校验码信息; 等等等 CentOS上的程序包数据库位置/var/lib/rpm/
5.获取程序包的途径
(1)系统发行版的光盘或官方的文件服务器(或镜像站点); http://mirrors.aliyun.com http://mirrors.sohu.com, http://mirrors.163.com(2)项目的官方站点(3)第三方组织制作的rpm包: (a)EPEL: (b)搜索引擎查找 http://pkgs.org http://rpm.pvone.net http://rpmfind.netstat(4)自己动手,丰衣足食建议:检查其合法性(完整性) 来源合法性: 程序包的完整性;
6.CentOS系统上rpm命令管理程序包
命令介绍
安装、升级、卸载、查询和校验、数据库维护rpm命令:rpm [OPTION] [PACKAGE_FILE] 安装:-i,--install 升级:-U,--update,-F,-freshen 卸载:-e,--erase 查询: -q,--query 校验:-V ,--verify 数据库维护:--builddb,--initdb
rpm包安装
rpm {-i|--install} [install-options] PACKAGE_FILE ... rpm -ivh PACKAGE_FILE... GENERAL OPTIONS: -v:verbose,详细信息 -vv:更详细的输出 [install-options] -h:hash marks输出进度条;每个#表示2%的进度 --test:测试安装,检查并报告依赖关系及冲突消息等; --nodeps:忽略依赖关系,不建议使用,安装后会不能使用; --replacepkgs:重新安装:rpm -ivh --replacepkgs zsh-5.0.2-7.el7.x86_64.rpm --nodigest:不检查包的完整性信息 --nosignature:不检查包的来源信息及包的完整性注意:rpm可以自带脚本; 四类: --noscripts preinstall:安装过程开始之前运行的脚本,%pre: --nopre postinstall:安装过程完成以后运行的脚本:%post --nopost preuninstall:卸载过程真正开始执行之前运行的脚本,%preun --nopreun postuninstall卸载过程完成以后运行的脚本,%postun --nopostun
rpm包升级
rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...rpm {-F|--freshen} [install-options] PACKAGE_FILE ...-U:升级或安装-F:升级,如果老版本不存在,则不进行安装 rpm -Uvh PACKAGE_FILE ... rpm -Fvh PACKAGE_FILE ... --oldpackage:降级安装; --force:强制升级;注意:(1)不要对内核做升级操作。linux 支持多内核版本并存,因此,直接安装新版本内核; (2)如果某源程序包的配置文件安装后曾修改过,升级时。新版本的程序提供的同一个配置文件不会覆盖原有版本的配置文件。而是把新版本的配置文件重命名(FILENAME.rpmnew)后提供;
卸载:
rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--notriggers] [--test] PACKAGE_NAME ...--llmatches:卸载所有匹配指定名称的程序包的各版本--nodos:忽略依赖关系--test:测试卸载,dry run 模式rpm -e zsh
查询
rpm {-q|--query} [select-options] [query-options] 1. [select-options] rpm -q PACKAGE_NAME:查询指定的程序包是否已安装,及其版本; -a,--all:查询所有已经安装过的包 -f FILE:查询指定的文件由哪个程序安装生成 -p,--package PACKAGE_FILE:用于实现对未安装的程序包做查询操作。 --whatprovides CAPABILITY:查询指定的CAPABILITY(能力)由哪个程序包提供 bin]# rpm -q --whatprovides config\(bash\) bash-4.1.2-40.el6.x86_64 rpm -q --whatprovides zprof.so'()(64bit)' --whatrequires CAPABILITY:查询指定的CAPABILITY(能力)被哪个包所依赖;2.[query-options] --changlog:查询 -l,--list :安装生成的所有文件列表 -i,--info :查询程序包相关的information,版本号,大小,所属的组,等 -c,--configfiles:查询指定的程序包的配置文件 -d,--docfiles:查询指定的程序包提供的帮助文档 --provides:列出指定的程序包的所有CAPABILITY(能力) bin]# rpm -q --provides bash config(bash) = 4.1.2-40.el6 bash = 4.1.2-40.el6 bash(x86-64) = 4.1.2-40.el6 -R,--requires:查询指定的程序包的依赖关系; --scripts:查看程序包自带的脚本片段;用法: -qi PACKAGE:信息,qf FILE 文件由哪个包安装来,qc PACKAGE配置文件,ql PACKAGE:安装生成的文件列表,-qd,提供的帮助文档qpi,qpl,qpc...查询未安装的程序包的信息。
校验:
rpm -V zsh #校验rpm安装后有没有被修改过 S file Size differs M Mode differs (includes permissions and file type) 5 digest (formerly MD5 sum) differs D Device major/minor number mismatch L readLink(2) path mismatch U User ownership differs G Group ownership differs T mTime differs P caPabilities differ [root@CentOS6 bin]# rpm -V zsh S.5....T. c /etc/zshrcrpm {-V|--verify} [select-options] [verify-options]
包来源合法性验证和完整性验证:
来源合法性验证: 数字签名:完整性验证rpm --import /media/cdrom/RPM-GPG-KEY-GentOS-7导入密钥信息rpm -K zsh-5.0.2-14.el7.x86_64.rpm获取并导入信任的包制作者的密钥: 对于CentOS发行版本来说:rpm --import /etc/pki/rpm-gpg/RPM-KEY-CentOS-7验证: (1)安装此组织签名的程序时,会自动执行验证 (2)手动过验证:rpm -K PACKAGE_NAME
数据库重建:
rpm管理器数据库路径:/var/lib/rpm 查询操作:通过此处的数据库进行; 获取帮助: CentOS6:man rpm CentOS 7:man rpmdbrpm {--initdb|--rebuilddb}[-v] [--dbpath DIRECTORY] [--root DIRECTORY] --initdb:初始化数据库,当前无任何数据库可初始化创建一个新的;当前有时不执行任何操作 --rebuilddb :重新构建,通过读取当前系统上所有已安装过的程序包进行重新创建;
程序
文件
查询
格式
升级
管理
工具
数据
数据库
版本
开发
编译
运行
信息
脚本
配置
验证
完整性
系统
二进制
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全守护者丁于
网络技术考核要点
杭州应届生软件开发招聘
企业社交网络安全插画
计算机网络技术是什么啊
excel 数据库应用
普天轨交软件开发工作性质
国家网络安全宣传周考试试题
数据库完整性课程论文
服务器pg数据库
bbs服务器
如何黑数据库
仙居软件开发有限公司服务至上
服务器工程师测试题
国外新闻数据库
云服务器防虚拟机检测软件
全球信息网络安全行业规模增速
网络安全温巧燕
软件开发一月工资
乡镇网络安全应急工作
2018河北网络安全试卷5
海宁市快信网络技术有限公司
服务器管理员帐号管理
查看ie缓存数据库
遥感软件开发语言
accP软件开发程序员
数据库行交换
如何加强网络安全问题
互联网新科技ppt
软件登录数据库设计