創建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>
參考: