天天看点

Linux软件管理(四):yum仓库制作

Linux软件管理(四):yum仓库制作

yum的配置

yum的配置一般有两种方式:

1.全局配置文件/etc/目录下的yum.conf

2.子配置文件/etc/yum.repos.d/目录下的所有.repo文件

vim /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=1
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
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


vim /etc/yum.repos.d/epel.repo

           

yum仓库制作

要先了解YUM的配置文件中的一些参数含义

# 比如:vim /etc/yum.repos.d/CentOS-Base.repo


[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
      http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/
      http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7


......




[]         //仓库名称
name       //仓库描述信息
baseurl     //YUM源url地址 ,可以是file:// ftp:// http://
enabled      //是否激活该YUM源(0代表禁用,1代表激活,默认为激活)
gpgcheck     //安装软件时是否检查签名(0代表禁用,1代表激活)           

例子1:本地yum源

#挂载
[root@localhost ~]# mount /dev/cdrom /mnt
#把原来的源打包备份
[root@localhost ~]# gzip /etc/yum.repos.d/*  
#创建新仓库vim
[root@localhost ~]# vim /etc/yum.repos.d/自己起的名.repo  
[xxxxx]      
 name=This is local cdrom
# baseurl=file:///mnt   可以是file:// ftp:// http://   这里地址为自己的光盘挂载地址/mnt
 enabled=1
 gpgcheck=0           

例子2: 一台虚拟机做yum源,另一台ftp去使用

第一台:

#安装服务
[root@localhost /var/ftp/pub]# yum install -y vsftpd


#挂载
[root@localhost ~]# mount /dev/cdrom /mnt


# 在 /var/ftp/pub下创建一个/base一个/epel
[root@localhost ~]# cd /var/ftp
[root@localhost /var/ftp]# ll
total 0
drwxr-xr-x. 2 root root 6 Jun 10  2021 pub


[root@localhost /var/ftp/pub]# mkdir base
[root@localhost /var/ftp/pub]# mkdir epel
[root@localhost /var/ftp/pub]# ll
total 0
drwxr-xr-x. 2 root root 6 Aug 31 11:30 base
drwxr-xr-x. 2 root root 6 Aug 31 11:30 epel


#从挂载光驱复制东西过去
[root@localhost ~]# cp /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm /var/ftp/pub/base
[root@localhost /var/ftp]# cp /mnt/Packages/zip-3.0-11.el7.x86_64.rpm /var/ftp/pub/base
[root@localhost /var/ftp]# cp /mnt/Packages/gzip-1.5-10.el7.x86_64.rpm /var/ftp/pub/base
[root@localhost /var/ftp]# cp /mnt/Packages/pcre-devel-8.32-17.el7.x86_64.rpm /var/ftp/pub/epel


#看一下,已经有了
[root@localhost /var/ftp/pub/base]# ll    
total 920
-rw-r--r--. 1 root root 132636 Aug 31 19:29 gzip-1.5-10.el7.x86_64.rpm
-rw-r--r--. 1 root root  47508 Aug 31 11:41 tree-1.6.0-10.el7.x86_64.rpm
-rw-r--r--. 1 root root 266160 Aug 31 19:28 zip-3.0-11.el7.x86_64.rpm
[root@localhost /var/ftp/pub/epel]# ll
total 480
-rw-r--r--. 1 root root 491272 Aug 31 19:34 pcre-devel-8.32-17.el7.x86_64.rpm


#启动下vsftpd服务
[root@localhost /var/ftp/pub/epel]# vsftpd
这时就可以看到           
#安装createrepo
[root@localhost /var/ftp/pub/epel]# yum install -y createrepo
[root@localhost /var/ftp/pub/epel]# createrepo /var/ftp/pub     用createrepo命令把这个/pub目录变成仓库
[root@localhost /var/ftp/pub]# ll                               看一下生成了个repodata  
total 4
drwxr-xr-x. 2 root root  109 Aug 31 19:34 base
drwxr-xr-x. 2 root root   47 Aug 31 19:34 epel
drwxr-xr-x. 2 root root 4096 Aug 31 19:54 repodata           

第二台

#把原来的源打包备份
[root@localhost ~]# gzip /etc/yum.repos.d/*  
[root@localhost yum.repos.d]# ll
total 28
-rw-r--r--. 1 root root 549 Nov 23  2018 CentOS-Base.repo.gz
-rw-r--r--. 1 root root 735 Nov 23  2018 CentOS-CR.repo.gz
-rw-r--r--. 1 root root 426 Nov 23  2018 CentOS-Debuginfo.repo.gz
-rw-r--r--. 1 root root 232 Nov 23  2018 CentOS-fasttrack.repo.gz
-rw-r--r--. 1 root root 381 Nov 23  2018 CentOS-Media.repo.gz
-rw-r--r--. 1 root root 506 Nov 23  2018 CentOS-Sources.repo.gz
-rw-r--r--. 1 root root 633 Nov 23  2018 CentOS-Vault.repo.gz
#自己建一个
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# vim /etc/yum.repos.d/xxx.repo
#在里面修改下:
[xxxbase_epel]
name=这是我的仓库臭丁丁
baseurl=ftp://10.0.0.250/pub (第一台机器的地址)
gpgcheck=0
enabled=1


#拿[root@zls ~]# yum repolist看一眼


#拿tree实验下 发现安装时里面Repository项变xxxbase_epel   成功。           

继续阅读