本文转自 开源中国
原文地址 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