基于Nginx本地Yum仓库的搭建
来源:互联网 发布:web编程语言有哪些 编辑:程序博客网 时间:2024/06/05 16:07
基于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]#lsrepobackup selfbuild.repo[root@node1 yum.repos.d]#touch test.repo[root@node1 yum.repos.d]#lsrepobackup selfbuild.repo test.repo
以在线Mariadb
仓库为例:
[root@node1 yum.repos.d]#cat test.repo[Mariadb]name= Mariadb Local Repositorybaseurl= https://mirrors.ustc.edu.cn/mariadb/yum/10.2/centos/7/x86_64/gpgcheck= 0enabled= 1[root@node1 yum.repos.d]#yum repolist allLoaded plugins: fastestmirror, langpacksLoading mirror speeds from cached hostfilerepo id repo name statusCDRom cdrom enabled: 9,363EPEL epel-aliyun enabled: 12,131Mariadb Mariadb Local Repository enabled: 14repolist: 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 --helpUsage: 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 --helpUsage: 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]#lsMariadb[root@node1 repository]#ls Mariadb/rpms/galera-25.3.22-1.rhel7.el7.centos.x86_64.rpmjemalloc-3.6.0-1.el7.x86_64.rpmjemalloc-devel-3.6.0-1.el7.x86_64.rpmMariaDB-10.2.11-centos7-x86_64-aws-key-management.rpmMariaDB-10.2.11-centos7-x86_64-backup.rpmMariaDB-10.2.11-centos7-x86_64-client.rpmMariaDB-10.2.11-centos7-x86_64-common.rpmMariaDB-10.2.11-centos7-x86_64-compat.rpmMariaDB-10.2.11-centos7-x86_64-connect-engine.rpmMariaDB-10.2.11-centos7-x86_64-cracklib-password-check.rpmMariaDB-10.2.11-centos7-x86_64-devel.rpmMariaDB-10.2.11-centos7-x86_64-gssapi-server.rpmMariaDB-10.2.11-centos7-x86_64-oqgraph-engine.rpmMariaDB-10.2.11-centos7-x86_64-rocksdb-engine.rpmMariaDB-10.2.11-centos7-x86_64-server.rpmMariaDB-10.2.11-centos7-x86_64-shared.rpmMariaDB-10.2.11-centos7-x86_64-test.rpmMariaDB-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 pkgsSpawning worker 1 with 5 pkgsSpawning worker 2 with 4 pkgsSpawning worker 3 with 4 pkgsWorkers FinishedSaving Primary metadataSaving file lists metadataSaving other metadataGenerating sqlite DBsSqlite 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= 0enabled= 1[root@node1 rpms]#yum clean all Loaded plugins: fastestmirror, langpacksCleaning repos: CDRom EPEL MariadbCleaning up everything[root@node1 rpms]#[root@node1 rpms]#[root@node1 rpms]#yum repolist all Loaded plugins: fastestmirror, langpacksCDRom | 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 mirrorsrepo id repo name statusCDRom cdrom enabled: 9,363EPEL epel-aliyun enabled: 12,131Mariadb Mariadb Local Repository enabled: 18repolist: 21,512[root@node1 rpms]#yum list all Mariadb-server*Loaded plugins: fastestmirror, langpacksLoading mirror speeds from cached hostfileAvailable PackagesMariaDB-server.x86_64 10.2.11-1.el7.centos Mariadbmariadb-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.confserver { 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.serviceCreated 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 -ntlState 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仓库
列表了。
- 基于Nginx本地Yum仓库的搭建
- 搭建本地yum仓库
- 搭建本地yum仓库
- 本地yum仓库搭建
- CentOS 7下 YUM 本地仓库的搭建
- yum仓库的搭建
- yum仓库的搭建
- 如何手工搭建本地Yum仓库
- centos7 yum仓库的搭建
- yum环境的本地源搭建(基于VSFTP)
- 创建自己的本地yum仓库
- yum搭建本地仓库以及保留下在的rpm包
- docker本地仓库的搭建
- 配置本地yum仓库
- 创建本地yum仓库
- 配置本地yum仓库
- YUM光盘源及基于VSFTP的本地YUM源的搭建
- linux学习第二十一篇:安装软件包的三种方法,rpm,yum工具用法,yum搭建本地仓库
- 50道java基础编程(6~10)
- Spark的数据本地化
- 学习人工智能需要哪些必备的数学基础?
- 数据结构---图(思维导图)
- 面向对象之this 和static
- 基于Nginx本地Yum仓库的搭建
- 在树莓派 上 搭建 aria2+webui 实现远程下载
- hdu 2844 coins 多重背包
- ECharts的自适应位置
- 哈尔滨理工大学第七届程序设计竞赛决赛 A 所有情况的和
- HTTP协议浅析(下): 使用HTTP协议实现通信
- 蓝桥杯 算法训练 拦截导弹
- Leetcode算法学习日志-684 Redundant Connection
- 常见的五类排序算法图解和实现(归并类:二路归并排序)