Linux-源码包和RPM包认识及其管理【安装服务不可不懂的知识】

RPM包管理

1、软件包管理

1.源码包

源码包将源码开放给用户,这也符合linux最大的特点就是开源。源码包安装时间久,主要是编译的时间久。

优点

①开源

②可以自由选择所需的功能

③软件是编译安装,适合自己的系统,更稳定效率更高

④卸载方便,直接删除就行了。

缺点

①安装过程步骤较多,容易出现拼写错误。

②编译过程时间较长

③编译安装过程中报错,新手难以解决。

源码包包括脚本安装包,即由专业人员将源码包的安装过程写成脚本的形式,简化安装步骤。

2.二进制包(RPM包、系统默认包)

源码包经过编译之后,形成二进制包。二进制包可从各个软件包的官网上下载。

优点

①rpm包管理系统简单,几个命令实现安装、升级、查询、卸载

②安装速度比源码包安装快得多

缺点

①经过编译,不可以看到软件包的源代码

②功能固定

③二进制包之间具有依赖性(cba[安装顺序]、abc[卸载顺序])

2、RPM包-rpm命令管理

1.RPM命名规则

httpd-2.2.15-15.e16.centos.1.i686.rpm

httpd 软件包名

2.2.15 软件包版本

15 发布次数

e16.centos 适用的linux平台

i686 适用的硬件平台

rpm rpm扩展名

自己编译生成rpm包建议以.rpm结尾

包名:httpd

包全名:httpd-2.2.15-15.e16.centos.1.i686.rpm

2.RPM包依赖性(rpm包的缺点)

①树形依赖abc

②环形依赖abca

③模块依赖:即安装的rpm包依赖于某一个模块。而树形依赖和环形依赖都是依赖于某一个rpm包。
可以在以下网站找到包含该模块的rpm包,然后安装即可。
www.rpmfind.net

3.RPM软件包安装和卸载

包全名:操作的包是没有安装的软件包,使用包全名,并且要注意路径。(在安装和升级时使用)

包名:操作已经安装的软件包,使用包名,搜素的是/var/lib/rpm下的文件。(在查询和卸载时使用)

3.1 RPM安装

常用语法:rpm -ivh 包全名

可使用包全名的绝对路径也可以进入到相应目录直接使用包全名

在安装的使用要把依赖包先装上!!!(特别烦)

参数 作用
-i 安装
-v 显示详细信息
-h 显示安装进度
–nodeps 不检测依赖性(一般在生产环境中不用这个参数)

3.2 RPM升级

-U 升级upgrade
rpm -Uvh 包全名

3.3 RPM卸载

在任何目录下都能执行卸载语句。
-e 卸载erase
rpm -e 包名
注意:安装的时候顺序(abc),卸载的时候倒序(cba)

4.RPM软件包查询

参数 作用
-q 查询(query)
-a 所有的(all)
-i 软件包信息(information)
-p 未安装的软件包(package)
-l 包中文件列表(list)
-f 查询系统文件属于哪个包(file)[反向追查]
-R 查询软件包的依赖性
# 最简单的形式,必须要有-q参数
# 安装卸载升级,加包全名查询
#其他加包名查询
rpm -q httpd
# 查询所有包的信息
rpm -qa
# 查询包含httpd软件包的信息
rpm -qa | grep httpd
# 查询软件包的详细信息
rpm -qi
# 查询所有未安装包的信息
rpm -qap
# 查询httpd软件包包含哪些文件
rpm -ql httpd
# 查询未安装软件包的依赖性
rpm -qpR samba

5.RPM包校验

作用:用来校验rpm包里的文件是否有被修改。

运行以下语句,若无提示信息,则没有被修改。

rpm -V 包名

校验内容里的信息解读:

– 第一部分–文件的修改情况–

SM5DLUGT

S:文件大小是否改变

M:文件类型和文件大小是否改变

5:文件MD5校验是否改变,或者说文件内容是否改变

D:设备的代码是否改变

L:文件路径是否改变

U:文件的所有者是否改变

G:文件的所属组是否改变

T:文件的修改时间是否改变

– 第二部分–文件类型–

c:配置文件(config file)

d:普通文件(documentation)

g:毒文件(ghost file)

l:授权文件(license file)

r:描述文件(read me)

6.RPM包中文件提取

作用:当误操作删除了某个重要的配置文件或者某个命令,如/bin/ls,可以使用RPM包查询找出该文件属于哪个RPM包,再从该RPM包中进行文件提取,最后覆盖即可。

#查询被删除文件属于哪个rpm包
rpm -qf 文件的绝对路径
#提取rpm包里的对应文件到当前目录下
rpm2cpio 包全名 | cpio -idv .文件绝对路径
#复制文件到指定路径
cp ./bin/ls /bin/ls

rpm2cpio:将rpm格式转化为cpio格式

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

-i:copy-in模式,还原

-d:还原时自动新建目录

-v :显示还原过程

3、RPM包-yum在线管理

为了解决RPM包安装的依赖性。
缺点:对于redhat而言,yum的使用是要收费的。对于Centos,yum的使用是免费的。

1.配置yum源

前提:能访问公网
配置网络:redhat可使用setup配置网络参数。修改网络配置文件ONBOOTyes。重启网络服务。

选项 作用
[name] 容器名称
name 容器作用
mirrorlist 镜像站点
baseurl yum源服务器的地址
enabled 容器是否生效,1或不写都是生效,0为生效。
gpgcheck RPM数字证书是否生效,1生效,0不生效。
gpgkey 数字证书的公钥地址保存位置

2.YUM软件包的使用

# 查询所有可用的软件包列表
yum list
# 查询服务器上所有与关键字相关的包
yum search 包名
# 安装
yum install -y 包名
# 升级
# 若使用yum update -y是升级所有软件包,包括linux内核的升级,远程操作时会导致服务器的崩溃无法开机,慎用。
yum update -y 包名
# 卸载
# 卸载某个rpm包,其所依赖的rpm包也会被卸载,而可能出现其他rpm包也是依赖这些rpm包的,导致其他功能无法使用或服务器直接崩溃。
yum remove -y 包名
# 注意:安装服务器,用什么装什么,尽量不要用yum卸载。

3.YUM软件组的使用

# 查询所有可用的软件组列表
yum grouplist
# 安装软件组
yum groupinstall "软件组名"
# 卸载软件组
yum groupremove "软件组名"

4. 光盘YUM源的使用(本地yum源)

  1. 添加光盘,挂载光盘到某个挂载点上。
  2. 若在/etc/yum.repos.d/目录下有多个yum源,要让其他的网络yum源失效。
    1. 修改enabled=0,使网络yum源失效,较麻烦。
    2. 使用mv命令修改网络yum源的文件名
  3. 修改光盘yum源文件(repo文件)
    1. 修改baseurl=file://挂载点绝对地址
    2. 修改enabled=1

4、源码包管理

1. 源码包和RPM包安装后的区别

安装位置的不同

①RPM包安装位置:

  • /etc/ 配置文件安装目录
  • /usr/bin/ 可执行文件安装目录
  • /usr/lib/ 程序所使用的函数库保存位置
  • /usr/share/doc/ 基本的软件使用手册保存位置
  • /usr/share/man/ 帮助文件保存位置

除了以上文件外,有些RPM包还有其他的安装路径。可使用命令rpm -ql 包名查询。

②源码包安装位置: 安装在指定位置,默认是:/usr/local/软件名/

安装位置的不同造成服务管理方式的不同

①RPM包安装的服务可以使用系统服务管理命令(service或者systemctl)

# 三种方式启动rpm包安装的服务
# 传统的启动服务方式
/etc/rc.d/init.d/httpd start

service httpd start

systemctl start httpd

②源码包安装的服务不可以使用系统服务管理命令。只能从绝对路径中启动。

源码包服务启动文件的绝对路径 start

2. 源码包安装httpd

# 安装C语言编辑器
[root@master ~]# yum install -y gcc
# 下载源码包
# httpd官网源码下载地址:http://archive.apache.org/dist/httpd/
# 最新版本httpd源码包:http://archive.apache.org/dist/httpd/httpd-2.2.9.tar.gz
# 官网源比较慢,建议下载到本地再上传到linux服务器
# 可以使用Winscp工具上传到linux服务器
# 源码包保存位置 /usr/local/src
# 软件安装位置 /usr/local
# 如何确认安装过程报错,出现以下情况才算报错:安装过程停止并且出现error、warning、no等提示。(报错了很难解决)
# 解压源码包
[root@master ~]# tar xzvf httpd-2.2.9.tar.gz 
# 进入源码包文件夹
[root@master ~]# cd httpd-2.2.9/
# 根据以下文件,可以查看一个陌生的源码包的基本信息和安装信息。
# README   说明文件
# INSTALL  安装文件
# 编译前准备 
# ./configure --prefix=安装路径
#定义需要的功能选项
#检测系统环境是否符合安装要求
#把定义好的功能选项和检测系统环境信息都写入Makefie文件中,用作后续的编辑。
[root@master httpd-2.2.9]# ./configure --prefix=/usr/local/httpd
# 编译
# 如果在编译前准备和编译过程中报错,可以使用make clear清空编译过程中产生的临时文件。
[root@master httpd-2.2.9]# make
# 编译安装
[root@master httpd-2.2.9]# make install
# 启动httpd服务
[root@master httpd-2.2.9]# /usr/local/httpd/bin/apachectl start
# 打开firefox,输入192.168.8.112,可以看到出现It works!
# 通过上述步骤,httpd已经安装完毕。
# 卸载httpd只需要删除安装目录即可。即rm -rf /usr/local/httpd/
# 如果安装的服务对外开放,访问量大,建议使用源码包安装。

3. 使用脚本安装包安装Webmin(生产中不建议使用,大牛都是用纯命令的)

脚本安装包是大神弄好的一个自动化安装的脚本,运行就可以极为简便的安装软件。但比较少。
Webmin是一个基于Web的linux系统管理界面,可以通过图形化的方式设置用户账号、Apache、DNS、文件共享等服务。

# 下载
[root@master ~]# wget https://prdownloads.sourceforge.net/webadmin/webmin-1.941.tar.gz
# 解压
[root@master ~]# tar xzvf webmin-1.941.tar.gz
# 运行脚本
[root@master ~]# cd webmin-1.941/
[root@master webmin-1.941]# ./setup.sh
# 安装位置
# Config file directory [/etc/webmin]:Enter
# 日志文件位置
# Log file directory [/var/webmin]:Enter
# perl安装位置
# Full path to perl (default /usr/bin/perl):Enter
# Webmin占用端口号
# Web server port (default 10000):Enter
# 登录用户名及密码
# Login name (default admin):Enter
# Login password:
# Password again:

# 登录网址
http://master:10000/
# 或者
http://192.168.8.112:10000/
# 如果发现打不开,请检查网络及防火墙。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
以上就是RPM包管理的全部内容了,学习永不止步!!!

猜你喜欢

转载自blog.csdn.net/weixin_36522099/article/details/106749971