Linux软件管理(1)-软件包介绍&RPM管理

一、前言

“沧海横流,方显英雄本色”

“夜深风雨归何处,西月窥人到半窗”

“衣带渐宽终不悔,为伊消得人憔悴”

“静以修身,检以养德”

二、软件包介绍&RPM管理

软件包的分类

源码包:

优点:

  • 开源,可以自己修改源代码
  • 自由选择自己需要的功能
  • 编译安装,更加适合自己的系统,搞笑+稳定
    • 那么需要了解的就是什么是编译-->编译就是,我们看的懂abc,机器看不懂,所以就需要从abc-->0101.....这种就是编译的过程
  • 卸载直接删除目录-->方便

缺点:

  • 安装过程步骤比较多,源码编译LNMP环境搭建,容易出现错误
  • 编译的时间过长,
  • 报错复杂,对于新手不容易排错
    • 排错过程-->百度-->谷歌-->专业技术问题的效率需要提高
    • 看官方文档-->换环境

二进制包:

DPKG包:debian、ubuntu等、需要使用的包

RPM包:rhel红帽开发的包管理系统,我们主要学的就是RPM包

优点:

  • 包管理简单,几个命令解决,安装、升级、查询和卸载
  • 安装速度比较快

缺点:

  • 经过编译,看不到源代码
  • 功能选择有默认-->不利于自己查找适合的功能
  • 依赖性强-->需要解决依赖关系

问题1:什么是模块依赖?

#测试rpm安装apache服务-->
[root@Master ~]# mount /dev/cdrom /mnt/cdrom/
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@Master ~]# cd /mnt/cdrom/Packages/

#安装-->
rpm  命令   ivh选项    软件包名
[root@Master Packages]# rpm -ivh httpd-2.2.15-53.el6.centos.x86_64.rpm 
warning: httpd-2.2.15-53.el6.centos.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
error: Failed dependencies:
	apr-util-ldap is needed by httpd-2.2.15-53.el6.centos.x86_64
	httpd-tools = 2.2.15-53.el6.centos is needed by httpd-2.2.15-53.el6.centos.x86_64
	libapr-1.so.0()(64bit) is needed by httpd-2.2.15-53.el6.centos.x86_64
	libaprutil-1.so.0()(64bit) is needed by httpd-2.2.15-53.el6.centos.x86_64
[root@Ma

#这里直接报错,error:失败的依赖关系-->下面就是依赖的模块或者库,需要自己手动安装

问题2:如何查找libapr-1.so.0这种函数库文件?

借助网站:www.rpmfind.net这个网站

直接搜索-->依赖库

搜索出来结果就是我们需要下载安装的包,包中就会有这种函数库文件

问题3:如何选择软件包的安装方式?

源码包:如果服务是给大量用户提供访问的,建议使用源码包,源码包好管理,效率高;

RPM包:如果程序是给少量用户访问,或者本地使用的,建议使用RPM包,因为RPM包管理方便

rpm包讲解

rpm包的命名规则

httpd-2.2.15-53.el6.centos.x86_64.rpm

  • httpd:软件包名
  • 2.2.15:软件版本
  • 15:发布的次数
  • el6:适合rhel系统使用
  • x86_:适合x86_64的平台架构
  • rpm:rpm包的扩展名

安装的时候需要注意:

包全名:如果操作的是未安装的包,需要使用包全名,并且是绝对路径;

包名:如果是已经安装的包的,使用包名即可,系统生成RPM包的数据库,直接搜索数据库;(数据库在/var/lib/rpm/目录下)

rpm命令:

作用:查询或者安装rpm包

语法:

rpm 【选项】 包全名

注意安装包全名的绝对路径

选项:

-ivh:安装,i:安装;v:显示详细信息;h:打印安装进度

-Uvh:升级安装

--nodeps:不检测依赖关系,一般也不用,强行安装

--force:强制安装通常与--replacepkgs这个替换软件包安装

--test:测试,实际不会安装

--prefix:指定路径

-e:卸载

注意:rpm命令常用语查询功能

rpm -qa 包名 查询系统是否安装了这个包

rpm -qa:查看系统所有的包

rpm -qi:查询包名的信息

rpm -ql:查看包的文件列表(包括配置文件)

rpm -qf:查询文件属于哪个包

rpm -qR:查询软件包的依赖性

rpm -Va:校验已安装的所有软件包

rpm -qpi:查询未安装的包的信息,需要跟的是包全名

rpm -qpl:查看没有安装的包的文件列表需要包全名

rpm -qRp:查询未安装包的依赖性

#查询
[root@Master Packages]# rpm -qa httpd
httpd-2.2.15-53.el6.centos.x86_64
[root@Master Packages]# rpm -qa | grep httpd
httpd-devel-2.2.15-53.el6.centos.x86_64
httpd-tools-2.2.15-53.el6.centos.x86_64
httpd-manual-2.2.15-53.el6.centos.noarch
httpd-2.2.15-53.el6.centos.x86_64

#查询包的详细信息
[root@Master Packages]# rpm -qi httpd
Name        : httpd                        Relocations: (not relocatable)
Version     : 2.2.15                            Vendor: CentOS
Release     : 53.el6.centos                 Build Date: 2016年05月12日 星期四 03时29分17秒
Install Date: 2021年01月15日 星期五 00时19分20秒      Build Host: worker1.bsys.centos.org
Group       : System Environment/Daemons    Source RPM: httpd-2.2.15-53.el6.centos.src.rpm
Size        : 3133738                          License: ASL 2.0
Signature   : RSA/SHA1, 2016年05月12日 星期四 18时52分29秒, Key ID 0946fca2c105b9de
Packager    : CentOS BuildSystem <http://bugs.centos.org>
URL         : http://httpd.apache.org/
Summary     : Apache HTTP Server
Description :
The Apache HTTP Server is a powerful, efficient, and extensible
web server.

#查询包的文件列表
[root@Master ~]# rpm -ql httpd
/etc/httpd
/etc/httpd/conf
/etc/httpd/conf.d
.......................

#查询文件属于哪个包
  [root@Master ~]# rpm -qf /etc/issue
centos-release-6-8.el6.centos.12.3.x86_64
  
#查询包的依赖关系
[root@Master ~]# rpm -qR httpd
/bin/bash  
/bin/sh  
/bin/sh  
........

问题1:如何查看包文件是否被修改过?

使用到rpm -V 包名

详细的分析如下:

[root@Master ~]# rpm -V httpd
S.5....T.  c /etc/httpd/conf/httpd.conf

S:文件大小是否改变
M:文件的类型或者文件的权限是否被改变
5:文件的MD5校验是否改变
D:设备的主从代码是否改变
L:文件路径是否改变
U:文件的属主是否改变
G:文件的属组是否改变
T:文件的修改时间是否改变

c:普通的配置文件
d:普通文档
g:鬼违建
l:授权文件
r:描述文件

#什么是MD5?
这个是完整性校验,是一种加密的算法;
只要内容不变,MD5码就不变,如果内容改变,则MD5码就会改变

问题2:如何导入数字证书

什么是数字证书?

数字证书用来校验包文件是否有修改

rhel:光盘数字证书,/etc/pki/rpm-gpg/rpm-gpg-key-CentOS-6

#导入数字证书
[root@Master ~]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
[root@Master ~]# rpm -qa | grep gpg-pubkey
gpg-pubkey-c105b9de-4e0fd3a3

服务启动:

service 服务名 start|stop|restat|status

启动、停止、重启、状态

源码包安装是不能加入service这条命令来使用的

service搜索的文件目录是:/etc/rc.d/init.d/目录下

#启动httpd
[root@Master Packages]# service httpd start

#停止httpd
[root@Master Packages]# service httpd stop

#重启httpd
[root@Master Packages]# service httpd restart

#查看httpd的状态
[root@Master Packages]# service httpd status
httpd (pid  1909) 正在运行...

RPM包文件提取实验

cpio命令:--->这个备份还原--->一般不用,作为扩展了解

作用:从包中提取需要的命令

语法:

cpio 【选项】 文件| 设备名

选项:

-o:copy-out 模式,备份

-v:显示过程

-c:使用较新的存储方式

-B:设定输入输出块为5120bytes

-i:copy-in模式,还原

-v:显示过程

-c:使用较新的存储方式

-d:还原时创建新目录

-u:自动使用较新的文件覆盖旧文件

rpm2cpio 包全名 |cpio -idv . 文件绝对路径

rpm2cpio:将rpm包转换成cipo格式

cpio:标准工具,用于创建文档文件和从文档文件中提取文件

实验过程:

#移走ls命令
[root@Master ~]# mv /bin/ls /tmp/
[root@Master ~]# ls
-bash: /bin/ls: 没有那个文件或目录

#查看一下ls由哪个包提供
[root@Master ~]# rpm -qf /bin/ls
coreutils-8.4-43.el6.x86_64

#从光盘中提起
[root@Master ~]# rpm2cpio /mnt/cdrom/Packages/coreutils-8.4-43.el6.x86_64.rpm  | cpio -idv ./bin/ls
./bin/ls
25240 块
[root@Master ~]# cp /root/bin/ls /bin/

#验证
[root@Master ~]# ls
bin  install.log  install.log.syslog

 

三、结束

“当别人休息时,你仍在努力;当别人放弃时,你仍然坚持。当别人困惑时,你的眼睛是坚定的。当别人开心的时候,你选择学习。当别人躺在床上时,你已经在旅行了。当别人懈怠时,你挑战记录。当别人沉默时,你表现出热情;当别人祝贺你时,你用眼泪感谢他们。当别人奋斗的时候,你已经成功了!”

“一个人的成就不在于他的光环,而在于他的经历。”

“生活不能太平淡,平淡的生活注定会错过生活的乐趣”

“如果生命是一片海,那么期待大海会有暴风雨,在浅滩我最喜欢的1句励志上的航行永远不会到达美丽的海岸”

“如果生活是一座山,那就期待这座山有多高,而在山脚下爬山永远不会欣赏到美丽的风景”

“如果生活是一片草原,那就期待风雨吧,荒原边缘的游牧者永远也不会创造出壮丽的战斗”

互勉~!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Liang_GaRy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值