YUM仓库
- 导读 yum( Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。 基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。 yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
一.搭建前言
很多公司都有自己搭建的yum仓库,这样做的好处有以下几点:
1)节省流量,避免从公网重复下载软件包;为公司省钱;
2)提升下载速度;外网下载受带宽影响,下载速度较慢,而yum仓库在局域网中就很快;
3)方便统一管理,软件版本,都能做到统一;
4)避免访问外网,很多大公司,都是与公网隔绝的,尤其是大公司的类生产环境,绝对不予许随便访问外网,这是获取安装包的途径就只能通过内网yum仓库;
二.搭建前准备
1.操作系统准备
不同版本操作系统安装大体上没有差别,但是也会有影响,本实例yum仓库搭建基于如下环境:
PS: 反正我的是这么做
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6qIow30R-1575380246998)(https://blog.elephantncs.xyz/wp-content/uploads/2019/11/5a43c88a401735efc78dc3f492ff4c83.png)]
2.关闭防火墙和selinux
- 安装前一定要关闭防火墙和Selinux,否则会失败,出现异常。
[root@yum ~]# getenforce #确认SELinux关闭
Disabled
[root@yum ~]# systemctl status firewalld #确认防火墙关闭
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
1、查看SELinux状态:
getenforce
/usr/sbin/sestatus -v
如果都是disabled说明已经禁用了。
2、关闭SELinux:
vi /etc/selinux/config
设置SELINUX的值为disabled,SELINUX原来的值是enforcing。改完需要重新启动系统才能生效。
三.搭建yum仓库
- 服务端
1.安装createrepo
-
createrepo用于生成repomd.xml。repomd.cml简单来说就是存放本地仓库rpm包的索引信息,我们的yum源就是根据这个文件来知道具体包的存放位置的
-
首先建立一个目录用于存放安装包,然后使用createrepo来创建repository仓库,如果系统里没有该命令的话需要先进行createrepo的安装
mkdir /warehouse
yum install createrepo -y
createrepo /warehouse/
- 命令成功后生成一个repodata包,里面包含库文件,类似数据库建库建表一样
- 生成Rpm仓库索引 看你自己怎么理解了
更新仓库
- 每次加入新的rpm包,更新yum仓库
注意点:每次同步之后,要更新yum仓库,使用createrepo命令更新yum仓库,否则不会同步。
createrepo --update /warehouse/
2.本地保存rpm包
第一种方法
- 其一:开启yum本地缓存
-yum本地缓存后,所有通过yum安装的软件包,yum都会把rpm包保存到本地相应目录下
[root@yum ~]# vim /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever #rpm包存放路径
keepcache=1 #keepcache默认是0,不保留rpm包,改为1,则会保留rpm安装包
debuglevel=2 #Debug信息输出登记,范围为0-10,缺省为2
logfile=/var/log/yum.log #日志文件,执行yum记录
exactarch=1 #有1和0两个选项,设置为1,则yum只会安装和系统架构匹配的软件包
obsoletes=1 #update的参数,相当于upgrade,允许更新陈旧的RPM包
gpgcheck=1 #有1和0两个选项,分别代表是否进行gpg(GNU)校验,以确定rpm包的来源是有效和安全的。这个选项如果设置在[main]部分,则对每个repository都有效,默认为0
plugins=1 #是否启用插件,默认为1允许,0表示不允许
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 #指定一个软件包,yum会根据这个包判断发行版本
第二种方法
其二:通过yum命令只下载不安装
yum install --downloadonly --downloaddir=/warehouse mysql-server.server
--downloadonly 只下载不安装
--downloaddir 指定rpm包的下载路径
3.服务端配置仓库局域网访问路径
- 通常会在计划任务中把公网YUM源同步到本地(推荐使用reposync),同步后再执行一次createrepo更新元数据,最后把仓库目录通过FTP或者Nginx、Apache、NFS服务等共享出来,然后客户端的配置文件中修改如下:
nginx方式
yum install nginx -y
cd /etc/nginx/conf.d/
vim warehouse.conf
server {
listen 12345;
server_name 10.0.0.61;
root /warehouse;
index index.html;
location / {
root /warehouse;
autoindex on;
autoindex_localtime on;
autoindex_exact_size off;
}
}
systemctl restart nginx
访问网址: http://10.0.0.61:12345/
httpn的端口80 Nginx的端口也是80 会出警告 可以改掉一个冲突端口
FTP方式
yum install vsftpd -y
systemctl start vsftpd
访问网址: ftp://10.0.0.61/pub/
四.客户端配置
配置客户端下载指向服务端
Nginx 方式
cat /etc/yum.repos.d/warehouse.conf
[warehouse]
name=Server
baseurl=http://10.0.0.61:12345/
enable=1
gpgcheck=0
priority=1
FTP方式
cat /etc/yum.repos.d/warehouse.conf
[warehouse]
name=Server
baseurl=ftp://10.0.0.61/pub/
enable=1
gpgcheck=0
priority=1
yum 命令
yum clean all #清除缓存
####查看软件包
yum list all ##列出yum源仓库里面的所有可用的安装包
yum list installed ##列出所有已经安装的安装包
yum list available ##列出没有安装的安装包
####安装软件
yum install softwarename ##安装指定的软件
yum reinstall softarename ##重新安装指定的软件
yum localinstall 第三方software ##安装第三方文件并且会解决软件的依赖关系
yum remove softwarename ##卸装指定的软件
####查找软件的信息
yum info software ##查看软的信息
yum search keywords ##根据关键字查找到相关安装包软件的信息
yum whatprovides filename ##查找包含指定文件的相关安装包
####对于软件组
yum groups list ##列出软件组
yum groups install ##安装一个软件组
yum group remove ##卸载一个软件组
yum groups info ##查看一个软件组的信息
yum list httpd ##列出软件包
yum search httpd ##搜索软件包
yum provides /etc/my.cnf ##查找某个特定文件属于哪个软件包
yum grouplist ##弹出所有可用群组
yum grouplist “MySQL Database” ##安装群组软件包
yum repolist ##弹出启用的软件库
yum repolist all(包含禁用的软件库) ##弹出所有软件包
yum –enablerepo=localinstll LNMP ##安装来自特定软件库的软件包
yum –enablerepo=local –disablerepo=base.extras.updates install LNMP ##不安装来自特定软件库的软件包
yum clean all ##清理yum缓存内容
yum makecache ##缓存本地yum源中的软件包信息
yum history ##查看yum历史记录