CentOS Yum 源搭建

创建yum源服务,主要用到了两个软件createrepohttpd。前者是创建yum源索引的工具,后者是提供文件在线流浪的功能,当然,除了httpd之外,你也可以使用nginx替代。

createrepo

yum –y install createrepo 安装建yum源仓库的工具,可以用来建立yum仓库索引

man createrepo 用途:

Create repomd (xml-rpm-metadata) repository

参数说明

-u  --baseurl <url>
 指定Base URL的地址
-o --outputdir <url> 
 指定元数据的输出位置 
-x  --excludes <packages> 
指定在形成元数据时需要排除的包 
-i --pkglist <filename> 
指定一个文件,该文件内的包信息将被包含在即将生成的元数据中,格式为每个包信息独占一行,不含通配符、正则,以及范围表达式。 
-n --includepkg 
通过命令行指定要纳入本地库中的包信息,需要提供URL或本地路径。 
-q --quiet 
安静模式执行操作,不输出任何信息.
-g --groupfile <groupfile> 
指定本地软件仓库的组划分,范例如下: createrepo -g comps.xml /path/to/rpms 注意:组文件需要和rpm包放置于同一路径下。 
-v --verbose 
输出详细信息。 
-c --cachedir <path> 
指定一个目录,用作存放软件仓库中软件包的校验和信息。 当createrepo在未发生明显改变的相同仓库文件上持续多次运行时,指定cachedir会明显提高其性能。 
--update 
如果元数据已经存在,且软件仓库中只有部分软件发生了改变或增减, 则可用update参数直接对原有元数据进行升级,效率比重新分析rpm包依赖并生成新的元数据要高很多。 
-p --pretty 
以整洁的格式输出xml文件。 
-d --database 
该选项指定使用SQLite来存储生成的元数据,默认项。

创建的目录为:/data/mirrors/x86_64

执行命令:

createrepo /data/mirrors/x86_64 # 会默认在`/data/mirrors/x86_64`下创建repodata的索引目录

当然,你也可以显示的加一下参数,指定repodata的位置:

createrepo -qdo /data/mirrors/x86_64 /data/mirrors/x86_64 # -0 后面指定的是repodata索引目录位置

当软件仓库中包含很多软件包时,没有必要每次都为每个软件包重新创建元数据,浪费时间。可以执行createrepo --update /data/mirrors/x86_64更新索引。

验证

配置上新增的源,执行命令查看源软件列表:

yum list available

** 注意:及时源刷新OK,本地需要yum makecache才会显示最新列表**

参考:

httpd

http文件服务器安装:

yum install -y httpd

参数说明

ServerRoot     "/etc/httpd"  
#你的apache安装目录。其它指定的目录如果没有指定绝对路径,则目录是相对于该目录。
ServerName www.xxx.com:端口号(默认是80) 
#主站点名称(网站的主机名)。
ServerAdmin admin@126.com 
#管理员的邮件地址
DocumentRoot "/data/app" 
#主站点的网页存储位置
Directory 语句就是用来定义目录的访问限制的,这里可以看出它的标准语法,为一个目录定义访问限制。上例的这个设置是针对系统的根目录进行的

配置文件在/etc/httpd/conf/httpd.conf

<Directory "/data/mirrors/x86_64">
    Options Indexes FollowSymLinks
    IndexOptions Charset=UTF-8
    IndexOptions NameWidth=*
    AllowOverride All 
    Order Deny,Allow
    Allow from all
    Require all granted
</Directory>

支持监听多端口,配置对应不同目录

除了监听80端口之外,再新增监听8080端口,同时,对应不同的目录michael,站点配置如下:

Listen 8080
<virtualhost *:8080>
  ServerName www.example.com
  DocumentRoot /data/michael
  <Directory "/data/michael">
    Options Indexes FollowSymLinks
    IndexOptions Charset=UTF-8
    IndexOptions NameWidth=*
    AllowOverride All 
    Order Deny,Allow
    Allow from all
    Require all granted
  </Directory>
</virtualhost>

参考:

原文地址:https://www.cnblogs.com/michael-xiang/p/10466923.html