YUM正常运行,需要依赖两个部分,一是YUM源端,二是YUM客户端,也即用户使用端。
YUM客户端安装的所有RPM包都是来自YUM服务端,YUM源端通过HTTP或者FTP服务器发布。而YUM客户端能够
从YUM源端下载依赖的RPM包是由于在YUM源端生成了RPM包的基准信息,包括RPM包版本号、配置文件、二进
制信息、依赖关系等。
[root@localhost yum.repos.d]# cat centos.repo
[centos] Yum软件仓库唯一标识符,避免与其他仓库冲突。
name=centos Yum软件仓库的名称描述,易于识别仓库用处。
baseurl=file:///mnt 提供的方式包括FTP(ftp://..)、HTTP(http://..)、本地(file:///..)。
gpgcheck=0 设置此源是否校验文件;1为校验,0为不校验。
enabled=1 设置此源是否可用;1为可用,0为禁用。
yum install httpd 安装 httpd 软件包;
yum search YUM 搜索软件包;
yum list httpd 显示指定程序包安装情况 httpd;
yum list 显示所有已安装及可安装的软件包;
yum remove httpd 删除程序包 httpd;
yum erase httpd 删除程序包 httpd;
yum update 内核升级或者软件更新;
yum update httpd 更新 httpd 软件;
yum check-update 检查可更新的程序;
yum info httpd 显示安装包信息 httpd;
yum provides 列出软件包提供哪些文件;
yum provides "*/rz" 列出 rz 命令由哪个软件包提供;
yum grouplist 查询可以用 groupinstall 安装的组
名称;
yum groupinstall "Chinese Support" 安装中文支持;
yum groupremove "Chinese Support" 删除程序组 Chinese Support;
yum deplist httpd 查看程序 httpd 依赖情况;
yum clean packages 清除缓存目录下的软件包;
yum clean headers 清除缓存目录下的 headers;
yum clean all 清 除 缓 存 目 录 下 的 软 件 包 及 旧 的
headers。
yum grouplist,检查 groupinstall 的软件组名
yum groupinstall "GNOME Desktop" -y 安装 Linux 图像界面,
yum provides rz 或者 yum provides "*/rz",查找 rz 命令的提供者
阿里云网络源配置流程
1、备份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
2、下载新的CentOS-Base.repo 到/etc/yum.repos.d/
CentOS 5
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo
或者
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo
自建阿里云网络源
CentOS 6
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
或者
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
CentOS 7
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
或者
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
3、之后运行yum makecache生成缓存
自建阿里云网络源
1.配置一个web网站,使用nginx web服务器进行发布
出错提示:
[root@localhost yum.repos.d]# yum install nginx -y
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
No package nginx available.
Error: Nothing to do
--------------------------------------
解决方法:没有对应的软件包,可以配置一个扩展源,命令如下:
方法1
yum install epel* -y
-----------------
方法2
配置1个nginx yum 源文件
vim install_nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
下载成功
https://blog.csdn.net/qq_37898024/article/details/112605610
更改显示页面
将路径改为项目路径。
vi nginx.conf
/usr/share/nginx/html/index.html
基于 YUM 安装软件时,通常会配置多个 Repo 源,而 Fastest mirror 插件是为拥有
多个镜像的软件库配置文件而设计的。它会连接到每一个镜像,计算连接所需的时间,
然后将镜像按快到慢排序供 YUM 应用。
默认 CentOS Linux 系统,Fastestmirror 插件是开启的,所以安装软件会从最快的
镜像源安装,但是由于 Repo 源很多,而在这些源中都存在某些软件包,但有些软件有重
复,甚至冲突,能否可以优先从一些 Repo 源中去查找,如果找不到,再去其他源中找呢?
可以使用 YUM 优先级插件解决该问题,YUM 提供的插件 yum-plugin-priorities,
直接 YUM 安装即可,命令如下
yum install -y yum-plugin-priorities
修改 YUM 源优先级配置文件,设置为 Enabled,开启优先级插件,1 为开启,0 为禁止;
vim /etc/yum/pluginconf.d/priorities.conf
enabled = 1
vim 修改/etc/yum.repos./xx.repo 文件,在 base 段中加入如下指令:(优先级为 1 表
示优先被查找,越大其反而被后续查找)
priority=1
基于 YUM 安装 ntpdate 软件,测试已经优先从 163 源中查找;
通常而言,YUM 客户端使用前提是必须联外网,YUM 安装软件时,检查 repo 配
置文件查找相应的 YUM 源仓库,企业 IDC 机房很多服务器为了安全起见,是禁止服务
器上外网的,所以不能使用默认的官方 YUM 源仓库。
构建本地 YUM 光盘源,其原理是通过查找光盘中的软件包,实现 YUM 安装,配置
步骤如下:
(1) 将 CentOS-7-x86_64-DVD-1511.iso 镜像加载至虚拟机 CD/DVD 或者放入服
务器 CD/DVD 光驱中,并将镜像文件挂载至服务器/mnt 目录,如图 6-14 所示,
挂载命令:
mount /dev/cdrom /mnt/
mount /dev/cdrom /usr/share/nginx/html
vim /etc/nginx/conf.d/default.conf
增加以下参数
autoindex on; #显示目录
autoindex_exact_size on; #显示文件大小
autoindex_localtime on; #显示时间
(2) 备份/etc/yum.repos.d/CentOS-Base.repo 文件为 CentOS-Base.repo.bak,
同时在/etc/yum.repos.d 目录下创建 media.repo 文件,并写入如下内容
[yum]
name=CentOS7
baseurl=file:///mnt
enabled=1
gpgcheck=1
gpgkey=file:///mnt/RPM-GPG-KEY-CentOS-7
Media.repo 配置文件详解:
name=CentOS7 YUM 源显示名称;
baseurl=file:///mnt ISO 镜像挂载目录;
gpgcheck=1 是否检查 GPG-KEY;
enabled=1 是否启用 YUM 源;
gpgkey=file:///mnt/RPM-GPG-KEY-CentOS-7 指定载目录下的 GPG-KEY 文件
验证。
(3) 运行命令 yum clean all 清空 YUM Cache,执行 yum install screen –y 安装
screen 软件如图 6-15 所示:
(4) 至此 YUM 光盘源构建完毕,在使用 YUM 源时,会遇到部分软件无法安装,原
因是因为光盘中软件包不完整导致,同时光盘源只能本机使用,其他局域网服务器
无法使用。
YUM 光盘源默认只能本机使用,局域网其他服务器无法使用 YUM 光盘源,如果想
使用的话,需要在每台服务器上构建 YUM 本地源,该方案在企业中不可取,所以需要构
建 HTTP 局域网 YUM 源解决,可以通过 CreateRepo 创建本地 YUM 源端,repo 即为
Repository。
构建 HTTP 局域网 YUM 源方法及步骤如下:
(1) 挂载光盘镜像文件至/mnt
mount /dev/cdrom /mnt/
(2) 拷贝/mnt/Packages 目录下所有软件包至/var/www/html/centos/
mkdir -p /var/www/html/centos/
cp -R /mnt/Packages/* /var/www/html/centos/
(3) 使用 Createrepo 创建本地源,执行如下命令会在 Centos 目录生成 repodata
目录,目录内容如图 6-16 所示:
yum install createrepo* -y
cd /var/www/html
createrepo centos/
(4) 利用 HTTP 发布 YUM 本地源
本地 YUM 源通过 CreateRepo 搭建完毕,需要借助 HTTP WEB 服务器发布
/var/www/html/centos/中所有软件,YUM 或者 RPM 安装 HTTP WEB 服务器,并启
动 httpd 服务。
yum install httpd httpd-devel -y 安装 HTTP WEB 服务;
useradd apache -g apache 创建 apache 用户和组;
systemctl restart httpd.service 重启 HTTPD 服务;
setenforce 0 临时关闭 SeLinux 应用级安全策略;
systemctl stop firewalld.service 停止防火墙;
ps -ef |grep httpd 查看 HTTPD 进程是否启动
(5) 在 YUM 客户端,创建/etc/yum.repos.d/http.repo 文件,写入如下内容:
[base]
name="CentOS7 HTTP YUM"
baseurl=http://192.168.1.115/centos/
gpgcheck=0
enabled=1
[updates]
name="CentOS7 HTTP YUM"
baseurl=http://192.168.1.115/centos
gpgcheck=0
enabled=1
(6) 至此在 YUM 客户端上执行如下命令,如图 6-17 所示:
yum clean all 清空 YUM Cache;
yum install ntpdate -y 安装 NTPDATE 软件。
默认使用 ISO 镜像文件中的软件包构建的 HTTP YUM 源,会发现缺少很多软件包,
如果服务器需要挂载移动硬盘,Mount 挂载移动硬盘需要 ntfs-3g 软件包支持,而本地
光盘镜像中没有该软件包,此时需要往 YUM 源端添加 ntfs-3g 软件包,添加方法如下:
(1) 切换至/var/www/html/centos 目录,官网下载 NTFS-3G 软件包。
cd /var/www/html/centos/
wget
http://dl.fedoraproject.org/pub/epel/7/x86_64/n/ntfs-3g-2016.2.22-3.el7.x86_6
4.rpm
http://dl.fedoraproject.org/pub/epel/7/x86_64/n/ntfs-3g-devel-2016.2.22-3.el7
.x86_64.rpm
(2) Createrepo 命令更新软件包,同理,如需新增其他软件包,同样把软件下载至
本地,然后通过 createrepo 更新即可,如图 6-18 所示
createrepo --update centos/
(3) 客户端 YUM 验证,安装 NTFS-3G 软件包,如图 6-19 所示
在企业实际应用场景中,仅仅靠光盘里面的 RPM 软件包是不能满足需要,我们可以
把外网的 YUM 源中的所有软件包同步至本地,可以完善本地 YUM 源的软件包数量及完
整性。
获取外网 YUM 源软件常见方法包括 Rsync、Wget、Reposync,三种同步方法的
区别 Rsync 方式需要外网 YUM 源支持 RSYNC 协议,Wget 可以直接获取,而 Reposync
可以同步几乎所有的 YUM 源,下面以 Reporsync 为案例,同步外网 YUM 源软件至本
地,步骤如下:
(1) 下载 CentOS7 REPO 文件至/etc/yum.repos.d/,并安装 reposync 命令工具:
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
mv CentOS7-Base-163.repo /etc/yum.repos.d/centos.repo
yum clean all
yum install yum-utils createrepo –y
yum repolist
(2) 通过 reposync 命令工具获取外网 YUM 源所有软件包,-r 指定 repolist id,默
认不加-r 表示获取外网所有 YUM 软件包,-p 参数表示指定下载软件的路径
reposync -r base -p /var/www/html/centos/
reposync -r updates -p /var/www/html/centos/
(3) 通过 reposync 工具下载完所有的软件包之后,需要执行 createrepo 更新本地
YUM 仓库:
createrepo /var/www/html/centos/