软件包 | 安装 | 特点 |
---|---|---|
rpm包 | 预先编译打包,安装简单 | 稳定版会被官方做成rpm 所以软件版本普遍偏低 |
源码包 | 手动编译打包,安装繁琐 | 软件版本丰富 |
二进制包 | 解压即可使用,安装简单 | 不能修改源代码 |
RPM 是Red-Hat Package Manager
(RPM软件包管理器)的缩写
这一文件格式名称虽然打上了RedHat 的标志 ,但是其原始设计理念是开放式的
通常软件的稳定版会被官方做成rpm,所以软件版本偏低
bash-4.2.26-28.el7.x86_64.rpm
mysql-connector-odbc-5.2.5-8.el7.x86_64.rpm
[root@localhost ~]# uname -m
x86_64
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
需要自己找到PRM包,并且手动解决包的依赖关系
需要先安装依赖的包,再安装RPM包(一般情况下,很难分辨它缺少什么依赖包)
相关的RPM包会事先被存在1个仓库里,该仓库包含了所有的依赖包
所以,yum安装RPM可以帮我们解决依赖性的问题
先通过虚拟机加载镜像,然后在linux中执行 mount /dev/cdrom /mnt
,此时你会在/mnt/Packages
目录下看到很多rpm的包文件
# 方式1:
[root@localhost ~]# mount /dev/cdrom /opt/
# 方式2:
[root@localhost ~]# mount /dev/sr0 /opt/
# 方式3
[root@localhost ~]# mount -o loop /xxx.iso /opt
# 查看光盘里的rpm包
[root@localhost ~]# ls /opt/Packages/
wget https://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-agent-3.0.9-1.el7.x86_64.rpm
VFAT
和FAT32
(推荐FAT32,但是该U盘不能大于32G)# 将下方的‘F’替换成U盘的盘符即可(格式化时间有点长,具体看U盘的读写速度)
format /FS:FAT32 F:
选项 | 作用 |
---|---|
-i | 安装rpm |
-v | 显示安装详细信息 |
-h | 显示安装rpm进度 |
–force | 强制重新安装 |
–nodeps | 忽略依赖关系 |
# 把镜像挂载到/mnt
[root@localhost ~]# mount /dev/cdrom /mnt
mount: /dev/sr0 is write-protected, mounting read-only
# 此时,/mnt/Packages/目录下会有很多rpm包
[root@localhost ~]# ls /mnt/Packages/
acl-2.2.51-12.el7.x86_64.rpm
aic94xx-firmware-30-6.el7.noarch.rpm
alsa-firmware-1.0.28-2.el7.noarch.rpm
...
# rpm方式安装需要的软件包
[root@localhost ~]# rpm -ich /mnt/Packages/iptables-1.4.21-16.el7.x86_64.rpm
################################# [100%]
package iptables-1.4.21-16.el7.x86_64 is already installed
# 如果软件包存在, 强制再次安装
[root@localhost ~]# rpm -ivh --force /mnt/Packages/iptables-1.4.21-16.el7.x86_64.rpm
Preparing... ################################# [100%]
package iptables-1.4.21-16.el7.x86_64 is already installed
# 安装某些服务需要依赖其他组件, 使用--nodeps可强制安装
# 如果是用yum安装,则会自动处理依赖
选项 | 作用 |
---|---|
-q | 查看指定软件包是否安装(重点) |
-qa | 查看系统中已安装的所有RPM软件包列表 |
-qi | 查看指定软件的详细信息 |
-ql | 查询指定软件包所安装的目录、文件列表(重点) |
-qc | 查询指定软件包的配置文件(只有配置文件,etc下的) |
-qf | 查询文件或目录属于哪个RPM软件 |
-qip | 查询未安装的rpm包详细信息 |
-qlp | 查询未安装的软件包会产生哪些文件 |
# 查询所有已安装的包
[root@localhost ~]# rpm -qa
parted-3.1-23.el7.x86_64
centos-release-7-2.1511.el7.centos.2.10.x86_64
selinux-policy-targeted-3.13.1-60.el7.noarch
# 查询 iptables包是否安装(如果安装,会显示完整信息)
[root@localhost ~]# rpm -q iptables
iptables-1.4.21-16.el7.x86_64
# 查询 vsftpd包是否安装(如果没安装,会显示:not installed)
[root@localhost ~]# rpm -q vsftpd
package vsftpd is not installed
# 查询 iptables包的详情信息
[root@localhost ~]# rpm -qi iptables
Name : iptables
Version : 1.4.21
Release : 16.el7
Architecture: x86_64
Install Date: Wed 18 Nov 2020 04:42:02 AM EST
Group : System Environment/Base
Size : 1549241
License : GPLv2
Signature : RSA/SHA256, Wed 25 Nov 2015 09:43:32 AM EST, Key ID 24c6a8a7f4a80eb5
Source RPM : iptables-1.4.21-16.el7.src.rpm
Build Date : Fri 20 Nov 2015 06:31:53 AM EST
Build Host : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager : CentOS BuildSystem <http://bugs.centos.org>
Vendor : CentOS
URL : http://www.netfilter.org/
Summary : Tools for managing Linux kernel packet filtering capabilities
Description :
The iptables utility controls the network packet filtering code in the
Linux kernel. If you need to set up firewalls and/or IP masquerading,
you should install this package.
# 查询 iptables包所安装的目录、文件列表(重点)
[root@localhost ~]# rpm -ql iptables
/etc/sysconfig/ip6tables-config
/etc/sysconfig/iptables-config
/usr/bin/iptables-xml
...
# 查询 iptables包的配置文件
[root@localhost ~]# rpm -qc iptables
/etc/sysconfig/ip6tables-config
/etc/sysconfig/iptables-config
# 查询 etc/sysconfig/iptables-config目录属于哪个RPM软件
[root@localhost ~]# rpm -qf /etc/sysconfig/iptables-config
iptables-1.4.21-16.el7.x86_64
# 查询未安装的rpm详情信息
[root@localhost ~]# rpm -qip /mnt/Packages/alsa-firmware-1.0.28-2.el7.noarch.rpm
Name : alsa-firmware
Version : 1.0.28
Release : 2.el7
Architecture: noarch
Install Date: (not installed)
Group : Applications/Multimedia
Size : 9572469
License : GPL+ and BSD and GPLv2+ and GPLv2 and LGPLv2+
Signature : RSA/SHA256, Sat 14 Mar 2015 03:36:28 AM EDT, Key ID 24c6a8a7f4a80eb5
Source RPM : alsa-firmware-1.0.28-2.el7.src.rpm
Build Date : Thu 05 Mar 2015 04:58:35 PM EST
Build Host : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager : CentOS BuildSystem <http://bugs.centos.org>
Vendor : CentOS
URL : http://www.alsa-project.org/
Summary : Firmware for several ALSA-supported sound cards
Description :
This package contains the firmware binaries for a number of sound cards.
Some (but not all of these) require firmware loaders which are included in
the alsa-tools-firmware package.
# 查询未安装的rpm包可能会产生哪些文件
[root@localhost ~]# rpm -qlp /mnt/Packages/alsa-firmware-1.0.28-2.el7.noarch.rpm
/lib/firmware/aica_firmware.bin
/lib/firmware/asihpi
/lib/firmware/asihpi/dsp2400.bin
/lib/firmware/asihpi/dsp5000.bin
选项 | 作用 |
---|---|
-U | 如果老版本不存在则全新安装,如果存在有新版即升级 |
# 先下载2个版本,1个老版本,1个新版本
wget https://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-agent-3.0.9-1.el7.x86_64.rpm
wget https://mirrors.aliyun.com/zabbix/zabbix/4.2/rhel/7/x86_64/zabbix-agent-4.2.0-1.el7.x86_64.rpm
# 1.先安装低版本
[root@localhost ~]# rpm -ivh zabbix-agent-3.0.9-1.el7.x86_64.rpm
# 2.尝试安装高版本(会出现错误)
[root@localhost ~]# rpm -ivh zabbix-agent-4.2.0-1.el7.x86_64.rpm
# 3.使用升级的方式,完美解决替换
[root@localhost ~]# rpm -Uvh zabbix-agent-4.2.0-1.el7.x86_64.rpm
选项 | 作用 |
---|---|
-e | 卸载已存在的RPM包 |
# 查询
[root@localhost ~]# rpm -qa |grep iptables
iptables-1.4.21-16.el7.x86_64
# 卸载
[root@localhost ~]# rpm -e iptables
选项 | 作用 |
---|---|
S | 文件的容量大小是否被改变 |
M | 文件的类型或者文件的属性是否被修改 |
5 | MD5 这一种指纹加密的内容已经不同 |
L | 路径已经被改变 |
U | 文件的所属主已被修改 |
G | 文件的所属组已被修改 |
T | 文件的创建时间已被改变 |
/var/lib/rpm
目录[root@localhost ~]# rpm -V vsftpd
S.5....T. c /etc/pam.d/vsftpd
.......T. c /etc/vsftpd/ftpusers
S.5....T. c /etc/vsftpd/vsftpd.conf
.M....... /var/ftp/pub
yum(Yellow dog updater, modified)是一个在Fedora和RedHat以及CentOS中的Shell 前端软件包管理器
基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系
并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装(YUM是生产最佳实践)
要成功的使用 yum工具安装更新软件或系统,就需要有一个包含各种 rpm 软件包的repository(软件仓库),这个软件仓库我们习惯称为 yum 源(可以是本地源、网络源)
# 查看yun命令
[root@localhost ~]# rpm -q yum
yum-3.4.3-132.el7.centos.0.1.noarch
# 查看yun的配置文件
[root@localhost ~]# rpm -qc yum
/etc/logrotate.d/yum
/etc/yum.conf
/etc/yum/version-groups.conf
yum repolist # 查询可用仓库
yum repolist list # 查询已启用/禁用的所有仓库状态
# 关闭与启用仓库:本质:都是在修改repo文件中的enable的值 0不启用 1启用
yum-config-manager --disable epel # 关闭仓库epel
yum-config-manager --enable epel # 启用仓库epel
yum list # 列出可用仓库中的所有软件包
yum list | less # 列出可用仓库中的所有软件包(分页)
yum grouplist # 列出可用仓库中的软件组
# 与rpm -qf的区别在于yum provides后可以只跟命名
yum provides /usr/sbin/ifconfig # 查询命令所属的软件包,可以不加路径,只写命令名字
yum install httpd httpd-tools # 加上-y选项 可以变成非交互
yum groupinstall "开发工具" -y # 安装软件组,一个软件组中包含了多个软件包
yum groups install "开发工具" -y # 同上
yum remove httpd httpd-tools http* # 卸载软件包
yum groupremove "开发工具" -y. # 卸载软件组
yum groups remove "开发工具" -y # 同上
yum reinstall httpd # 不小心删除了配置文件的时,可以reinstall一下
yum check-update # 检查可以更新的软件包
yum update -y # 更新所有软件包,包括内核,通常:只在刚装完系统时执行
yum update httpd -y # 更新某个软件包
yum makecache # 制作元数据缓存
yum clean all # 清除所有yum缓存的软件包以及元数据
yum clean packages # 只清除缓存的软件包
[root@localhost ~]# vim /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=1 #启动缓存
yum history # 查看执行过的yum命令历史记录
yum history info ID号 # 查看具体某一条yum命令的详细信息
yum history undo ID号 # 撤销执行过的历史命令
yum install https://mirrors.aliyun.com/centos/7.6.1810/os/x86_64/Packages/samba4.8.3-4.el7.x86_64.rpm
yum localinstall -y /mnt/Packages/httpd-2.4.6-88.el7.centos.x86_64.rpm
# 方式1:
[root@localhost ~]# mount /dev/cdrom /opt/
# 方式2:
[root@localhost ~]# mount /dev/sr0 /opt/
# 方式3:
[root@localhost ~]# mount -o loop /xxx.iso /opt
# 查看光盘里的rpm包
[root@localhost ~]# ls /opt/Packages/
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# vim local.repo # 文件名自定义,必须以.repo结尾
[local] # 仓库的实际名字,任意
name=local # 仓库的描述,任意
baseurl=file:///opt # 仓库位置,可以是 http:// https:// ftp:// file://
enabled=1 # 启用仓库,默认就是启用的
gpgcheck=0 # 检查安装的rpm是否是合法的,0表示不检验
[root@localhost ~]# yum repolist # 查询可用仓库
[root@localhost ~]# yum repolist all # 查看所有仓库,包括禁用的
[root@localhost ~]# yum list # 列出可用的软包
[root@localhost ~]# yum install vsftpd -y # 安装:vsftpd
[root@localhost ~]# yum list vsftpd httpd #
[root@localhost ~]# yum remove vsftpd -y # 卸载:vsftpd
[root@localhost ~]# yum install glib* httpd -y
[root@localhost ~]# yum provides vsftp # 查询某个软件(可以是未安装的)是由哪个rpm包提供
# yum reinstall 重装
[root@egon ~]# rm -rf /etc/httpd/conf/httpd.conf
[root@egon ~]# yum reinstall httpd -y &> /dev/null
[root@egon ~]# ls /etc/httpd/conf/httpd.conf
/etc/httpd/conf/httpd.conf
# yum update 更新
[root@localhost ~]# yum -y update samba
[root@localhost ~]# yum -y update
[root@localhost ~]# yum grouplist
[root@localhost ~]# yum groupinstall "GNOME 桌面" -y
[root@localhost ~]# yum groupinstall "开发工具" -y
[root@localhost ~]# yum groupremove "开发工具" -y
[root@localhost ~]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id repo name status
!base/7/x86_64 CentOS-7 - Base - mirrors.aliyun.com 10,072
!extras/7/x86_64 CentOS-7 - Extras - mirrors.aliyun.com 448
!updates/7/x86_64 CentOS-7 - Updates - mirrors.aliyun.com 773
repolist: 11,293
# 阿里云的base基础源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos7.repo
# 阿里云的extras扩展源
curl -o /etc/yum.repos.d/epel.repo
http://mirrors.aliyun.com/repo/epel-7.repo
# extras扩展源 也可以安装一个软件包来生成(效果同上)
yum install epel-release -y
EPEL的全称叫 Extra Packages for Enterprise Linux
EPEL是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目
装上了 EPEL之后,就相当 于添加了一个第三方源
RHEL以及他的衍生发行版如CentOS、Scientific Linux为了稳定,官方的rpm repository提供的rpm 包往往是很滞后的
当然了,这样做这是无可厚非的,毕竟这是服务器版本,安全稳定是重点,官方的rpm repository提供的rpm包也不够丰富,很多时候需要自己编译那太辛苦了,而EPEL恰恰可以解决这两方面的问题
createrepo
工具[root@localhost ~]# yum install createrepo -y
repodata
createrepo /mnt/Packages/
repo
文件,指向/mnt/Packages/
# 编辑 /etc/yum/repos.d/soft.repo
[root@localhost ~]# vim /etc/yum/repos.d/soft.repo
# 按i进入插入模式,添加如下内容
[soft]
name=soft
baseurl=file:///mnt/Packages/
enabled=1
gpgcheck=0
[root@localhost ~]# yum clean all # 清理缓存
[root@localhost ~]# yum makecache # 制作缓存
[root@localhost ~]# vim /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasev
er # 指定软件安装包的缓存目录
keepcache=1 # 设置为1
debuglevel=2
# 缓存目录为:ls /var/cache/yum/x86_64/7/
在测试环境中,在每个节点上都开启软件包缓存
在测试环境中,安装相同版本的操作系统,安装完毕后统一执行yum update -y
在测试环境中,部署完你的架构,测试完毕
把测试环境中每台机器上缓存好的软件包安装包采集到一个文件下
[root@localhost ~]# find /var/cache/yum/x86_64/7/ -type f -name "*.rpm" | xargs -I {} mv {} /soft/
createrepo
命令制作好依赖关系,即 repodata
数据库## 一:软件包介绍
软件包 | 安装 | 特点 |
---|---|---|
rpm包 | 预先编译打包,安装简单 | 稳定版会被官方做成rpm 所以软件版本普遍偏低 |
源码包 | 手动编译打包,安装繁琐 | 软件版本丰富 |
二进制包 | 解压即可使用,安装简单 | 不能修改源代码 |
RPM 是Red-Hat Package Manager
(RPM软件包管理器)的缩写
这一文件格式名称虽然打上了RedHat 的标志 ,但是其原始设计理念是开放式的
通常软件的稳定版会被官方做成rpm,所以软件版本偏低
bash-4.2.26-28.el7.x86_64.rpm
mysql-connector-odbc-5.2.5-8.el7.x86_64.rpm
[root@localhost ~]# uname -m
x86_64
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
需要自己找到PRM包,并且手动解决包的依赖关系
需要先安装依赖的包,再安装RPM包(一般情况下,很难分辨它缺少什么依赖包)
相关的RPM包会事先被存在1个仓库里,该仓库包含了所有的依赖包
所以,yum安装RPM可以帮我们解决依赖性的问题
先通过虚拟机加载镜像,然后在linux中执行 mount /dev/cdrom /mnt
,此时你会在/mnt/Packages
目录下看到很多rpm的包文件
# 方式1:
[root@localhost ~]# mount /dev/cdrom /opt/
# 方式2:
[root@localhost ~]# mount /dev/sr0 /opt/
# 方式3
[root@localhost ~]# mount -o loop /xxx.iso /opt
# 查看光盘里的rpm包
[root@localhost ~]# ls /opt/Packages/
wget https://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-agent-3.0.9-1.el7.x86_64.rpm
VFAT
和FAT32
(推荐FAT32,但是该U盘不能大于32G)# 将下方的‘F’替换成U盘的盘符即可(格式化时间有点长,具体看U盘的读写速度)
format /FS:FAT32 F:
选项 | 作用 |
---|---|
-i | 安装rpm |
-v | 显示安装详细信息 |
-h | 显示安装rpm进度 |
–force | 强制重新安装 |
–nodeps | 忽略依赖关系 |
# 把镜像挂载到/mnt
[root@localhost ~]# mount /dev/cdrom /mnt
mount: /dev/sr0 is write-protected, mounting read-only
# 此时,/mnt/Packages/目录下会有很多rpm包
[root@localhost ~]# ls /mnt/Packages/
acl-2.2.51-12.el7.x86_64.rpm
aic94xx-firmware-30-6.el7.noarch.rpm
alsa-firmware-1.0.28-2.el7.noarch.rpm
...
# rpm方式安装需要的软件包
[root@localhost ~]# rpm -ich /mnt/Packages/iptables-1.4.21-16.el7.x86_64.rpm
################################# [100%]
package iptables-1.4.21-16.el7.x86_64 is already installed
# 如果软件包存在, 强制再次安装
[root@localhost ~]# rpm -ivh --force /mnt/Packages/iptables-1.4.21-16.el7.x86_64.rpm
Preparing... ################################# [100%]
package iptables-1.4.21-16.el7.x86_64 is already installed
# 安装某些服务需要依赖其他组件, 使用--nodeps可强制安装
# 如果是用yum安装,则会自动处理依赖
选项 | 作用 |
---|---|
-q | 查看指定软件包是否安装(重点) |
-qa | 查看系统中已安装的所有RPM软件包列表 |
-qi | 查看指定软件的详细信息 |
-ql | 查询指定软件包所安装的目录、文件列表(重点) |
-qc | 查询指定软件包的配置文件(只有配置文件,etc下的) |
-qf | 查询文件或目录属于哪个RPM软件 |
-qip | 查询未安装的rpm包详细信息 |
-qlp | 查询未安装的软件包会产生哪些文件 |
# 查询所有已安装的包
[root@localhost ~]# rpm -qa
parted-3.1-23.el7.x86_64
centos-release-7-2.1511.el7.centos.2.10.x86_64
selinux-policy-targeted-3.13.1-60.el7.noarch
# 查询 iptables包是否安装(如果安装,会显示完整信息)
[root@localhost ~]# rpm -q iptables
iptables-1.4.21-16.el7.x86_64
# 查询 vsftpd包是否安装(如果没安装,会显示:not installed)
[root@localhost ~]# rpm -q vsftpd
package vsftpd is not installed
# 查询 iptables包的详情信息
[root@localhost ~]# rpm -qi iptables
Name : iptables
Version : 1.4.21
Release : 16.el7
Architecture: x86_64
Install Date: Wed 18 Nov 2020 04:42:02 AM EST
Group : System Environment/Base
Size : 1549241
License : GPLv2
Signature : RSA/SHA256, Wed 25 Nov 2015 09:43:32 AM EST, Key ID 24c6a8a7f4a80eb5
Source RPM : iptables-1.4.21-16.el7.src.rpm
Build Date : Fri 20 Nov 2015 06:31:53 AM EST
Build Host : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager : CentOS BuildSystem <http://bugs.centos.org>
Vendor : CentOS
URL : http://www.netfilter.org/
Summary : Tools for managing Linux kernel packet filtering capabilities
Description :
The iptables utility controls the network packet filtering code in the
Linux kernel. If you need to set up firewalls and/or IP masquerading,
you should install this package.
# 查询 iptables包所安装的目录、文件列表(重点)
[root@localhost ~]# rpm -ql iptables
/etc/sysconfig/ip6tables-config
/etc/sysconfig/iptables-config
/usr/bin/iptables-xml
...
# 查询 iptables包的配置文件
[root@localhost ~]# rpm -qc iptables
/etc/sysconfig/ip6tables-config
/etc/sysconfig/iptables-config
# 查询 etc/sysconfig/iptables-config目录属于哪个RPM软件
[root@localhost ~]# rpm -qf /etc/sysconfig/iptables-config
iptables-1.4.21-16.el7.x86_64
# 查询未安装的rpm详情信息
[root@localhost ~]# rpm -qip /mnt/Packages/alsa-firmware-1.0.28-2.el7.noarch.rpm
Name : alsa-firmware
Version : 1.0.28
Release : 2.el7
Architecture: noarch
Install Date: (not installed)
Group : Applications/Multimedia
Size : 9572469
License : GPL+ and BSD and GPLv2+ and GPLv2 and LGPLv2+
Signature : RSA/SHA256, Sat 14 Mar 2015 03:36:28 AM EDT, Key ID 24c6a8a7f4a80eb5
Source RPM : alsa-firmware-1.0.28-2.el7.src.rpm
Build Date : Thu 05 Mar 2015 04:58:35 PM EST
Build Host : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager : CentOS BuildSystem <http://bugs.centos.org>
Vendor : CentOS
URL : http://www.alsa-project.org/
Summary : Firmware for several ALSA-supported sound cards
Description :
This package contains the firmware binaries for a number of sound cards.
Some (but not all of these) require firmware loaders which are included in
the alsa-tools-firmware package.
# 查询未安装的rpm包可能会产生哪些文件
[root@localhost ~]# rpm -qlp /mnt/Packages/alsa-firmware-1.0.28-2.el7.noarch.rpm
/lib/firmware/aica_firmware.bin
/lib/firmware/asihpi
/lib/firmware/asihpi/dsp2400.bin
/lib/firmware/asihpi/dsp5000.bin
选项 | 作用 |
---|---|
-U | 如果老版本不存在则全新安装,如果存在有新版即升级 |
# 先下载2个版本,1个老版本,1个新版本
wget https://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-agent-3.0.9-1.el7.x86_64.rpm
wget https://mirrors.aliyun.com/zabbix/zabbix/4.2/rhel/7/x86_64/zabbix-agent-4.2.0-1.el7.x86_64.rpm
# 1.先安装低版本
[root@localhost ~]# rpm -ivh zabbix-agent-3.0.9-1.el7.x86_64.rpm
# 2.尝试安装高版本(会出现错误)
[root@localhost ~]# rpm -ivh zabbix-agent-4.2.0-1.el7.x86_64.rpm
# 3.使用升级的方式,完美解决替换
[root@localhost ~]# rpm -Uvh zabbix-agent-4.2.0-1.el7.x86_64.rpm
选项 | 作用 |
---|---|
-e | 卸载已存在的RPM包 |
# 查询
[root@localhost ~]# rpm -qa |grep iptables
iptables-1.4.21-16.el7.x86_64
# 卸载
[root@localhost ~]# rpm -e iptables
选项 | 作用 |
---|---|
S | 文件的容量大小是否被改变 |
M | 文件的类型或者文件的属性是否被修改 |
5 | MD5 这一种指纹加密的内容已经不同 |
L | 路径已经被改变 |
U | 文件的所属主已被修改 |
G | 文件的所属组已被修改 |
T | 文件的创建时间已被改变 |
/var/lib/rpm
目录[root@localhost ~]# rpm -V vsftpd
S.5....T. c /etc/pam.d/vsftpd
.......T. c /etc/vsftpd/ftpusers
S.5....T. c /etc/vsftpd/vsftpd.conf
.M....... /var/ftp/pub
yum(Yellow dog updater, modified)是一个在Fedora和RedHat以及CentOS中的Shell 前端软件包管理器
基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系
并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装(YUM是生产最佳实践)
要成功的使用 yum工具安装更新软件或系统,就需要有一个包含各种 rpm 软件包的repository(软件仓库),这个软件仓库我们习惯称为 yum 源(可以是本地源、网络源)
# 查看yun命令
[root@localhost ~]# rpm -q yum
yum-3.4.3-132.el7.centos.0.1.noarch
# 查看yun的配置文件
[root@localhost ~]# rpm -qc yum
/etc/logrotate.d/yum
/etc/yum.conf
/etc/yum/version-groups.conf
yum repolist # 查询可用仓库
yum repolist list # 查询已启用/禁用的所有仓库状态
# 关闭与启用仓库:本质:都是在修改repo文件中的enable的值 0不启用 1启用
yum-config-manager --disable epel # 关闭仓库epel
yum-config-manager --enable epel # 启用仓库epel
yum list # 列出可用仓库中的所有软件包
yum list | less # 列出可用仓库中的所有软件包(分页)
yum grouplist # 列出可用仓库中的软件组
# 与rpm -qf的区别在于yum provides后可以只跟命名
yum provides /usr/sbin/ifconfig # 查询命令所属的软件包,可以不加路径,只写命令名字
yum install httpd httpd-tools # 加上-y选项 可以变成非交互
yum groupinstall "开发工具" -y # 安装软件组,一个软件组中包含了多个软件包
yum groups install "开发工具" -y # 同上
yum remove httpd httpd-tools http* # 卸载软件包
yum groupremove "开发工具" -y. # 卸载软件组
yum groups remove "开发工具" -y # 同上
yum reinstall httpd # 不小心删除了配置文件的时,可以reinstall一下
yum check-update # 检查可以更新的软件包
yum update -y # 更新所有软件包,包括内核,通常:只在刚装完系统时执行
yum update httpd -y # 更新某个软件包
yum makecache # 制作元数据缓存
yum clean all # 清除所有yum缓存的软件包以及元数据
yum clean packages # 只清除缓存的软件包
[root@localhost ~]# vim /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=1 #启动缓存
yum history # 查看执行过的yum命令历史记录
yum history info ID号 # 查看具体某一条yum命令的详细信息
yum history undo ID号 # 撤销执行过的历史命令
yum install https://mirrors.aliyun.com/centos/7.6.1810/os/x86_64/Packages/samba4.8.3-4.el7.x86_64.rpm
yum localinstall -y /mnt/Packages/httpd-2.4.6-88.el7.centos.x86_64.rpm
# 方式1:
[root@localhost ~]# mount /dev/cdrom /opt/
# 方式2:
[root@localhost ~]# mount /dev/sr0 /opt/
# 方式3:
[root@localhost ~]# mount -o loop /xxx.iso /opt
# 查看光盘里的rpm包
[root@localhost ~]# ls /opt/Packages/
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# vim local.repo # 文件名自定义,必须以.repo结尾
[local] # 仓库的实际名字,任意
name=local # 仓库的描述,任意
baseurl=file:///opt # 仓库位置,可以是 http:// https:// ftp:// file://
enabled=1 # 启用仓库,默认就是启用的
gpgcheck=0 # 检查安装的rpm是否是合法的,0表示不检验
[root@localhost ~]# yum repolist # 查询可用仓库
[root@localhost ~]# yum repolist all # 查看所有仓库,包括禁用的
[root@localhost ~]# yum list # 列出可用的软包
[root@localhost ~]# yum install vsftpd -y # 安装:vsftpd
[root@localhost ~]# yum list vsftpd httpd #
[root@localhost ~]# yum remove vsftpd -y # 卸载:vsftpd
[root@localhost ~]# yum install glib* httpd -y
[root@localhost ~]# yum provides vsftp # 查询某个软件(可以是未安装的)是由哪个rpm包提供
# yum reinstall 重装
[root@egon ~]# rm -rf /etc/httpd/conf/httpd.conf
[root@egon ~]# yum reinstall httpd -y &> /dev/null
[root@egon ~]# ls /etc/httpd/conf/httpd.conf
/etc/httpd/conf/httpd.conf
# yum update 更新
[root@localhost ~]# yum -y update samba
[root@localhost ~]# yum -y update
[root@localhost ~]# yum grouplist
[root@localhost ~]# yum groupinstall "GNOME 桌面" -y
[root@localhost ~]# yum groupinstall "开发工具" -y
[root@localhost ~]# yum groupremove "开发工具" -y
[root@localhost ~]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id repo name status
!base/7/x86_64 CentOS-7 - Base - mirrors.aliyun.com 10,072
!extras/7/x86_64 CentOS-7 - Extras - mirrors.aliyun.com 448
!updates/7/x86_64 CentOS-7 - Updates - mirrors.aliyun.com 773
repolist: 11,293
# 阿里云的base基础源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos7.repo
# 阿里云的extras扩展源
curl -o /etc/yum.repos.d/epel.repo
http://mirrors.aliyun.com/repo/epel-7.repo
# extras扩展源 也可以安装一个软件包来生成(效果同上)
yum install epel-release -y
EPEL的全称叫 Extra Packages for Enterprise Linux
EPEL是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目
装上了 EPEL之后,就相当 于添加了一个第三方源
RHEL以及他的衍生发行版如CentOS、Scientific Linux为了稳定,官方的rpm repository提供的rpm 包往往是很滞后的
当然了,这样做这是无可厚非的,毕竟这是服务器版本,安全稳定是重点,官方的rpm repository提供的rpm包也不够丰富,很多时候需要自己编译那太辛苦了,而EPEL恰恰可以解决这两方面的问题
createrepo
工具[root@localhost ~]# yum install createrepo -y
repodata
createrepo /mnt/Packages/
repo
文件,指向/mnt/Packages/
# 编辑 /etc/yum/repos.d/soft.repo
[root@localhost ~]# vim /etc/yum/repos.d/soft.repo
# 按i进入插入模式,添加如下内容
[soft]
name=soft
baseurl=file:///mnt/Packages/
enabled=1
gpgcheck=0
[root@localhost ~]# yum clean all # 清理缓存
[root@localhost ~]# yum makecache # 制作缓存
[root@localhost ~]# vim /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasev
er # 指定软件安装包的缓存目录
keepcache=1 # 设置为1
debuglevel=2
# 缓存目录为:ls /var/cache/yum/x86_64/7/
在测试环境中,在每个节点上都开启软件包缓存
在测试环境中,安装相同版本的操作系统,安装完毕后统一执行yum update -y
在测试环境中,部署完你的架构,测试完毕
把测试环境中每台机器上缓存好的软件包安装包采集到一个文件下
[root@localhost ~]# find /var/cache/yum/x86_64/7/ -type f -name "*.rpm" | xargs -I {} mv {} /soft/
createrepo
命令制作好依赖关系,即 repodata
数据库原文:https://www.cnblogs.com/xuexianqi/p/14054435.html