rpm | yum
一、rpm软件包(Red-Hat Package Manage):是红帽包管理的缩写。只能在redhat、centos系统中使用。ubuntu、suse、debin、deepin等系统无法使用rpm软件包。
优点:
1.易于升级安装已有的软件包
2.易于保护配置文件,即不会覆盖原配置文件
3.易于跟踪已安装的文件,即方便查询软件的文件列表
缺点
rpm不能自动解决软件之间的依赖关系
软件依赖性:
上图的意思是:
1、安装软件A之前,必须先安装C
2、安装软件C之前,必须先安装D、E
3、说明软件A的安装顺序是依次安装软件D、E、C、A,才能安装成功。
rpm命令(rpm --help)的用法:rpm [选项......]
-i 即install安装
-v 即verbose显示执行过程
-h 以#号方式显示安装进度条
-U 升级安装软件
--nodeps 不检查依赖关系
-q 查软件包是否安装
-qi 查软件的信息。例:rpm -qi at
-ql 查软件包的文件
-qc 查软件包的配置文件
光盘挂载(临时):
创建/dvd目录: mkdir -pv /dvd
临时手动挂载: mount -v /dev/cdrom /dvd
查看/dvd目录的文件列表:ls /dvd
命令格式说明:mount 设备 挂载点目录
自动挂载:
编辑/etc/fstab文件:vi /etc/fstab 在文件最后添加如下内容
/dev/cdrom /dvd iso9660 defaults 0 0
设备 挂载点目录 文件系统格式 挂载选项 是否dump备份 是否fsck磁盘扫描
rpm 软件包位置:cd /dvd/Packages (统计当前目录下文件数量 ls | wc -l )
二、Yum(Yellowdog Updater Modified):是一种类似于360软件管家的软件,可以实现软件的在线安装、升级、卸载、查询等功能
优点:可以自动解决rpm软件包之间的依赖性。
yum的分类:
本地yum源:客户端和服务端在同一台机器上。正解是rpm软件包存放在本机的某个目录中。
远程yum源:服务端是一台机器,客户端是另外的机器 。正解是rpm软件包存放在文件共享的服务器上的某个目录中。
yum的工作原理:
执行yum命令――>读取/etc/yum.repos.d/*.repo的yum源配置文件中的baseurl路径――>查找可用yum仓库的rpm软件包――>安装一个或多个rpm格式的软件包。
yum源文件路径:/etc/yum.repos.d/
yum源:文件中提供软件包的目录,文件名后缀必须是.repo格式。
配置yum源:配置软件的仓库
yum源配置解释:
[centos76] 仓库标识,[]中括号的内容必须没有空格。
name=centos 7.6 linux 仓库别名
baseurl=ftp://192.168.11.11/centos76 仓库路径,即rpm软件包的repodata目录的路径。
enabled=1 是否启用仓库,1为启用,0为禁用
gpgcheck=0 是否启用gpg检验功能来检验文件的MD5值,来验证文件是否被***篡改过
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 定gpg密钥文件,当gpgcheck=0是,可以省略gpgkey这行代码。
yum 安装软件命令格式:yum 命令 软件名
yum clean all 清除所有仓库缓存
yum repolist 列出所有yum源和仓库信息
yum info 软件包名称 查看软件包信息
yum grouplist 分组查看rpm软件包的信息
yum remove 软件包名称 删除除软件包
yum history undo 2 (回退)撤消yum中的2号历史操作(2根据实际情况)
yum history redo 2 (前进)重做yum中的2号历史操作
yum provides 文件名 查某个文件来自于哪个rpm包
yum list 查软件包列表
yum update 软件包名称 更新软件包
yum reinstall -y 软件名 修复安装
--------------------------------------------------------------------------------------------------
项目部署:centos本地yum源搭建(centos7.6镜像为例)
1.采用/etc/rc.d/rc.local运行控制(Running Control)脚本实现centos光盘在开机时自动挂载。
2.备份系统自带的网络yum源配置文件,创建本地yum源文件。
3.测试本地yum源的可用性,并测试wget、curl和elinks软件的安装。
项目实施:
1.采用/etc/rc.d/rc.local运行控制(Running Control)脚本实现centos光盘在开机时自动挂载。
注意:etc/rc.d/rc.local默认没有可执行权限,需手动添加
命令 | 功能解释 |
chmod -v +x /etc/rc.d/rc.local | 给rc.local文件添加x可执行权限 |
mkdir -pv /mnt/dvd | 创建挂载点目录 |
vim /etc/rc.d/rc.local mount /dev/cdrom /mnt/dvd |
编辑rc.local运行控制脚本文件,添加如下内容 脚本中的光盘挂载命令 |
bash /etc/rc.d/rc.local | 手动运行rc.local脚本 |
df 或 lsblk | 查看已挂载的磁盘设备 |
2.备份系统自带的网络yum源配置文件,创建本地yum源文件。
命令 | 功能解释 |
cd /etc/yum.repos.d | 切换到yum源的配置文件目录 |
ls | 显示当前目录的文件名列表 |
mkdir -pv bak | 在当前目录中创建bak目录 |
mv -v *.repo bak/ | 移动*.repo系统自带的网络yum源文件到bak目录下 |
cat > dvd.repo <<EOF [centos76] name=centos 7.6 linux baseurl=file:///mnt/dvd enabled=1 gpgcheck=0 |
用cat以脚本非交互式创建dvd.repo这个yum源文件 |
3.测试本地yum源的可用性,并测试curl和wget软件的安装
命令 | 功能解释 |
yum clean all |
清除yum缓存 |
yum repolist | 查询yum清单 |
yum grouplist | 查询yum源分组清单 |
yum -y install wget curl elinks | 用yum安装wget、curl、elinks |
rpm -q wget curl elinks | 查询是否安装 |
附:全自动挂载centos光盘、yum源全自动配置脚本:
touch yum_auto.sh 创建yum_auto.sh脚本文件
chmod -v +x yum_auto.sh 给yum_auto.sh脚本文件添加可执行权限
vim yum_auto.sh 打开vim,添加下面代码
#!/bin/bash
chmod +x /etc/rc.d/rc.local
mkdir -pv /mnt/dvd
grep ^mount /etc/rc.d/rc.local
[ $? -ne 0 ] && echo 'mount /dev/cdrom /mnt/dvd' >> /etc/rc.d/rc.local
sh /etc/rc.d/rc.local
df -hT | grep iso9660
cd /etc/yum.repos.d
ls
[ -d bak ] && echo 'bak directory exists.' || mkdir -pv bak
\mv -fv *.repo bak/
cat > dvd.repo <<EOF
[centos76]
name=centos 7.6 linux
baseurl=file:///mnt/dvd
enabled=1
gpgcheck=0
EOF
cd
yum clean all
yum repolist
yum install -y wget curl elinks
rpm -q wget curl elinks