yum配置及仓库搭建
yum实现
YUM 是一个在 Linux 系统中用于管理软件包的工具,可以在服务器和客户端之间跨网络使用。在这种系统中,服务器上通常会存储软件包(RPM 包)和相应的元数据(repodata 文件夹中的内容)。
-
RPM 包:这些是实际的软件包文件,它们包含了应用程序、库文件、配置文件等。这些包被存储在服务器的特定目录中,供客户端下载和安装。
-
元数据:这些数据提供了关于软件包的详细信息,比如软件包的名称、版本、描述、依赖关系等。repodata 文件夹中的内容包括了目录信息、软件包的依赖关系、软件包的位置等。这些元数据被客户端用于确定需要下载哪些软件包以及它们之间的依赖关系。
当客户端执行 YUM 命令时,它会连接到服务器并请求更新软件包信息。服务器会提供最新的元数据,客户端使用这些信息确定要安装、更新或删除的软件包,并下载相应的 RPM 包。然后客户端会安装这些软件包,同时处理它们之间的依赖关系,确保系统中的软件包是正确的版本并且满足所有依赖关系。
仓库类型:
-
光盘的仓库基本仓库
-
epel扩展仓库
yum配置文件
主配置文件
位置:/etc/yum.conf //主配置文件
[root@localhost]#vim /etc/yum.conf [main] cachedir=/var/cache/yum/$basearch/$releasever //yum下载的RPM包的缓存目录 $basearch代表硬件架构 $releasever系统版本比如7 keepcache=0 //是否保存缓存 0代表不保存,1代表保存 debuglevel=2 //调试级别了解即可 logfile=/var/log/yum.log // 日志文件位置 exactarch=1 //是否允许不同版本的rpm安装 obsoletes=1 //update 的一个参数是否可以允许旧版本的运行 gpgcheck=1 //验证秘钥 plugins=1 //是否允许插件1代表可以 installonly_limit=5 //保存几个内核 5代表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
位置:/etc/yum.repos.d/*.repo //**yum仓库文件位置**
yum的repo配置文件中可用的变量: $releasever: 当前OS的发行版的主版本号,如:8,7,6 $arch: CPU架构,如:aarch64, i586, i686,x86_64等 $basearch:系统基础平台;i386, x86_64 $contentdir:表示目录,比如:centos-8,centos-7 $YUM0-$YUM9:自定义变量
可以直接在CentOS-Base.repo中修改baseurl改变yum源。
日志文件
位置:/etc/yum.repos.d/*.repo //**yum仓库文件位置**
yum命令
不加关键字 | 加入关键词、软件包、软件包组 | |
---|---|---|
yum list | 显示所有可用包 | 单个的可安装包 |
yum info | 显示所有可用包的信息 | 单个具体的信息 |
yum search | \ | 模糊查找所有的相关信息 |
yum provides | \ | 精确查找,某个命令却不知道具体的包可以用此命令查找 |
yum grouplist | 显示所有可用包组 | 显示具体的包组 |
yum groupinfo | 显示所有的包组具体信息 | 显示具体的包组的具体信息 |
yum install | \ | 安装具体软件包 |
yum groupinstall | \ | 安装具体软件包组 |
yum update | 所有软件升级 | |
yum group update | 所有包组升级 | 具体包组升级 |
yum remove | \ | 卸载具体软件 |
yum groupremove | \ | 卸载具体包组软件 |
yum history | 查看当前yum操作历史 | \ |
yum history undo | 加入序号卸载序号里安装的软件 | \ |
yum history redo | 加入序号重新执行序号里的操作 |
搭建yum仓库
本地yum仓库
挂载光驱镜像文件
[root@localhost ~]# mount /dev/sr0 /mnt
新建.repo文件
[root@localhost ~]# cd /etc/yum.repos.d/ [root@localhost yum.repos.d]# mkdir bak [root@localhost yum.repos.d]# mv *.repo bak/ [root@localhost yum.repos.d]# vim local.repo [base] name=local baseurl=file:///mnt gpgcheck=0
清理缓存
[root@localhost ~]# yum clean all ; yum makecache
和本地源同样将其他的,repo文件放到bak文件夹下。
新建ali.repo文件
[root@localhost yum.repos.d]# vim ali.repo [ali] name=aliyun baseurl=https://mirrors.aliyun.com/centos/$releasever/os/$basearch/ gpgcheck=0 [epel] name=epel baseurl=https://mirrors.aliyun.com/centos/7/extras/x86_64/ gpgcheck=0 [update] name=update baseurl=https://mirrors.aliyun.com/centos/7/updates/x86_64/ gpgcheck=0
清理缓存
http方式内网环境搭建yum仓库
服务端
- 下载http服务
yum install httpd
- 挂载光盘镜像到/var/www/html/centos7/
[root@localhost html]# mkdir centos7 [root@localhost html]# mount /dev/sr0 /var/www/html/centos7/
- 重启httpd
[root@localhost ~]# systemctl restart httpd.service
- 放通防火墙
[root@localhost ~]# firewall-cmd --permanent --add-service=http success [root@localhost ~]# firewall-cmd --reload success
- 查看网页
客户端
- 配置.repo文件
[root@hx2 ~]# cd /etc/yum.repos.d/ [root@hx2 yum.repos.d]# vim http.repo [http] name=http baseurl=http://192.168.146.150/centos7 gpgcheck=0
- 清理缓存
ftp方式内网环境搭建yum仓库
客户端和服务器和http的搭建方式几乎一样,只要在服务端开启ftp服务,改变yum源位置;在客户端开启ftp服务,改变.repo中baseurl即可。
服务端
- 安装vsftpd
[root@localhost ~]# yum install vsftpd.x86_64 -y
- 开启vsftpd
[root@localhost ~]# systemctl status vsftpd.
- 放通防火墙和selinux
[root@localhost ~]# firewall-cmd --permanent --add-service=ftp success [root@localhost ~]# firewall-cmd --reload success [root@localhost ~]# setenforce 0
- 挂载光盘文件到ftp目录下
[root@localhost ~]# mkdir /var/ftp/centos7 [root@localhost ~]# mount /dev/sr0 /var/ftp/centos7/
客户端
- 安装ftp
[root@localhost ~]# yum install ftp
- 放通防火墙和selinux
[root@localhost ~]# firewall-cmd --permanent --add-service=ftp
success
[root@localhost ~]# firewall-cmd --reload
success
[root@localhost ~]# setenforce 0
- ftp登录服务端成功
- 搭建yum仓库ftp.repo
[root@localhost yum.repos.d]# vim ftp.repo [ftp] name=ftp baseurl=ftp://192.168.146.146/centos7 gpgcheck=0
- 清理缓存
[root@localhost yum.repos.d]# yum clean all ; yum makecache