菜鸟笔记
提升您的技术认知

菜鸟教程

rapidjson 构造数组将函数实现放在头文件中RapidJSON解析和生成Json绝对路径和相对路径gcc 优化选项 -O1 -O2 -O3 -Os 优先级Python求一个整数位数的方法python中判断数字位数的几种方法python计算分位数查看hive的版本如何查看hadoop的版本elasticsearch查看所有indexsublime 列模式 列编辑shell遍历目录下所有文件http-parser解析http报文详解supervisor守护工具配置lnmp为已有站点手动更新ssl证书记录java 最长回文、最长回文子串ssh免密码登录为Linux内核开启BBR加速frp服务开机自启x86架构下,页面大小为什么是4K?如何限制对象只能建立在堆上或者栈上进程间通信的方式SyntaxError: Non-ASCII character '\xe5'TCP 连接半关闭问题ucontext 协程库代码分析python中yield的用法详解为PHP7.0安装redis扩展ucontext 简单协程库ImportError: No module named cv2的完美解决方法HashMap扩容全过程关于HashMap常见面试考点(底层原理+扩容机制)DOS批处理中的字符串处理详解(字符串截取)Linux下如何查找.sh后缀的文件core文件出现“is not a core dump: File format not recognized”的原因和解决方法(看/proc/pid/limits)记一次docker问题定位(perf,iostat等性能分析)Protocol Buffers 2.5.0 安装python 使用thrift序列化与反序列化对象PHP的base64_decode乱码linux中后台运行 java -jarLinux常用命令--文件搜索Linux常用命令--文件基础操作与文件权限变更Linux常用命令--软件包管理之(RPM包管理)Linux常用命令--文件编辑与查看Linux常用命令--文件压缩与挂载Linux常用命令--系统管理Linux常用命令--系统管理之(用户管理、用户组管理)Linux常用命令--系统管理之(进程管理、定时任务、系统监控)Linux常用命令--软件包管理之(服务管理)Linux常用命令--软件包管理之(yum与源码包安装)Linux初窥:Linux下SSH免密码登录配置如何查看CentOS7的版本信息Linux环境变量文件介绍Linux下Tomcat的安装与配置CentOS解决-bash: vim: command not found10 个提高效率的 Linux 命令别名shell比较浮点数和整数crontab 30秒执行一次Python中字典合并的四种方法shell查看CPU 硬盘 内存使用率Python 四大主流 Web 编程框架python:web后台框架简单实现

Linux常用命令--软件包管理之(RPM包管理)

阅读 : 88

目录

Linux软件包分类

源码包和二进制包的优缺点

源码包的优点:

源码包的缺点:

二进制包的优点:

二进制包的缺点:

RPM包命名规则

RPM包文件默认安装位置

相关命令

rpm

cpio

rpm2cpio

Linux软件包分类

Linux系统下的软件包分为源码包和二进制包两种类型。

  • 源码包:源码包里面包含了软件的源代码,在使用源码包进行软件安装的时候,计算机需要先经过编译,将源代码编译为计算机能够识别的机器语言,然后才能进行安装。

  • 二进制包:二进制包其实就是将源代码经过编译之后生成的机器语言包,例如:rethat系列的二进制包是RPM包,debian系列的二进制包是DEB包。

源码包和二进制包的优缺点

源码包的优点:

  • 开源,如果有足够的能力,可以修改源代码;

  • 可以更加自由地选择安装所需的功能;

  • 编译安装使得软件能够更大限度的适配自己的系统,比采用二进制安装更加稳定、效率更高;

  • 卸载方便,直接删除源码包的安装目录即可。

源码包的缺点:

  • 安装过程步骤复杂,容易出现安装错误,而一旦报错,解决起来极为困难;

  • 编译过程时间较长,比使用二进制包安装花费时间更多。

二进制包的优点:

  • 包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询和卸载;

  • 安装速度比源码包安装快的多。

二进制包的缺点:

  • 经过编译,不能再看到源代码;

  • 功能选择不如源码包灵活;

  • 依赖性(RPM依赖查询网址:http://www.rpmfind.net/)。 

RPM包命名规则

RPM包文件默认安装位置

/etc/ 配置文件默认安装目录
/usr/bin/ 可执行的命令安装目录
/usr/lib/ 所依赖的函数库文件保存位置
/usr/share/doc/ 软件帮助文档保存位置
/usr/share/man/ 软件手册保存位置

相关命令

rpm

命令用途:RPM包的管理工具。

命令语法:rpm [选项] [包全名]|[包名]|[系统文件名]

常用选项:

-i:安装(install);

-U:升级(upgrade);

-e:卸载(erase);

-v:显示安装过程详细信息(verbose);

-h:显示安装进度(hash);

--nodeps:不检查依赖性; 

//安装httpd-2.2.15-29.el6.centos.x86_64.rpm
rpm -ivh httpd-2.2.15-29.el6.centos.x86_64.rpm 
//升级httpd-2.2.15-29.el6.centos.x86_64.rpm
rpm -Uvh httpd-2.2.15-29.el6.centos.x86_64.rpm
//卸载httpd软件包
rpm -e httpd

-q:查询(query);

-i:查询软件包信息(information);

-l:查询包中文件的默认安装位置(list);

-f:查询系统文件属于哪个软件包(file);

-R:查询软件包的依赖性(requires);

-a:查询所有(all);

-p:查询未安装包信息(package);

-V:校验指定RPM包中的文件(verify); 

标识 意义
S 文件大小是否改变
M 文件的类型(参照文件类型对照表)或文件的权限是否改变
5 文件MD5校验值是否改变
D 设备中的从代码是否改变
L 文件路径是否改变
U 文件的所有者是否改变
G 文件的所属组是否改变
T 文件的修改时间是否改变

校验的文件类型对照表如下。

标识 类型
c 配置文件(config file)
d 普通文档(documentation)
g “鬼”文件(ghost file),指不该出现在这个RPM包中的文件
l 授权文件(license file)
r 描述文件(read me)
//查询所有已安装的httpd软件包
rpm -qa | grep httpd
//查询已安装的httpd软件包的详细信息
rpm -qi  httpd
//查询未安装的httpd-2.2.15-29.el6.centos.x86_64.rpm软件包的详细信息
rpm -qip  httpd-2.2.15-29.el6.centos.x86_64.rpm 
//查询已安装的httpd软件包中文件的安装位置
rpm -ql  httpd
//查询未安装的httpd-2.2.15-29.el6.centos.x86_64.rpm软件包中文件的安装位置
rpm -qlp  httpd-2.2.15-29.el6.centos.x86_64.rpm
//查询系统文件/usr/sbin/httpd所属的软件包
rpm -qf /usr/sbin/httpd
//查询已安装的httpd软件包的依赖性
rpm -qR httpd
//查询未安装的httpd-2.2.15-29.el6.centos.x86_64.rpm软件包的依赖性
rpm -qRp httpd-2.2.15-29.el6.centos.x86_64.rpm
//校验已安装的httpd软件包
rpm -V httpd
//校验未安装的httpd-2.2.15-29.el6.centos.x86_64.rpm软件包
rpm -Vp httpd-2.2.15-29.el6.centos.x86_64.rpm

注:在使用rpm命令时,若操作的包是未安装的软件包时,需使用包全名,而且要注意路径;若操作的是已经安装的软件包时,使用包名,系统会去/var/lib/rpm/中的数据库中搜索。

cpio

命令用途:创建软件备份档案和从备份档案中提取文件。

命令语法:cpio [选项] [<|>] [文件|设备]

常用选项:

-o:执行copy-out模式,建立备份档案;

-c:使用旧ASCII备份格式;

-B:将输入/输出的区块大小改成5210Bytes;

-i:执行copy-in模式,还原备份档案;

-d:还原时如有需要则自动新建目录;

-v:详细显示执行过程;

-u:更新,用较新的文件覆盖旧的文件; 

//将test目录下的所有普通文件都备份到/bak/test.cpio 
find /test/ -type f |cpio -covB > /bak/test.cpio 
//将备份包/bak/test.cpio中的文件还原到相应的位置,如果有相同文件则进行覆盖
cpio -idvcu < /bak/test.cpio

rpm2cpio

命令用途:将rpm软件包转换为cpio格式的文件。

命令语法:rpm2cpio [包全名]  

//将RPM包中的bin/ls还原到当前目录
rpm2cpio /mnt/Packages/coreutils-8.4-31.el6.x86_64.rpm | cpio -idv ./bin/ls