搭建基于http的本地yum源服务器

概述


yum相较于rpm,能够更好地解决安装软件时的依赖包问题,使用yum安装更简单更方便。搭建本地YUM源服务器,可以避免升级安装软件时占用公网带宽;有了本地YUM源服务器,可以解决无法连接Internet的其他YUM客户端的软件升级和安装。

本文主要介绍了以下内容:

  • 通过编译Apache源码包安装httpd服务;

  • 搭建基于HTTP的yum源服务器;

  • 将Internet的yum源rpm包下载到自己的yum服务器。


搭建环境


系统:CentOS Linux release 7.2.1511 (Core)(minimal安装)

服务器:10.10.10.100/24

客户端:10.10.10.70/24

httpd版本:httpd-2.4.23

服务器安装httpd


1. 准备环境及软件源码包

首先我们要安装编译环境所需的gcc 和gcc-c++编译器:

[root@IP100-CentOS7 ~]# >>yum install -y wget gcc gcc-c++

我们可以登录Apache的官方页面(http://httpd.apache.org/download.cgi#apache24)进行软件下载,我们这里用wget进行下载,并用tar命令进行解压:

[root@IP100-CentOS7 ~]# >>wget http://mirror.bit.edu.cn/apache//httpd/httpd-2.4.23.tar.gz
[root@IP100-CentOS7 ~]# >>wget http://mirrors.cnnic.cn/apache//apr/apr-1.5.2.tar.gz
[root@IP100-CentOS7 ~]# >>wget http://mirrors.cnnic.cn/apache//apr/apr-util-1.5.4.tar.gz
[root@IP100-CentOS7 ~]# >>wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.38.tar.gz
[root@IP100-CentOS7 ~]# >>tar xf httpd-2.4.23.tar.gz
[root@IP100-CentOS7 ~]# >>tar xf apr-1.5.2
[root@IP100-CentOS7 ~]# >>tar xf apr-util-1.5.4.tar.gz
[root@IP100-CentOS7 ~]# >>tar xf pcre-8.38.tar.gz

httpd-2.4.23.tar.gz是主程序包,其他三个是安装需要的依赖包,pcre-8.38.tar.gz需要 gcc-c++编译支持。

2. 开始编译安装

安装顺序是 apr-1.5.2 ==> apr-util-1.5.4.tar.gz ==> pcre-8.38.tar.gz ==> httpd-2.4.23.tar.gz

### 编译安装 apr-1.5.2
[root@IP100-CentOS7 ~]# >>cd apr-1.5.2
[root@IP100-CentOS7 ~]# >>./configure --prefix=/usr/local/apr
[root@IP100-CentOS7 ~]# >>make && make install 
### 编译安装 apr-util-1.5.4
[root@IP100-CentOS7 ~]# >>cd apr-util-1.5.4
[root@IP100-CentOS7 ~]# >>./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@IP100-CentOS7 ~]# >>make && make install 
### 编译安装 pcre-8.38
[root@IP100-CentOS7 ~]# >>cd pcre-8.38
[root@IP100-CentOS7 ~]# >>./configure --prefix=/usr/local/pcre
[root@IP100-CentOS7 ~]# >>make && make install 
### 编译安装 httpd-2.4.23 (注意:需要通过--with-apr=指定三个依赖包的安装路径)
[root@IP100-CentOS7 ~]# >>cd httpd-2.4.23
[root@IP100-CentOS7 ~]# >>./configure --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre
[root@IP100-CentOS7 ~]# >>make && make install

3. 配置apache2

 1.二进制程序目录导入至PATH环境变量中;

由于我们是默认安装,httpd默认安装于/usr/local/apache2。这里,我们需要将目录添加到系统环境$PATH中

[root@IP100-CentOS7 bin]# >>echo 'export PATH=/usr/local/apache2/bin:$PATH' > /etc/profile.d/httpd.sh

 2.添加开机启动

[root@IP100-CentOS7 bin]# >>echo '/usr/local/apache2/bin/apachectl start' >> /etc/rc.d/rc.local
[root@IP100-CentOS7 ~]# >>chmod +x  /etc/rc.d/rc.local

 3.导入头文件

我们基于链接的方式实现:

[root@IP100-CentOS7 apache2]# >>ln -s /usr/local/apache2/include/ /usr/include/httpd

 4.导入帮助手册

编辑/etc/man_db.conf文件(CentOS6为/etc/man.config),添加如下条目:

MANDATORY_MANPATH            /usr/local/apache2/man

搭建基于http的本地yum源服务器
 5.修改网页目录地址

[root@IP100-CentOS7 ~]# >>vim /usr/local/apache2/conf/httpd.conf

DocumentRoot "/var/www/html"

<Directory "/var/www/html">

搭建基于http的本地yum源服务器

6.测试网络

在浏览器中输入服务器地址:

搭建基于http的本地yum源服务器

到此,我们已经完成了编译安装 httpd服务器了。接下来我们进行yum源服务器的搭建。

YUM源服务器搭建


1.创建文件夹

我们先创建存放 .RPM的目录

[root@IP100-CentOS7 conf]# >>mkdir -p /var/www/html/centos/7/os/x86_64/Packages/

2.我们可以将光盘镜像Packages目录里的 .rpm包复制到 /var/www/html/centos/7/os/x86_64/Packages/目录,这里我仅做测试,复制了几个包进去:

搭建基于http的本地yum源服务器

在浏览器上输入网址:

搭建基于http的本地yum源服务器

3.安装createrepo,此程序主要用于生成创建yum仓库,创建索引信息。

[root@IP100-CentOS7 x86_64]# >>yum install createrepo
[root@IP100-CentOS7 ~]# >>createrepo /var/www/html/centos/7/os/x86_64/

搭建基于http的本地yum源服务器

到这里我们已经完成了yum源服务器的配置。

我们到客户端进行测试:

[root@IP70-CentOS7 ~]# >>vim /etc/yum.repos.d/Local.repo

搭建基于http的本地yum源服务器

[root@IP70-CentOS7 ~]# >>yum clean all
[root@IP70-CentOS7 ~]# >>yum makecache
[root@IP70-CentOS7 ~]# >>yum repolist

搭建基于http的本地yum源服务器

搭建基于http的本地yum源服务器

可以看到,这正是yum源服务器测试的rpm软件包,大功告成~!

扩展

在这里我们可以使用一个小工具:yumdownloader

### 查询yumdownloader隶属于哪个安装包
[root@IP100-CentOS7 ~]# >>yum provides yumdownloader
### 安装 yum-utils
[root@IP100-CentOS7 ~]# >>yum install -y yum-utils

搭建基于http的本地yum源服务器搭建基于http的本地yum源服务器

yumdownloader的用法很简单:

      • yumdownloader [options] package1 [package2…]

直接跟.rpm包的名字,就可以下载包到当前目录,也可以带选项下载到指定目录,具体查看man  yumdownloader

这里我们测试下载kernel*的包:

搭建基于http的本地yum源服务器

原创文章,作者:昭其,如若转载,请注明出处:http://www.178linux.com/39898

(0)
昭其昭其
上一篇 2016-08-24 21:21
下一篇 2016-08-24 21:21

相关推荐

  • linux基础学习之进程管理和任务计划

    内容:   进程相关概念(用户空间、内核空间,进程、线程)   进程及系统相关工具(ps、top、pgrep、pidof、kill)   调整nice值(nice、renice)   作业管理(jobs、fg、bg、kill,&)   计划任务(at、crontab) 一、进程相关概念 内核的功用:进…

    Linux干货 2016-09-07
  • 文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。

    1)文件的元数据信息及查看 文件的数据分两种:一种元数据,既属性数据;一种就是数据本身;可使用stat命令查看文件的元数据: 例如: ]# stat /etc/passwd 文件:"/etc/passwd" 大小:2483 块:8 IO 块:4096 普通文件 设备:fd00h/64768d Inode:136755684 硬链接:1 权…

    Linux干货 2016-11-06
  • linux学习总结-linux基础(之二)

    六、在Linux基础目录命名法则及功用 根据FHS(http://www.pathname.com/fhs/)的官方文件指出, 他们的主要目的是希望让使用者可以了解到已安装软件通常放置于那个目录下, 所以他们希望独立的软件开发商、操作系统制作者、以及想要维护系统的用户,都能够遵循FHS的标准。 也就是说,FHS的重点在于规范每个…

    Linux干货 2016-09-23
  • 用户权限过滤练习(w4)

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其他用户均没有任何访问权限。 [root@keyou ~]# cp -r /etc/skel/ /home/tuser1 | chmod -R g-rwx,o-rw…

    系统运维 2016-11-20
  • 18页PPT带你深度解读运维自动化

    一、概述    在前面的文章中,提到【运维的本质—可视化】,在其中着重强调是自动化的可视化和数据化的可视化。在这个文章中,全面解码看看自动化的极致状态为什么是可视化?在前面的另外一篇文章【运维平台全体系介绍】中,也讲到运维平台体系的构成,提出“**及服务”的理念,其中有几部分和自动化密切相关,比如说资源及服务、配置及服务、架构…

    2015-04-03
  • 网络班21期第四周作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。          mkdir /home/tuser1        &n…

    Linux干货 2016-08-22