基于Nginx本地Yum仓库的搭建
2017-12-10 16:23
435 查看
基于Nginx本地Yum仓库的搭建
在RHEL及
Centos系列
linux发行版中,
Yum是我们安装软件包最为常用的工具,相较于单独安装单个软件包的
rpm工具,
Yum能够自动获取各个软件包之间的依赖关系并且能够一并下载安装,非常的简单方便。但是
Yum工具非常依赖
Yum工具获取软件包的目录,通常是在线的各大镜像站点,我们称之为
Yum仓库。
但有时在工作中,我们可能很难实时接触到互联网,或者从流量成本考虑,反复从互联网下载软件包花费大而且占用带宽,此时,构建本地
Yum仓库会是个不错的选择。本文将介绍如何构建本地
Yum仓库,并通过
Ningx搭建的
Http服务分发出去。
基于在线镜像站点创建Repo文件
Yum工具需要依靠Repo文件得到
Yum仓库的基本信息,例如仓库路径,仓库标志。我们首先需要根据在线的镜像站点创建一个Repo文件,而且只能在指定的路径
/etc/yum.repos.d/下创建,否则
Yum将无法识别该文件。
[root@node1 ~]#cd /etc/yum.repos.d [root@node1 yum.repos.d]#ls repobackup selfbuild.repo [root@node1 yum.repos.d]#touch test.repo [root@node1 yum.repos.d]#ls repobackup selfbuild.repo test.repo
以在线
Mariadb仓库为例:
[root@node1 yum.repos.d]#cat test.repo [Mariadb] name= Mariadb Local Repository baseurl= https://mirrors.ustc.edu.cn/mariadb/yum/10.2/centos/7/x86_64/ gpgcheck= 0 enabled= 1 [root@node1 yum.repos.d]#yum repolist all Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile repo id repo name status CDRom cdrom enabled: 9,363 EPEL epel-aliyun enabled: 12,131 Mariadb Mariadb Local Repository enabled: 14 repolist: 21,508
这样
mariadb的在线仓库就能够投入使用了,但这不是我们的目的,我们需要通过这个在线仓库获取仓库内的所有软件包。
安装必要工具包
在构建本地Yum仓库时需要用到两个工具
reposync和
createrepo,分别来自
yum-utils包和
createrepo包。
reposync用于同步远程
Yum仓库至本地路径,
createrepo用于生成安装包元数据信息。直接使用现有的在线EPEL源安装即可
[root@node1 yum.repos.d]#yum -y install yum-utils createrepo [root@node1 yum.repos.d]#reposync --help Usage: Reposync is used to synchronize a remote yum repository to a local directory using yum to retrieve the packages. /usr/bin/reposync [options] …… …… [root@node1 yum.repos.d]#createrepo --help Usage: genpkgmetadata.py [options] …… ……
同步在线仓库的软件包文件至本地
在本地创建一个目录专门用于存放软件包构建Yum仓库,然后使用
reposync同步在线仓库的软件包至本地。
reposync的使用格式为
reposync -g -m -r REPO-ID -p PATH,
REPO-ID为需要同步的
Yum仓库的标志,
PATH为本地目录。
[root@node1 yum.repos.d]#mkdir /app/repository [root@node1 yum.repos.d]#cd /app/repository [root@node1 repository]#reposync -g -m -r Mariadb -p /app/repository (1/18): MariaDB-10.2.11-centos7-x86_64-aws-key-management.rpm | 1.2 MB 00:00:01 (2/18): MariaDB-10.2.11-centos7-x86_64-backup.rpm | 39 MB 00:00:10 (3/18): MariaDB-10.2.11-centos7-x86_64-common.rpm | 154 kB 00:00:00 (4/18): MariaDB-10.2.11-centos7-x86_64-compat.rpm | 2.8 MB 00:00:00 (5/18): MariaDB-10.2.11-centos7-x86_64-connect-engine.rpm | 2.5 MB 00:00:00 (6/18): MariaDB-10.2.11-centos7-x86_64-cracklib-password-check.rpm | 16 kB 00:00:00 (7/18): MariaDB-10.2.11-centos7-x86_64-devel.rpm | 6.6 MB 00:00:02 (8/18): MariaDB-10.2.11-centos7-x86_64-client.rpm | 48 MB 00:00:14 (9/18): MariaDB-10.2.11-centos7-x86_64-gssapi-server.rpm | 46 kB 00:00:01 (10/18): MariaDB-10.2.11-centos7-x86_64-oqgraph-engine.rpm | 604 kB 00:00:00 (11/18): MariaDB-10.2.11-centos7-x86_64-rocksdb-engine.rpm | 69 MB 00:00:21 (12/18): MariaDB-10.2.11-centos7-x86_64-shared.rpm | 393 kB 00:00:01 (13/18): MariaDB-10.2.11-centos7-x86_64-server.rpm | 110 MB 00:00:33 (14/18): MariaDB-10.2.11-centos7-x86_64-tokudb-engine.rpm | 5.4 MB 00:00:07 (15/18): MariaDB-10.2.11-centos7-x86_64-test.rpm | 92 MB 00:00:22 (16/18): galera-25.3.22-1.rhel7.el7.centos.x86_64.rpm | 8.0 MB 00:00:04 (17/18): jemalloc-devel-3.6.0-1.el7.x86_64.rpm | 22 kB 00:00:00 (18/18): jemalloc-3.6.0-1.el7.x86_64.rpm | 104 kB 00:00:00
软件包下载完成:
[root@node1 repository]#ls Mariadb [root@node1 repository]#ls Mariadb/rpms/ galera-25.3.22-1.rhel7.el7.centos.x86_64.rpm jemalloc-3.6.0-1.el7.x86_64.rpm jemalloc-devel-3.6.0-1.el7.x86_64.rpm MariaDB-10.2.11-centos7-x86_64-aws-key-management.rpm MariaDB-10.2.11-centos7-x86_64-backup.rpm MariaDB-10.2.11-centos7-x86_64-client.rpm MariaDB-10.2.11-centos7-x86_64-common.rpm MariaDB-10.2.11-centos7-x86_64-compat.rpm MariaDB-10.2.11-centos7-x86_64-connect-engine.rpm MariaDB-10.2.11-centos7-x86_64-cracklib-password-check.rpm MariaDB-10.2.11-centos7-x86_64-devel.rpm MariaDB-10.2.11-centos7-x86_64-gssapi-server.rpm MariaDB-10.2.11-centos7-x86_64-oqgraph-engine.rpm MariaDB-10.2.11-centos7-x86_64-rocksdb-engine.rpm MariaDB-10.2.11-centos7-x86_64-server.rpm MariaDB-10.2.11-centos7-x86_64-shared.rpm MariaDB-10.2.11-centos7-x86_64-test.rpm MariaDB-10.2.11-centos7-x86_64-tokudb-engine.rpm
创建软件包元数据目录
前面我们提到,已下载到本地的软件包需要使用createrepo工具创建元数据目录,命令格式为
createrepo PATH,要注意
PATH为下载的软件包所在的目录。
[root@node1 repository]# [root@node1 repository]#cd Mariadb/rpms/ [root@node1 rpms]#createrepo /app/repository/Mariadb/rpms/ Spawning worker 0 with 5 pkgs Spawning worker 1 with 5 pkgs Spawning worker 2 with 4 pkgs Spawning worker 3 with 4 pkgs Workers Finished Saving Primary metadata Saving file lists metadata Saving other metadata Generating sqlite DBs Sqlite DBs complete
重建本地仓库的Repo文件
本地的Yum仓库创建好后需要修改Repo文件指向该目录,否则mariadb还是会指向在线站点。
[root@node1 rpms]#cat /etc/yum.repos.d/test.repo [Mariadb] name= Mariadb Local Repository # baseurl= https://mirrors.ustc.edu.cn/mariadb/yum/10.2/centos/7/x86_64/ baseurl= file:///app/repository/Mariadb/rpms/ gpgcheck= 0 enabled= 1 [root@node1 rpms]#yum clean all Loaded plugins: fastestmirror, langpacks Cleaning repos: CDRom EPEL Mariadb Cleaning up everything [root@node1 rpms]# [root@node1 rpms]# [root@node1 rpms]#yum repolist all Loaded plugins: fastestmirror, langpacks CDRom | 3.6 kB 00:00:00 EPEL | 4.7 kB 00:00:00 Mariadb | 2.9 kB 00:00:00 (1/6): CDRom/group_gz | 155 kB 00:00:00 (2/6): CDRom/primary_db | 5.6 MB 00:00:00 (3/6): EPEL/group_gz | 266 kB 00:00:00 (4/6): Mariadb/primary_db | 21 kB 00:00:00 (5/6): EPEL/updateinfo | 858 kB 00:00:00 (6/6): EPEL/primary_db | 6.1 MB 00:00:00 Determining fastest mirrors repo id repo name status CDRom cdrom enabled: 9,363 EPEL epel-aliyun enabled: 12,131 Mariadb Mariadb Local Repository enabled: 18 repolist: 21,512 [root@node1 rpms]#yum list all Mariadb-server* Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile Available Packages MariaDB-server.x86_64 10.2.11-1.el7.centos Mariadb mariadb-server.x86_64 1:5.5.52-1.el7 CDRom
至此,
MariaDB的本地
Yum仓库搭建完毕。
为Yum仓库搭建Web服务
MariaDB的本地
Yum仓库搭建完成,我们还应该为
Yum仓库搭建
Http环境对以方便
Yum仓库通过Web对外提供服务。此处,我们选用
Nginx提供
Http服务。
[root@node1 rpms]#yum -y install nginx …… …… [root@node1 rpms]#cd /etc/nginx/conf.d/
在
/etc/nginx/conf.d路径下创建配置文件
yum.conf:
[root@node1 conf.d]#cat yum.conf server { listen 80 default_server; root /usr/share/nginx/html; location /yum { alias /app/repository; autoindex on; autoindex_exact_size off; autoindex_localtime on; } }
重启服务:
[root@node1 conf.d]#systemctl enable nginx.service Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service. [root@node1 conf.d]#systemctl start nginx.service [root@node1 conf.d]#systemctl status nginx.service ● nginx.service - The nginx HTTP and reverse proxy server Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled) Active: active (running) since Sun 2017-12-10 16:10:20 CST; 4min 39s ago Main PID: 41957 (nginx) …… …… [root@node1 conf.d]#ss -ntl State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 *:111 *:* LISTEN 0 128 *:80 *:* LISTEN 0 32 *:21 *:* LISTEN 0 10 192.168.122.1:53 *:* LISTEN 0 10 172.18.42.20:53 *:*
端口监听正常,这样访问
http://IP/yum就能获取
Yum仓库列表了。
相关文章推荐
- Linux安装软件包的三种方法,rpm包介绍,rpm工具用法,yum工具用法,yum搭建本地仓库
- 同步阿里云镜像到本地,在本地搭建YUM仓库 【转】
- centos 创建本地yum源搭建本地yum仓库 亲测可用
- 本地Yum仓库搭建部署
- 五周第一次课(11月13日) 7.1 安装软件包的三种方法 7.2 rpm包介绍 7.3 rpm工具用法 7.4 yum工具用法 7.5 yum搭建本地仓库
- 解决内网搭建本地yum仓库。
- 同步公网yum源搭建本地yum仓库
- 入门级Hadoop集群搭建详细教程(六):yum本地仓库与远程仓库配置
- 安装软件包的三种方法、rpm包介绍、rpm、yum工具用法与yum搭建本地仓库
- 安装软件包的三种方法、rpm包介绍及工具用法、yum用法及搭建本地仓库
- 7.1 安装软件包的三种方法 7.2 rpm包介绍 7.3 rpm工具用法 7.4 yum工具用法 7.5 yum搭建本地仓库
- 通过挂载系统光盘搭建本地yum仓库的方法
- 7.1 安装软件包的三种方法 7.2 rpm包介绍 7.3 rpm工具用法 7.4 yum工具用法 7.5 yum搭建本地仓库
- iOS 直播推流 - 搭建基于RTMP的本地Nginx服务器
- 搭建本地yum仓库
- CentOS-6下搭建本地yum仓库, 采用NFS服务
- 本地YUM仓库搭建实战
- CentOS 7下 YUM 本地仓库的搭建
- 如何手工搭建本地Yum仓库