vlambda博客
学习文章列表

Centos6 软件包管理rpm,yum以及外部源不可用案例处理

软件包管理

一、安装软件包-rpm用法:



#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release #rpm -ivh 包名
[root@server200 ~]# rpm -ivh /mnt/cdrom/Packages/zsh-4.3.10-5.el6.x86_64.rpmwarning: /mnt/cdrom/Packages/zsh-4.3.10-5.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEYPreparing... ########################################### [100%] package zsh-4.3.10-5.el6.x86_64 is already installed常用选项: -i:安装 --install      -v:      显示安装过程    --verbose      -h:      显示进度条,人类可读 +50  ##### -U: 升级或者安装 -e:卸载      –force:  强制安装 –-test:不执行真正的安装过程,而仅仅报告依赖关系及冲突信息 –-nodeps:忽略依赖关系,副作用是能安装成功,不一定能运行成功;不建议这样安装 –-replacepkgs:覆盖安装–重新安装并覆盖原文件,但是修改的配置文件不会还原,因为系统默认是你有意识的修改,删除可以恢复 rpm的缺点:需要手动解决包之间的依赖关系。

常用的查询选项:

 查询ifconfig命令是由哪个软件包安装的 [root@server200 Packages]# rpm -qf `which ifconfig` net-tools-1.60-110.el6_2.x86_64 查询软件包是否有文件被人更改过 [root@server200 Packages]# rpm -V net-tools //没有查询结果就说明包中的文件未被修改过 查询vsftpd软件包的信息 [root@server200 Packages]# rpm -q vsftpd package vsftpd is not installed [root@server200 Packages]# rpm -qpi vsftpd-2.2.2-11.el6.x86_64.rpm  查询软件包在系统中创建了哪些文件 [root@server200 Packages]# rpm -ql net-tools 查询系统中已经安装的软件包中有哪些含有open  [root@server200 Packages]# rpm -qa | grep --color open //--color:将关键字彩色显示


二、yum  —— 是红帽自动安装软件的工具,默认是交互式的功能:能够自动帮助我们解决软件安装过程中的依赖关系,无需我们操作。

(一)配置yum的步骤

1、挂载正确的光盘

mount    —— 挂载

umount —— 卸载

2、yum客户端配置文件

首先:文件必须放在/etc/yum.repos.d下面其次:配置文件的 后缀名必须是.repo再次:多个repo文件中任何一个都不可以有错误其中一段配置如下:[base] --来自于那个容器,随意写name=base --随意起名 baseurl=file:///mnt/cdrom --安装源位置enabled=1 --这个yum要不要生效 1:生效 0:启用gpgcheck=0 --要不要检测安全的密钥 1:检测 0:不检测

其中网络安装源常用就是以下几种baseurl=http:// baseurl=ftp://baseurl=nfs baseurl=file://



(二)yum 常用选项:

yum clean all --清空yum缓存yum list --列出所有可用的yum仓库yum install PACKAGE -y --使用空格分隔多个软件包yum search PACKAGE --搜索软件包(模糊查询) yum info PACKAGE --查看软件包信息 yum remove PACKAGE --卸载软件包 yum provides COMMAND --查看系统每个命令是哪个软件包提供的yum repolist   all                         --查看系统有几个yum容器以及容器有多少个包


(三)centos6 外部yum源不可用问题解决

2020年11月30日 centos6各大开源镜像站已经停止维护了 但是阿里源还是可以用的 因为他的centos-vault仓库里放了之前版本的centos的包

sed -i "s|enabled=1|enabled=0|g" /etc/yum/pluginconf.d/fastestmirror.confmv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backupcurl -o /etc/yum.repos.d/CentOS-Base.repo https://www.xmpan.com/Centos-6-Vault-Aliyun.repoyum clean allyum makecache


(四)yum安装缓存原理

1. 在开始搭建自己的YUM仓库之前,先来了解下如何获取RPM包,在默认配置下使用yum命令安装完软件后安装包是不会保留的,如果想在本地也留存一份安装包,只需要将yum配置文件/etc/yum.conf中的keepcache=0改为1即可,这样安装包都会留存在cachedir所指定的目录中,如图:



2.该目录下还会根据不同的yum源创建不同的目录,软件包通过哪个源安装的就会保存在哪个目录中,看配置文件路径,同时相关依赖包也会自动下载,需要注意的如果执行了yum clean all的话是会删除掉这些安装包的:


(四)如果内网和外网不不同,找一台外网的系统下载软件包而不进行安装,只需要加--downloadonly选项即可,示例:

yum install PACKAGE --downloadonly --downloaddir=/data/packages


1.把软件包拷贝到内网,自建YUM本地仓库首先建立一个目录用于存放安装包,然后使用createrepo来创建repository仓库,如果系统里没有该命令的话需要先进行createrepo的安装,

yum install createrepocreatrepo /data/packages #将该目录制作成软件仓库


2.这个自己制作成本地yum安装即可

[base]name=basebaseurl=file:///data/packagesenabled=1gpgcheck=0