什么是yum

YUM(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
简而言之,包管理工具。简化安装过程。

常用命令

  • 列出可用的yum配置

yum repolist

  • 清除所有缓冲数据

yum clean all

  • 重新加载yum

yum clean all
yum makecache

  • 列出所有可用的package和package组

yum list
yum list|grep xxx

  • 列出一个包所有依赖的包

yum deplist httpd

  • 安装相应的软件

yum install -y httpd

  • 删除包

yum remove httpd

配置方法一(阿里云源)

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

配置方法二(本地源)

来源:https://www.cnblogs.com/yangp/p/8506264.html

1 下载iso文件

从CentOS的官网下载CentOS的完整版iso文件,并上传到Linux文件系统中,例如/opt/tools/。
如果是虚拟机,可在虚拟机设置界面事先配置好挂在镜像,(默认挂到/dev/cdrom)。
或者直接将安装包rz上传至服务器上。

2 创建挂载目录

为iso文件的挂载创建目录。
mkdir /mnt/iso

3 挂载

将iso文件挂载到挂载目录。
mount -o loop -t iso9660 /opt/tools/CentOS-6.7-x86_64-bin-DVD1.iso /mnt/iso

注:
如果有光盘镜像的话吗,可直接直接将windows上的光盘镜像插入到虚拟机的光驱中,然后将光驱挂载到一个挂载点/mnt/cdrom
mkdir -p /mnt/cdrom
mount -t iso9660 -o ro /dev/cdrom /mnt/cdrom
镜像中,packages目录为包的存放路径。 repodata为存放包之间的依赖信息。
如何显示挂载设备不可用,可重启虚拟机试试。我恢复快照的时候,就显示不可用,恢复快照后重启下就好了,应该状态未重置的问题。

4 移除或备份Centos-Base.repo文件

cd /etc/yum.repos.d/

mv CentOS-Base.repo CentOS-Base.repo.back

rename .repo .repo.bak *

5 新建自定义源配置文件

vim /etc/yum.repos.d/CentOS-Media.repo (文件名自定义)

  1. [base] #仓库的ID
  2. name=CentOS-$releasever - Media #仓库的名称
  3. baseurl=file:///mnt/iso/ #仓库的存放地址,即挂载目录
  4. enabled=1 #开启本地更新模式 1开启 0关闭
  5. gpgcheck=1 #代表是否进行签名校验。如果在镜像中添加了自己的包,那么签名校验不通过。所以可改为0
  6. gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 # 对包进行签名校验

注:GPG在Linux上的应用主要是实现官方发布的包的签名机制。不注重安全性的话,不加也行。
解决错误:Couldn’t open file /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
https://www.cnblogs.com/liqing1009/p/9518968.html

6 重新加载yum

yum clean all
yum makecache

7 列出可用的YUM源

yum repolist
yum list | grep mysql
列出yum源中所有的软件

8 安装相应的软件

yum install -y httpd

9 编写脚本并开机自动挂载

首先,编写脚本。

centos7上操作,重启后不一定能 ll /mnt/iso能看到文件。但是yum确实能继续用。

  1. # 首先,编写脚本。
  2. vim /opt/shell/mymount.sh
  3. #!/bin/bash
  4. # 上传到虚拟机的安装包(2选1)
  5. #mount -o loop -t iso9660 /opt/tools/CentOS-6.7-x86_64-bin-DVD1.iso /mnt/iso
  6. # 挂载到虚拟机的cdrom安装包(2选1)
  7. mount -o loop -t iso9660 /dev/cdrom /mnt/iso
  8. # 其次,修改脚本执行权限。
  9. chmod 777 /opt/shell/mymount.sh
  10. # 再次,修改/etc/rc.local配置文件。
  11. vim /etc/rc.local
  12. # 在文件最后一行加上如下
  13. /opt/shell/mymount.sh
  14. #最后,重启机器测试。
  15. init 6 reboot

10 添加依赖包到私有yum的repository
进入到repo目录
执行
createrepo
http://linux.51yip.com/search/createrepo

配置方法三(远程挂载目录)

本质:

通过httpd组件,将已经拷贝出来的镜像文件,暴露在网络环境下访问。

也可通过nfs-utils和rpcbind组件走局域网共享文件来实现,但是比较复杂。
方法:https://www.cnblogs.com/yangp/p/8506264.html

前提:

作为集群中负责提供源的主机,实现配置好自身的本地源。

1 安装httpd

yum install -y httpd
(httpd 是一个web服务器偏向于静态资源,而tomcat偏向动态。)

2 开启httpd

开启httpd使用浏览器访问http://192.168.0.100:80(如果访问不通,检查防火墙是否开启了80端口或关闭防火墙)
service httpd start
chkconfig httpd on 设置开机自动启动

3 YUM源配置到httpd

将YUM源配置到httpd(Apache Server)中,其他的服务器即可通过网络访问这个内网中的YUM源了
实际上是将已挂载本地镜像的目标目录中的系统的文件都转移出去。
cp -r /mnt/iso/var/www/html/CentOS-6.7
-r 若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。

4 取消先前挂载的镜像

umount /var/iso
取消mnt挂载后,别忘了更改配置的yum源配置
baseurl=file:///var/www/html/CentOS-6.7

5 尝试访问

浏览器中访问http://192.168.0.100/CentOS-6.7/
或 curl http://192.168.0.100/CentOS-6.7/
![1.png](https://cdn.nlark.com/yuque/0/2019/png/623390/1577359434999-2ad1ead5-0d24-4a37-ae48-2346e0bbe6d6.png#align=left&display=inline&height=572&name=1.png&originHeight=572&originWidth=635&size=26484&status=done&style=none&width=635)

6 更改其它机器节点的源配置

更改其它主机节点的源配置文件,执行方法二中的 4\5\6
baseurl=http://192.168.0.100/CentOS-6.7

包的存放路径