使用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. 【原创】快速失败机制&失败安全机制

    这是why技术的第29篇原创文章 之前在写<这道Java基础题真的有坑!我求求你,认真思考后再回答.>这篇文章时,我在8.1小节提到了快速失败和失败安全机制. 但是我发现当我搜索" ...

  2. MySQL快速回顾:更新和删除操作

    前提要述:参考书籍<MySQL必知必会> 6.1 更新数据 为了更新(修改)表中的数据,可使用UPDATE语句.可采用两种方式使用UPDATE: 更新表中特定的行: 更新表中所有的行. U ...

  3. 暑假提高组集训Day1 T2

    那么这一道题我在考试的时候写挂了(0分 呜呜~) 我原来的思路是广搜来骗取部分分(哈哈~) 但是我忘记了一个非常重要的问题 我广搜开的数组没有考虑负的下标 下一次考试如果再写暴力 就可以把坐标都加上一 ...

  4. 【Tool】---SVN的超级简单并具体得使用介绍

    又一次被打脸,笔者表示再也不相信自己的记性了.简单的SVN隔了一段时间后,由于项目的需要要重新简历代码库,竟然一下子又忘了.天那,这就好比战士上了战场发现没带枪,这能行吗?因此,趁着今天又简短的复习了 ...

  5. 交换一个数字的任意两个位置,指定K次的最值

    Anton has a positive integer n, however, it quite looks like a mess, so he wants to make it beautifu ...

  6. 引用dll出现的问题:发生一个或多个错误,引用无效或不支持该引用

    获取到新的项目后,然后FineUI就出现黄色的标志,肯定是不可以用的,需要重新引用下. 然后我就开始重新引用下,就出现下面的问题: 因为是购买的UI,一开始我怀疑是引用的版本不一样呢,其实都不是 只需 ...

  7. Linux环境下Mysql开启远程访问权限

    如何通过Window的数据库可视化工具远程连接装在Linux上的Mysql呢?可以按照以下步骤逐一确认! 检查监听端口是否存在 netstat -ntlp |grep mysql 检查Mysql配置配 ...

  8. Java中的equalsIgnoreCase()

    在工作中偶然机会看到了equalsIgnoreCase()这个方法,相信大家和我一样equals()是再熟悉不过的了,但是对于equalsIgnoreCase()有点眼生(大神勿喷),所以写了这篇博客 ...

  9. elasticsearch(lucene)索引数据过程

    倒排索引存储-分段存储(lucene的功能)在lucene中:lucene index包含了若干个segment在elasticsearch中:index包含了若干主从shard,shard包干了若干 ...

  10. 对Hadoop分布式文件系统HDFS的操作实践

    原文地址:https://dblab.xmu.edu.cn/blog/290-2/ Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)是Hadoop核 ...