本文轉自 開源中國
原文地址 https://my.oschina.net/u/1461927/blog/372147
YUM介紹
YUM主要用于自動升級、安裝\移除rpm軟件包,它能自動查找并解決rpm包之間的依賴關系,> 要成功的使用YUM工具更新系統和軟件,需要有一個包含各種rpm軟件包的repository(軟件 > 倉庫),提供軟件倉庫的服務器習慣上成為“源”服務器。網絡上有大量的源服務器,但是,由
于 受到網絡連接速度、帶寬的限制,導致軟件安裝耗時過長甚至失敗。特別是當有大量服務器> 大量軟件包需要升級時,更新的緩慢程序令人難以忍受。
相比較而言,本地YUM源服務器最大優點在局域網的快速網絡連接和穩定性。有了局域網中
的YUM源服務器,即便在Internet連接中斷的情況下,也不會影響其他YUM客戶端的軟件升級> 和安裝。
下面就介紹下 本地yum源的搭建。
一、啟動 httpd 服務(一般httpd服務已經安裝)
取一臺 CentOS操作系統的機器作為源服務器。啟動服務器的httpd 服務:service httpd start
可查看配置文件: /etc/httpd/conf/httpd.conf 了解httpd相關配置信息
這里我們配置的文檔根目錄為:/var/www/html/ 端口: Listen 80
vi /etc/httpd/conf/httpd.conf
確認服務啟動,瀏覽器訪問: http://localhost:80 出現如下apache頁面(如果從其他機器訪問,請先關閉防火墻:service iptables stop )
二、安裝 createrepo 工具 (若使用 linux iso 鏡像 則為非必須)
createrepo是linux下的創建倉庫的軟件包。
1、在機器聯網的情況下可直接安裝: yum install createrepo
2、可使用rpm -ivh createrepo-xxx.noarch.rpm 安裝由網上下載的rpm包,一般會有兩個依賴
3、linux常用工具rpm包,一般在鏡像文件中都存在
三、安裝 yum 源
1、使用 Linux ISO 鏡像中的RPM包安裝
(1)、將 ISO 文件 copy 到服務器上,并在文件夾: /var/www/html/ 下創建文件夾 CentOS
(2)、將 ISO文件掛載至文件夾 /var/www/html/CentOS
執行:mount -o loop /var/www/html/CentOS-6.4-x86_64-bin-DVD1.iso /var/www/html/CentOS
(取消掛載 umount /var/www/html/CentOS)
(3)、查看文件夾 /var/www/html/CentOS
可以看到 repodata 文件夾的存在,repodata作為軟件的倉庫信息文件。
ISO鏡像 yum源搭建OK
瀏覽器訪問:http://localhost:80/CentOS/
2、使用 自己準備的 RPM 包 (這里以 apache ambari為例)
(1)、在目錄 /var/www/html/ 下建立一個文件夾,把準備的 RPM包放到里面
(2)、創建倉庫信息文件,在目錄 /var/www/html/ 下執行:createrepo ambari
查看ambari目錄,可以看到 repodate 文件已經生成
ambari yum源搭建OK
四、使用yum源
(1)、編輯 repo 文件
在本機或其他機器上,進入文件夾:/etc/yum.repos.d/ 將其中的文件移除掉
新建文件:CentOS.repo (可由 CentOS-Base.repo copy)
(2)、更新 yum源
yum clean 清除yum源緩存
yum repolist 列出可用yum源
(3)、使用 (嘗試安裝postgresql)
同理可配置使用 ambari 源
可將 repo 文件放置在源服務器 /var/www/html/ 目錄下,以供其他機器方便下載使用
五、可能會出現的問題
1、問題
you don't have permission to access / on this server(Apache Server權限訪問問題)
Apache Http Server已經在linux上安裝完成,可是通過瀏覽器訪問,卻出現了“you don't have permission to access / on this server”.
解決:
(1)、在httpd.conf文件中,有這么一段
<Directory/> # 這里的目錄為自己的目錄
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
可以嘗試把Deny改成Allow,然后重啟apache服務,訪問頁面,看問題是否解決。
(2)、查看相應的目錄是否擁有權限,如果你不知道怎么加權限之類,運行如下兩個命令:
chown apache.root 目錄名 -R # 此是更改目錄所屬用戶和用戶組
chmod 755 目錄名 -R # 此是更改目錄讀寫權限
然后重啟apache服務,訪問頁面,看問題是否解決。
(3)、終極絕殺,以上2條都還通不過的話(報相同的錯誤信息),運行如下兩個命令
setenforce 0 # 暫時禁用SELinux服務
service iptables stop #暫時禁用防火墻
訪問頁面,看問題是否解決;
2、問題:
Loaded plugins: fastestmirror, refresh-packagekit, security
Determining fastest mirrors
http://10.1.33.21/ambari/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 403 Forbidden"
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: ambari-1.x. Please verify its path and try again
解決:
yum源服務器運行如下命令
setenforce 0 # 暫時禁用SELinux服務
3、問題:
yum install xxx.rpm
warning:
Package xxx.rpm is not signed
解決:
只要在在后面加上--nogpgcheck就可以了,格式如下
yum install *rpm --nogpgcheck