1.软件包管理
软件包分类
- 源码包(源代码包,需要编译)
- 二进制包(RPM包、系统默认包)
注意:windows中的软件在Linux中无法安装
源码包
优点
- 开源,如果有足够的能力,可以修改源代码
- 可以自由选择所需的功能
- 软件是编译安装,所以更加适合自己的系统,更加稳定也效率更高
- 卸载方便,直接删除目录即可
缺点
- 安装过程步骤较多,尤其安装较大的软件集合时,容易出现拼写错误
- 编译过程时间较长,安装比二进制安装时间长
- 因为是编译安装,安装过程中一旦报错新手很难解决
源码包安装不适合初学者!
RPM包
优点
- 包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询和卸载
- 安装速度比源码包安装快的多
缺点
- 经过编译,不再可以看到源代码
- 功能选择不如源码包灵活(效率不如源码包)
- 依赖性(源码包可能依赖其他包)
总结
- 如果软件是对外提供服务的,供很多客户端访问的,使用源码包效率更高
- 如果是底层支持软件或者本机使用软件,可以使用RPM包更方便
脚本安装包
所谓的脚本安装包(一键安装包),就是把复杂的软件包安装过程写成了程序脚本,初学者可以执行程序脚本实现一键安装但实际安装的还是源码包和二进制包
优点
安装简单、快捷、方便
缺点
完全丧失了自定义性,比如不能定义安装软件的版本,不能定义所需要软件的功能等
安装建议
建议在安装线上的生产服务器软件包时尽量都采用源码包进行安装,主要基于以下几点考虑:
- 源码包安装可以自行调整编译参数,最大化地定制安装结果,可针对特定的应用场景选择需要什么组件或不需要什么组件
- 理论上源码静态编译方式安装效率会高一点,一般在5%左右
- 同一台主机上可以安装多个相同的服务,作为集群或者主从,即所谓的单机多实例
- 方便管理,可以将相关软件源码包都安装在指定目录进行统一管理。可以很方便查看具体安装了哪些软件,移除软件以及迁移软件(包含的配置文件)也非常方便。
2.rpm命令管理
RPM包概述
RPM包的来源
RPM包在系统光盘中,如何查看?
首先挂载光盘:mount /dev/sr0 /mnt/cdrom/
RPM包路径:/mnt/cdrom/Packages
RPM包命名原则
httpd-2.2.15-15.el6.centos.1.i686.rpm
— httpd 软件包名
— 2.2.15 软件版本
— 15 软件发布的次数
— el6.centos 适合的Linux平台
— i686 适合的硬件平台(i686普通微机平台,x86_64指64位系统)
— rpm rpm包扩展名
RPM包依赖性
树形依赖:a→b→c (依次安装依赖包)
环形依赖:a→b→c→a (多个包用一条安装命令)
模块依赖:模块依赖,查询网站:www.rpmfind.net
比如安装mysql-connector-odbc,会有个库文件依赖:xxx.so.2,
解决办法是找到这个库文件属于哪个安装包,然后安装它
包全名与包名
包全名:操作的包是没有安装的软件包时,使用包全名。而且要写绝对路径
包名:操作已经安装的软件包时,使用包名,是搜索/var/lib/rpm/中的数据库
RPM包常用命令
安装命令:rpm -ivh 包全名
升级命令:rpm -Uvh 包全名
卸载命令:rpm -e 包名
RPM包查询命令
查询是否安装
rpm -q 包名
#查询包是否安装
rpm -qa
#查询所有已经安装的RPM包
rpm -qa | grep 包名
#查询包含指定包名的所有已安装的RPM包
查询软件包详细信息
rpm -qi 包名
-i:
查询软件信息
-p:
查询未安装包信息,需要包全名
如:rpm -qip libattr-2.4.44-7.el6.x86_64.rpm
查询包中文件安装文件
rpm -ql 包名
-l:
列表(list)
-p:
查询未安装包信息(package),需要包全名
如:rpm -qlp time-1.7-37.1.el6.x86_64.rpm
查询系统文件属于哪个RPM包
rpm -qf 系统文件名
-f:
查询系统文件属于哪个软件包
如:rpm -qf /etc/yum.conf
查询软件包的依赖性
rpm -qR 包名
-R:
查询软件包的依赖性
-p:
查询未安装包信息
RPM包默认安装位置
RPM包校验
rpm -V 已安装的包名
演示校验
# 查询包里面的文件位置
rpm -ql zip
# 校验包,校验通过不显示内容
rpm -V zip
# 修改任意一个包中的文件
vim /usr/share/doc/zip-3.0/algorith.txt
# 再次校验,显示了校验结果
rpm -V zip
S.5....T. d /usr/share/doc/zip-3.0/algorith.txt
验证内容中的8个信息的具体内容如下
文件类型
RPM包中提取文件
rpm2cpio 包全名 | cpio -idv .文件绝对路径
rpm2cpio
#将rpm包转换为cpio格式的命令
cpio
#是一个标准工具,它用于创建软件档案文件和从档案文件中提取文件
模拟ls文件丢失找回的步骤
# 查询ls命令属于哪个软件包
rpm -qf /bin/ls
# 造成ls命令误删除假象
mv /bin/ls /tmp/
# 提取RPM包中ls命令到当前目录的/bin/ls下
rpm2cpio /mnt/cdrom/Packages/coreutils-8.419.el6.i686.rpm | cpio -idv ./bin/ls
# 把ls命令复制回/bin/目录,修复文件丢失
cp /root/bin/ls /bin/
下一小节我们将介绍更方便的yum在线安装,以及源码包的安装。
网友评论