使用yum的好处主要就是在于能够自动解决软件包之间的依赖、这使得维护更加容易、这篇文章主要就是记录部署内网源的操作过程以及yum工具如何使用

因为需要、数据库要从Oracle迁移至MySQL、在部署MySQL的时候也是内网、所以这里就需要解决源码编译MySQL时安装依赖包的工作、下面为操作过程

在yum中软件仓库的发布方式有多种、其中包括:

FTP服务 :ftp://......
HTTP服务:http://......
本地目录 :file://......

一、服务端配置

1)准备软件仓库目录

提示:第一个目录为使用HTTP形式发布、第二个目录为使用FTP形式发布

[root@vpn ~]# mkdir /opt/yum/
[root@vpn ~]# mkdir -p /opt/yum/http/7
[root@vpn ~]# mkdir -p /opt/yum/ftp/7

2)将软件包复制到对应的发布目录

注意:因为VPN服务器带宽有限、所以这里我没有下载镜像、而是使用上传到VPN服务器的软件包进行制作

[root@vpn ~]# cp /data/soft/*.rpm /opt/yum/http/7/
[root@vpn ~]# ls -lh /opt/yum/http/7/ | wc -l
3972
[root@vpn ~]# cp /data/soft/*.rpm /opt/yum/ftp/7/
[root@vpn ~]# ls -lh /opt/yum/ftp/7/ | wc -l
3972

3)使用createrepo工具创建仓库

[root@vpn ~]# yum -y install createrepo | tail -7
  正在安装    : createrepo-0.9.9-28.el7.noarch                              1/1
  验证中      : createrepo-0.9.9-28.el7.noarch                              1/1 

已安装:
  createrepo.noarch 0:0.9.9-28.el7                                              

完毕!

[root@vpn ~]# createrepo /opt/yum/http/7/
Spawning worker 0 with 3971 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete

[root@vpn ~]# createrepo /opt/yum/ftp/7/
Spawning worker 0 with 3971 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete

[root@vpn ~]# ls -lh /opt/yum/http/7/ | grep repodata
drwxr-xr-x 2 root root  4.0K 12月 19 17:00 repodata

[root@vpn ~]# ls -lh /opt/yum/ftp/7/ | grep repodata
drwxr-xr-x 2 root root  4.0K 12月 19 17:06 repodata

4)部署Nginx、使用HTTP形式进行发布

1、下载并安装Nginx

[root@vpn ~]# useradd -M -s /sbin/nologin nginx
[root@vpn ~]# yum -y install pcre pcre-devel zlib zlib-devel ncurses ncurses-devel gcc gcc-c++
[root@vpn ~]# wget -c www.nginx.org/download/nginx-1.16.1.tar.gz
[root@vpn ~]# tar xf nginx-1.16.1.tar.gz -C /usr/src/
[root@vpn ~]# cd /usr/src/nginx-1.16.1/
[root@vpn nginx-1.16.1]# ./configure --prefix=/etc/nginx --user=nginx --group=nginx && make -j 8 && make install -j 8 && cd ~

2、添加Nginx至环境变量、并将其添加为系统服务

[root@vpn ~]# echo 'export PATH=/etc/nginx/sbin:$PATH' >> /etc/profile
[root@vpn ~]# source /etc/profile && nginx

[root@vpn ~]# cat > /usr/lib/systemd/system/nginx.service << EOF
[Unit]
Description=nginx
After=network.target

[Service]
Type=forking
PIDFile=/etc/nginx/logs/nginx.pid
ExecStart=/etc/nginx/sbin/nginx
ExecReload=killall -s HUP $(cat /etc/nginx/logs/nginx.pid)
ExecStop=killall -s QUIT $(cat /etc/nginx/logs/nginx.pid)
PrivateTmp=Flase

[Install]
WantedBy=multi-user.target
EOF

[root@vpn ~]# systemctl daemon-reload && pkill -9 nginx
[root@vpn ~]# systemctl restart nginx && systemctl enable nginx
[root@vpn ~]# cp /etc/nginx/conf/nginx.conf /etc/nginx/conf/nginx.conf.bak

3、编辑Nginx的配置文件、指定yum仓库目录的位置、最后重启Nginx服务即可

[root@vpn ~]# vim /etc/nginx/conf/nginx.conf
user  nginx;

worker_processes  4;
worker_cpu_affinity 00000001 00000010 00000100 00001000;

pid             /etc/nginx/logs/nginx.pid;
error_log       /etc/nginx/logserror.log  info;       

events  {
        use epoll;
        worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    log_format  mds   '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

        access_log  logs/access.log  mds;
        sendfile                on;
        tcp_nopush              on;
        tcp_nodelay             on;
        send_timeout            10;
        keepalive_timeout       60;
        server_tokens           off;
        client_max_body_size  	1024m;
        fastcgi_buffers 64 4K;
        client_header_buffer_size  15k;
        large_client_header_buffers  4 128k;
        open_file_cache_valid  30s;
        open_file_cache_min_uses 2;
        open_file_cache max=65535 inactive=20s;

server	{
	listen		80;
	charset		utf-8;
	index		index.html;
	server_name 	localhost;

	location / {
		root /opt/yum/http;
		autoindex 		on;
		autoindex_localtime	on;
		autoindex_exact_size 	off;
	}		

    }
}

[root@vpn ~]# nginx -t
nginx: the configuration file /etc/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/conf/nginx.conf test is successful

[root@vpn ~]# systemctl restart nginx
[root@vpn ~]# systemctl | grep nginx
nginx.service                                                                       loaded active running   nginx

5)部署FTP、使用FTP形式进行发布

注意:vsftpd是服务端程序、ftp是客户端程序

(1)安装vsftpd服务

[root@vpn ~]# yum -y install vsftpd ftp | tail -9
  正在安装    : ftp-0.17-67.el7.x86_64                                      1/2
  正在安装    : vsftpd-3.0.2-25.el7.x86_64                                  2/2
  验证中      : vsftpd-3.0.2-25.el7.x86_64                                  1/2
  验证中      : ftp-0.17-67.el7.x86_64                                      2/2 

已安装:
  ftp.x86_64 0:0.17-67.el7             vsftpd.x86_64 0:3.0.2-25.el7            

完毕!
[root@vpn ~]# systemctl enable vsftpd
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.

安装完成以后、匿名用户的默认访问目录为:/var/ftp/pub

(2)对创建的软件仓库目录进行授权、并编辑配置文件允许匿名用户访问

注意:给匿名用户使用的根目录一定不能有写入权限、否则将报500错误、如下所示:

响应:	331 Please specify the password.
命令:	PASS
响应:	500 OOPS: vsftpd: refusing to run with writable root inside chroot()
错误:	严重错误: 无法连接到服务器

因为仓库目录我们在上个环节已经创建了、所以这里只需对其进行授权并编辑配置文件即可

[root@vpn ~]# grep ftp /etc/passwd
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

[root@vpn ~]# chown -R ftp:ftp /opt/yum/ftp/7/

[root@vpn ~]# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
[root@vpn ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
anon_root=/opt/yum/ftp
anon_umask=022

[root@vpn ~]# systemctl start vsftpd
[root@vpn ~]# systemctl | grep vsftpd
vsftpd.service                                                                      loaded active running   Vsftpd ftp daemon

(3)使用客户端登录FTP服务器测试

注意:这里因为是匿名模式、所以访问的时候用户名输入ftp、密码直接回车即可

[root@master ~]# ftp 10.2.3.11
Connected to 10.2.3.11 (10.2.3.11).
220 (vsFTPd 3.0.2)
Name (10.2.3.11:root): ftp
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
ftp> ls
227 Entering Passive Mode (10,2,3,11,182,48).
150 Here comes the directory listing.
drwxr-xr-x    3 14       50         221184 Dec 19 09:06 7
226 Directory send OK.

二、客户端使用

yum工具是比较常用的yum客户端、它由默认安装的 yum-3.4.3-158.el7.centos.noarch 所提供

1)yum工具使用说明

提示:这里我整理了一下yum工具的命令、比较靠前的是比较常用的

yum install     	  软件包名称		  #安装软件包
yum remove      	  软件包名称		  #移除软件包
yum update	       软件包名称	   #升级软件包
yum clean all				         #清空仓库所有缓存
yum makecache				         #将信息缓存到本地、提高搜索与安装速度
yum repolist all	        			#列出所有仓库
yum search  all 	软件包名称		    #查询指定软件包 all为所有
yum list  all	              			#列出软件仓库中所有的软件包
yum info        	软件包名称		    #查询软件包的描述信息

yum list installed	        			#列出系统中已经安装的软件包
yum list available	        			#列出可用但尚未安装的软件包
yum list updates	        			#列出可以升级版本的软件包
yum reinstall   	软件包名称		    #重新安装软件包

yum check-update				    #检查可更新的软件包
yum grouplist				       #查看系统中已经安装的软件包组
yum groupinstall	软件包组			#安装指定的软件包组
yum groupremove  	软件包组			#移除指定的软件包组
yum groupinfo	  软件包组			  #查询指定的软件包组信息

提示1:在安装软件包的时候、如果提示说RPM数据库损坏、则执行:rpm -initdb 修复数据库即可

提示2:在安装某个软件包的时候、如果要省去交互过程、则可使用 -y 选项、比如:yum -y install httpd

2)指定服务端仓库位置

注意:yum工具使用的软件仓库信息存放于 /etc/yum.repos.d 目录中、其扩展名为 .repo、.repo文件可有多个

(1)对HTTP发布的进行配置

[root@master ~]# vim /etc/yum.repos.d/server-http.repo
[base]
name=http-server
baseurl=http://10.2.3.11/7
enabled=1
gpgcheck=0

[root@master ~]# yum makecache
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
base                                                                                                                          | 2.9 kB  00:00:00
(1/3): base/primary_db                                                                                                        | 3.1 MB  00:00:00
(2/3): base/filelists_db                                                                                                      | 3.1 MB  00:00:00
(3/3): base/other_db                                                                                                          | 1.3 MB  00:00:00
元数据缓存已建立

[root@master ~]# yum repolist all
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
源标识                                                            源名称                                                                  状态
base                                                              http-server                                                             启用: 3,971
repolist: 3,971

(2)对FTP发布的进行配置

[root@master ~]# vim /etc/yum.repos.d/server-ftp.repo
[extend]
name=ftp-server
baseurl=ftp://10.2.3.11/7
enabled=1
gpgcheck=0

[root@master ~]# yum makecache
已加载插件:fastestmirror
Determining fastest mirrors
extend                                                                                                                        | 2.9 kB  00:00:00
(1/3): extend/primary_db                                                                                                      | 3.1 MB  00:00:00
(2/3): extend/filelists_db                                                                                                    | 3.1 MB  00:00:00
(3/3): extend/other_db                                                                                                        | 1.3 MB  00:00:00
元数据缓存已建立

[root@master ~]# yum repolist all
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
源标识                                                             源名称                                                                 状态
extend                                                             ftp-server                                                             启用: 3,971
repolist: 3,971

(3)使用createrepo更新RPM信息

配置完成以后可以进行使用了、如果后期再把软件包放进仓库目录、那就需要使用createrepo工具对其进行更新、否则在客户端安装的时候还是会提示没有这个软件包

如下所示、我在客户端查找是否有openvpn这个客户端软件包、可以看见没有

[root@master ~]# yum search all openvpn
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
警告:没有匹配 openvpn 的软件包
No matches found

上传软件包到服务端的目录仓库、并使用createrepo更新RPM信息

注意:这里我是使用rz命令上传到发布目录的、所以没有截图

[root@vpn ~]# ls -lh /opt/yum/http/7/ | grep openvpn
-rw-r--r-- 1 root root  522K 12月 19 18:22 openvpn-2.4.7-1.el7.x86_64.rpm
[root@vpn ~]#
[root@vpn ~]# createrepo /opt/yum/http/7/
Spawning worker 0 with 3974 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete

这个时候再来客户端查找openvpn软件包、可以看见已有、并且可以正常安装

注意:服务端更新完成以后、客户端如果要安装新放进来的软件包、则需要先执行 yum makecache 再次更新缓存

[root@master ~]# yum makecache
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
local                                                                                                                         | 2.9 kB  00:00:00
(1/3): local/primary_db                                                                                                       | 3.1 MB  00:00:00
(2/3): local/filelists_db                                                                                                     | 3.1 MB  00:00:00
(3/3): local/other_db                                                                                                         | 1.3 MB  00:00:00
元数据缓存已建立

[root@master ~]# yum search all openvpn
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
=================================================================== 匹配:openvpn ===================================================================
openvpn.x86_64 : A full-featured SSL VPN solution

[root@master ~]# yum -y install openvpn | tail -8
Running transaction
  正在安装    : openvpn-2.4.7-1.el7.x86_64                                  1/1
  验证中      : openvpn-2.4.7-1.el7.x86_64                                  1/1 

已安装:
  openvpn.x86_64 0:2.4.7-1.el7                                                  

完毕!

【只是为了打发时间】

yum仓库配置与内网源部署记录的更多相关文章

  1. YUM仓库配置

    YUM的前身是YUP(Yellow dog Updater,Yellow dog Linux的软件更新器),最初由TSS公司(Terra Soft Solutions,INC.)使用Python语言开 ...

  2. centos7内网源站建设

    centos7内网源站建设 1.部署环境: 系统:Centos7 x86_64 应用服务:nginx.createrepo.reposync 镜像源:https://mirrors.aliyun.co ...

  3. 【转】CentOS5.6下配置rsync内网同步数据到外网

    [转]CentOS5.6下配置rsync内网同步数据到外网 本文转自:http://www.linuxidc.com/Linux/2012-06/64070.htm 一.需求 卫士那边有一个需求,就是 ...

  4. Linux yum仓库配置

    yum仓库配置 10.1 概述 YUM(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器.基于RPM包 ...

  5. CentOS7之yum仓库配置

    操作系统版本:CentOS Linux release 7.2.1511 (Core)  Yum软件版本:yum-3.4.3-132.el7.centos.0.1.noarch  Yum主配置文件:/ ...

  6. Ubuntu16.04双网卡配置,内网外网同时访问

    Ubuntu16.04双网卡配置,内网外网同时访问 配置:vim/etc/network/interface auto lo iface lo inet loopback auto eno1 ifac ...

  7. Hyper-V 配置虚拟机内网及外网环境

    一.为Hyper-V虚拟机准备内外网环境 1.内网环境——虚拟机与虚拟机及主机可以互通

  8. k8s内网安装部署(二)

    续上篇 https://www.cnblogs.com/wangql/p/13397034.html 一.kubeadm安装 1.kube-proxy开启ipvs的前置条件 modprobe br_n ...

  9. kubernetes 内网节点部署笔记(一)

    在Centos7上部署kubernetes时,碰到很多坑,特别在摸拟在内网部署时,有来自GFW的障碍,有来自Firewalld的阻塞,反正是各种不服,终于慢慢理顺了思路,自己记录一下,防止遗忘. 环境 ...

随机推荐

  1. Netty快速入门(03)Java NIO 介绍-Buffer

    NIO 介绍 NIO,可以说是New IO,也可以说是non-blocking IO,具体怎么解释都可以. NIO 1是在JSR51里面定义的,在JDK1.4中引入,因为BolckingIO不支持高并 ...

  2. TensorFlow——dropout和正则化的相关方法

    1.dropout dropout是一种常用的手段,用来防止过拟合的,dropout的意思是在训练过程中每次都随机选择一部分节点不要去学习,减少神经元的数量来降低模型的复杂度,同时增加模型的泛化能力. ...

  3. docker启动报错 (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport

    今天修改完docker宿主机的防火墙文件 vim /etc/sysconfig/iptables 停止容器再启动时 报如下错误 (iptables failed: iptables --wait -t ...

  4. 区间dp - 括号匹配并输出方案

    Let us define a regular brackets sequence in the following way: 1. Empty sequence is a regular seque ...

  5. play framework 相关

    1.下载 官网下载解压,安装有jkd即可使用 2.helloworld $ activator new my-first-app play-java https://www.playframework ...

  6. 为什么 K8s 在阿里能成功?| 问底中国 IT 技术演进

    作者: 曾凡松 阿里云云原生应用平台高级技术专家 张振 阿里云云原生应用平台高级技术专家 导读:本文描述了阿里巴巴在容器管理领域的技术演进历程,解读了为什么 K8s 最终能够大获成功的原因,以及到今年 ...

  7. python GUI测试自动化

    #! /usr/bin/env python#coding=GB18030'''GUI测试自动化 语言:python模块:pywinauto环境:windows7中文.python-2.6_32bit ...

  8. CAP原理和BASE理论

    CAP原理 概述 CAP理论的主要场景是在分布式环境下,在单机环境下,基本可不考虑CAP问题. CAP理论就是说在分布式存储系统中,最多只能实现上面的两点.而由于当前的网络硬件肯定会出现延迟丢包等问题 ...

  9. Xmind8 Pro 破解教程(序列号|破解文件)

    最近需要打开文件后缀名为.xmind的文件,所以下载了Xmind8 .打开以后想要导出,奈何普通版本只能导出.txt文本文档,所以只好动手pj.话不多说看下边.一.下载XMindCrack.jar文件 ...

  10. Linux防火墙之iptables入门

    一.防火墙的概念 什么是防火墙?防火墙是一台或一组设备,用以在网络间实施访问控制策略:事实上一个防火墙能够包含OSI模型中的很多层,并且可能会涉及进行数据包过滤的设备,它可以实施数据包检查和过滤,在更 ...