目的:减少yum相关信息的检索,不重复造轮子
开始做好运维这件事
2021-12-16
一、概述
1.Yum是什么?
Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。
基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,
无须繁琐地一次次下载、安装。
2. RPM是什么?
RPM是Red-Hat Package Manager(红帽软件包管理器)。
3.Yum和RPM的区别
Yum能自动安装依赖,RPM用来安装离线的包。
二、安装yum
1.RPM相关指令
(1)如何安装rpm软件包
rpm -ivh your-package # 直接安装
rpmrpm --force -ivh your-package.rpm # 忽略报错,强制安装
(2)如何卸载rpm软件包
[root@localhost ~]# rpm -ql tree # 查询
[root@localhost ~]# rpm -e tree # 卸载
[root@localhost ~]# rpm -ql tree # 查询
(3)列出所有安装过的包
[root@localhost ~]# rpm -qa
(4)如何获得某个软件包的文件全名
[root@localhost ~]# rpm -q tree
(5)rpm包中的文件安装的位置
[root@localhost ~]# rpm -ql tree # rpm -ql 包名
(6)哪个软件包包含这个程序
rpm -qf `which 程序名` #返回软件包的全名
rpm -qif `which 程序名` #返回软件包的有关信息
rpm -qlf `which 程序名` #返回软件包的文件列表[root@localhost ~]# rpm -qf `which sshd`
2.安装yum
(1).下载
wget http://ftp.sjtu.edu.cn/centos/7/os/x86_64/Packages/yum-3.4.3-168.el7.centos.noarch.rpm
wget http://ftp.sjtu.edu.cn/centos/7/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
wget http://ftp.sjtu.edu.cn/centos/7/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.31-54.el7_8.noarch.rpm
wget http://ftp.sjtu.edu.cn/centos/7/os/x86_64/Packages/python-iniparse-0.4-9.el7.noarch.rpm
(2).安装
rpm -ivh --force --nodeps python-iniparse-0.4-9.el7.noarch.rpm
rpm -ivh --force python-iniparse-0.4-9.el7.noarch.rpm
rpm -ivh --force --nodeps yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
rpm -ivh --force --nodeps yum-3.4.3-168.el7.centos.noarch.rpm
rpm -ivh --force --nodeps yum-plugin-fastestmirror-1.1.31-54.el7_8.noarch.rpm
(3).更新
wget http://yum.baseurl.org/download/3.4/yum-3.4.3.tar.gz
tar -zxvf yum-3.4.3.tar.gz
./yummain.py update
(3).更新
# yum clean all
# yum repolist
三.yum 配置
(一).配置文件
/etc/yum.conf
ls /etc/yum.repos.d/
(二).配置项解析
[main]
cachedir=/var/cache/yum/$basearch/$releasever #存储库其缓存和数据库文件的目录
keepcache=0 #确yum在成功安装后是否保留标头和包的缓存,0为不保存
debuglevel=2 #显示更详细的调试输出,debuglevel=2是默认值,同时debuglevel=0禁用调试输出。
logfile=/var/log/yum.log #
exactarch=1 #1 - 在更新包时考虑确切体系结构,使用此设置,yum不会安装32位体系结构的软件包来更新已安装在具有64位体系结构的系统上的软件包
obsoletes=1 #1 - 执行更新时启用yum的过时处理逻辑
gpgcheck=1 #- 启用检查所有存储库中所有软件包的GPG签名
plugins=1 #这是一个启用或禁用yum插件的全局开关
installonly_limit=5 #
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release #
/eyc/yum.conf 的[repository]选项
[repository]
name = repository_name
baseurl = repository_url
(三).配置yum源
1.配置阿里yum
(1) 安装wget
yum install -y wget
(2)备份/etc/yum.repos.d/CentOS-Base.repo文件
cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo.back
(3) 下载阿里云的Centos-6.repo文件
wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
(4) 重新加载yum
yum clean all
yum makecache
2.设置仓库
安装所需的软件包。yum-utils 提供了 yum-config-manager
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
使用官方源地址(比较慢)
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
可以选择国内的一些源地址:
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3.配置本地yum
(1) 安装wget
yum install -y wget
(2) 备份/etc/yum.repos.d/CentOS-Base.repo文件
cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo.back
(3) 下载阿里云的Centos-6.repo文件
wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
(4) 重新加载yum
yum clean all
yum makecache
(5) 编辑Centos-Media.repo文件
name=CentOS-$releasever - Media
baseurl=file:///mnt/vcdrom/#将baseurl修改为DVD的挂载目录
gpgcheck=1
enabled=1#开启本地更新模式
(6) 重新加载yum
yum clean all
yum makecache
(7) 编写脚本并开机自动挂载
首先,编写脚本。
vim /opt/shell/mymount.sh
#!/bin/bash
#
mount -o loop -t iso9660 /opt/tools/CentOS-6.7-x86_64-bin-DVD1.iso /mnt/vcdrom
其次,修改脚本执行权限。
chmod 777 /opt/shell/mymount.sh
再次,修改/etc/rc.local配置文件。
vim /etc/rc.local
在文件最后一行加上如下
/opt/shell/mymount.sh
最后,重启机器测试。
init 6
4. 配置远程yum
(1) 服务端配置
第一,安装nfs-utils和rpcbind。
yum -y install nfs-utils rpcbind
第二,设置开机启动服务。
chkconfig nfs on
chkconfig rpcbind on
第三,启动相关服务。
service rpcbind start #需要先启动rpcbind
service nfs start
第四,创建共享目录。
mkdir -p /mnt/vcdrom/
第五,编辑/etc/exports文件,添加如下内容。
vi /etc/exports
/mnt/vcdrom/ 192.168.94.5(rw,async,no_root_squash,no_subtree_check)
(2) 客户端配置
第一,安装nfs-utils和rpcbind。
yum install -y nfs-utils rpcbind
第二,设置开机启动服务。
chkconfig nfs on
chkconfig rpcbind on
第三,启动服务。
service rpcbind start
service nfs start
第四,创建挂载点。
mkdir -p /mnt/vcdrom/
第五,挂载目录。
mount -t nfs server_ip:/mnt/vcdrom /mnt/vcdrom
第六,编辑/etc/fstab,配置开机自动挂载
这里可以参考yum源配置方法二的介绍,编写脚本,使脚本开机运行。下面给出第二种方法:
vim /etc/fstab
server_ip:/mnt/vcdrom /mnt/vcdrom nfs rw,tcp,intr 0 1
第七,修改yum源设置。
参考yum源配置方法二。
四、yum常用指令
1.安装操作
yum install PACKAGE #安装某个包
例:yum install httpd
yum groupinstall GROUP #安装某个软件组
例:yum groupinstall "KDE" #安装KDE桌面
2.升级操作
yum update #更新系统中所有需要更新的包
yum update PACKAGE #更新某个包
例:yum update httpd
yum groupupdate GROUP #更新某个软件组
例:yum groupupdate "KDE" #升级KDE桌面
yum check-update #检查当前系统中需要更新的包
3.查找操作
yum list #显示软件源中所有可用的包,一般不用
yum list installed #显示系统中已经安装过的包
yum info PACKAGE #显示某个包的信息
例:yum info httpd
yum groupinfo GROUP #显示某个软件组的信息
例:yum groupinfo "KDE" #显示KDE桌面软件的信息
yum grouplist #显示软件源宏所有的可用软件
yum repolist #查看yum源
4.删除操作
yum remove PACKAGE #删除某个包
例:yum remove httpd #删除httpd包
yum groupremove GROUP #删除某个软件组
例:yum groupremove "KDE" #删除KDE桌面
5.清除操作
yum clean #清除使用yum所生成的缓存文件
五、相关问题
一、其他由于安装新版本python带来的问题:
1.问题1
描述:File "/usr/bin/yum", line 30
解决:
vi /usr/bin/yum
vi /usr/libexec/urlgrabber-ext-down
将第一行"#!/usr/bin/python" 改为 "#!/usr/bin/python2"即可。
2.问题2:
描述:Another app is currently holding the yum lock; waiting for it to exit...
解决方法:
rm -rf /run/yum.pid