1.镜像系统上传至服务器任意目录。
2.挂载镜像。
以只读方式挂载镜像到/var/ftp/pub目录,以便网内其他服务器以FTP方式获取yum源
mount rhel-server-6.8-x86_64-dvd.iso /var/ftp/pub -o loop;
3.配置yum源
备份、重建repo
cp /etc/yum.repos.d/etc/yum.repos.d.bak
cd /etc/yum.repos.d
rm -f *
vim iso-source.repo
[iso-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=file:///var/ftp/pub
#本地yum源配置此行,注意本地文件file后三个///,有一个是转译符;网络文件ftp、http等后面是双//
#baseurl=ftp://192.1.*.*/pub/Packages/
#网内其他服务器yum源配置ftp此行
enabled=1
#1 启用此yum源;0 禁用此yum源
gpgcheck=0
#1 启用文件校验; 0 禁用文件校验。
#下载的rpm将进行GPG的校验,已确定rpm包的来源是有效和安全。一般网络yum源需要校验
gpgkey=file:///var/ftp/pub/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
刷新yum
[root@js yum.repos.d]# yum clean all
Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
Updating certificate-based repositories.
Unable to read consumer identity
Cleaning repos: InstallMedia iso-source
Cleaning up Everything
[root@js yum.repos.d]# yum makecache
Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
Updating certificate-based repositories.
Unable to read consumer identity
iso-source | 4.0 kB 00:00 ...
iso-source/filelists_db | 3.7 MB 00:00 ...
iso-source/primary_db | 3.1 MB 00:00 ...
iso-source/other_db | 1.6 MB 00:00 ...
iso-source/group_gz | 204 kB 00:00 ...
Metadata Cache Created
至此本地yum源以配置完成
yum配置文件yum.conf讲解
$ cat /etc/yum.conf
[main]
cachedir=/var/cache/yum
#yum下载的RPM包的缓存目录
keepcache=0
#缓存是否保存,1保存,0不保存。
debuglevel=2
#调试级别(0-10),默认为2。
logfile=/var/log/yum.log
#yum的日志文件所在的位置
exactarch=1
#在更新的时候,是否允许更新不同版本的RPM包,比如是否在i386上更新i686的RPM包。
obsoletes=1
#就是相当于upgrade,允许更新陈旧的RPM包。
gpgcheck=1
#是否检查GPG(GNU Private Guard),一种密钥方式签名。
plugins=1
#是否允许使用插件,默认是0不允许,但是我们一般会用yum-fastestmirror这个插件。
installonly_limit=3
#允许保留多少个内核包。
exclude=selinux*
#屏蔽不想更新的rpm包,可用通配符,多个RPM包之间使用空格分离。
# This is the default, if you make this bigger yum won't see if the metadata
# is newer on the remote and so you'll "gain" the bandwidth of not having to
# download the new metadata and "pay" for it by yum not having correct
# information.
# It is esp. important, to have correct metadata, for distributions like
# Fedora which don't keep old packages around. If you don't like this checking
# interupting your command line usage, it's much better to have something
# manually check the metadata once an hour (yum-updatesd will do this).
# metadata_expire=90m
# PUT YOUR REPOS HERE or IN separate files named file.repo
# in /etc/yum.repos.d
常见错误
1、 问题:Loaded plugins: fastestmirror
fastestmirror是yum的一个加速插件,fastestmirror 插件是为拥有多于一个镜像的软件库配置文件而设计的。它会连接到每一个镜像,计算连接所需的时间,然后将镜像按快到慢排序供 yum 应用。
解决方法:禁用插件
vi /etc/yum/pluginconf.d/fastestmirror.conf
enabled = 1//由1改为0,禁用该插件
vi /etc/yum.conf
plugins=1//改为0,不使用插件
2、 问题:Redhat8无法删除yum.repos.d下的redhat.repo文件
经过查找,发现是redhat自带的插件subscription-manager导致。这个插件的作用就是Red Hat Subscription Manager订阅管理,就是它让你一直register
找到subscription-manage的配置文件/etc/yum/pluginconf.d/subscription-manager.conf
解决方案
#vim subscription-manager.conf
[main]
enabled=0 #将它禁用掉
3、问题:使用yum或者rpm安装包时出现问题。Error: rpmdb open failed
rpmdb: Thread/process 35884/139793484506880 failed: Thread died in Berkeley DB library
error: db3 error(-30974) from dbenv->failchk: DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages index using db3 - (-30974)
error: cannot open Packages database in /var/lib/rpm
CRITICAL:yum.main:
Error: rpmdb open failed
这多半是因为rpm数据库出现损坏所致,此错误可能导致多数(甚至是所有的)rpm软件的升级、安装甚至是删除都会出现问题。
解决方案:
修复此错误,请以root身份在终端输入以下命令
[root@www~]# cd /var/lib/rpm # rpmdb所在目录
[root@www rpm]# ls | grep ‘db.‘ # 列出相关rpmdb文件
__db.001
__db.002
__db.003
__db.004
# 将原rpmdb文件都备份或者删除
[root@www rpm]# for i in $(ls | grep ‘db.‘);do mv $i $i.bak;done #备份
[root@www rpm]# rm -f __db.* # 清除原rpmdb文件
[root@www rpm]# rpm --rebuilddb # 重建rpm数据库
[root@www rpm]# yum clean all # 清除所有yum的缓存