创建yum源服务,主要用到了两个软件createrepo
和httpd
。前者是创建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>
参考: