场景
这样一种场景,以rabbitmq为例,在进行安装时,导入好了仓库源,执行yum install时,rabbitmq安装过程中还是从源去找,速度受网络影响,如果网络不好,则会非常的慢,那有没有什么办法解决呢?有! 找一台同系统的机器,配置好仓库源,修改yum.conf的配置,打开本地缓存,然后执行yum install
实现步骤
修改yum的配置
代码语言:javascript复制# cat /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=1 #修改此参数为 1 ,代表打开缓存
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release
安装mq
代码语言:javascript复制yum -y install erlang
查看本地缓存
代码语言:javascript复制cd /var/cache/yum/x86_64/7
tree | grep rpm
│ │ └── tree-1.6.0-10.el7.x86_64.rpm
│ │ └── rabbitmq-server-3.8.2-1.el7.noarch.rpm
│ │ └── epel-release-7-12.noarch.rpm
│ │ └── erlang-22.2.1-1.el7.x86_64.rpm #这个就是缓存的本地rpm包
安装测试
随意找一台机器安装此rpm包
代码语言:javascript复制yum localinstall -y erlang-22.2.1-1.el7.x86_64.rpm
yum localinstall -y rabbitmq-server-3.8.2-1.el7.noarch.rpm
systemctl start rabbitmq-server
没有任何问题
yum简单介绍
yum.conf的作用
yum.conf文件是用来存储yum配置信息的文件,虽然yum.conf文件通常都比较简洁,却是yum软件管理器的重要组成部分。
代码语言:javascript复制# cat /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever #yum下载的RPM包的缓存目录
keepcache=1 #缓存是否保存,1保存,0不保存。
debuglevel=2
logfile=/var/log/yum.log #yum日志文件位置
exactarch=1 #在更新的时候,是否允许更新不同版本的RPM包
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release
epel源介绍
EPEL的全称叫 Extra Packages for Enterprise Linux 。EPEL是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目。装上了 EPEL之后,就相当于添加了一个第三方源。 EPEL源为服务器提供了大量的rpm包(这些包可能有很多在默认源中没有),并且绝大多数rpm包比官方默认源版本要新。
添加方法:
代码语言:javascript复制rpm -vih http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-9.noarch.rpm
yum install -y epel-release
remi源
Remi源大家或许很少听说,不过Remi源GoFace强烈推荐,尤其对于不想编译最新版的linux使用者,因为Remi源中的软件几乎都是最新稳定版。 或许您会怀疑稳定不? 放心,这些都是Linux骨灰级的玩家编译好放进源里的,他们对于系统环境和软件编译参数的熟悉程度毋庸置疑。 添加方法:
代码语言:javascript复制rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
yum install -y http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
RPMForge源
RPMForge 是 CentOS 系统下的软件仓库, 拥有 4000 多种的软件包, 被 CentOS 社区认为是最安全也是最稳定的一个软件仓库。
代码语言:javascript复制rpm -ivh http://repository.it4i.cz/mirrors/repoforge/redhat/el7/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
yum localinstall --nogpgcheckhttp://repository.it4i.cz/mirrors/repoforge/redhat/el7/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
repo配置参考
代码语言:javascript复制[CentOS7-base] #源名称,必填
name=CentOS-$releasever-base #源描述,可以不填,但是会有提示
baseurl=file:///misc/cd/ #本地的光盘文件,可以有多个地址。必填
https://mirrors.aliyun.com/centos/7.3.1611/os/x86_64/
gpgcheck=1 #是否开启校验,在yum.conf中已经定义它默认值为1
enabled=1 #是否禁用此yum源,默认为
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7#如果开启yum源包校验,则需要导入RPM公钥,此处只是在系统没有导入rpm公钥时候进行安装#这里相当于rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[aliyun_epel] #这是Redhat的扩展包
name=ailiyun_yum_epel
baseurl=https://mirrors.aliyun.com/epel/$releasever/x86_64
gpgkey=https://mirrors.aliyun.com/epel/RPM-GPG-KEY-EPEL-7
gpgcheck=1