怎样使用yum

2015年1月19日 | 分类: 【技术】

【dnf】

参考:https://man.linuxde.net/dnf
参考:http://www.tecmint.com/dnf-next-generation-package-management-utility-for-linux/

DNF是新一代的rpm软件包管理器。他首先出现在 Fedora 18 这个发行版中。而最近,它取代了yum,正式成为 Fedora 22 的包管理器。
DNF包管理器克服了YUM包管理器的一些瓶颈,提升了包括用户体验,内存占用,依赖分析,运行速度等多方面的内容。DNF使用 RPM, libsolv 和 hawkey 库进行包管理操作。尽管它没有预装在 CentOS 和 RHEL 7 中,但你可以在使用 YUM 的同时使用 DNF 。
DNF 的最新稳定发行版版本号是 1.0,发行日期是2015年5月11日。 这一版本的额 DNF 包管理器(包括在他之前的所有版本) 都大部分采用 Python 编写,发行许可为GPL v2.
DNF 并未默认安装在 RHEL 或 CentOS 7系统中,但是 Fedora 22 已经默认使用 DNF:

先安装并启用 epel-release 依赖:

yum -y install epel-release

使用 epel-release 依赖中的 YUM 命令来安装 DNF 包:

yum install dnf

配置文件:/etc/dnf/dnf.conf

【源】

系统 centos 7.3

yum groupinstall 'Development Tools'

报错:No packages in any requested group available to install or update

解决方法:

cd /etc/yum.repos.d && sudo wget http://public-yum.oracle.com/public-yum-el5.repo
cd /etc/pki/rpm-gpg/ && sudo wget https://public-yum.oracle.com/RPM-GPG-KEY-oracle-el5

参考:https://blog.csdn.net/wongnoubo/article/details/80445155

【搜索】

yum search prce

【安装指定版本的软件包】

yum默认都是安装最新版的软件,怎样使用yum安装指定版本的软件包呢?

例如:prce

输入:

yum list prce

输出:

pcre-7.8-6.el6.i686 : Perl-compatible regular expression library
pcre-7.8-6.el6.x86_64 : Perl-compatible regular expression library
pcre-7.8-6.el6.x86_64 : Perl-compatible regular expression library

输入要安装的版本的完整文件名(以安装pcre-7.8-6.el6.i686为例):

yum  install  pcre-7.8-6.el6.i686 -y

安装完后,检查pcre的版本了,输入:

rpm -qa | grep pcre

参考:http://www.dabu.info/yum-install-specific-version-old-package

【优先】

可以通过 yum-priorities 控制优先级。

参考:https://www.centos.org/forums/viewtopic.php?t=71871

centos 8/rhel 8 DNF has native support for priorities already

参考:https://blog.csdn.net/MrDing991124/article/details/78555502
参考:http://dev.antoinesolutions.com/yum-priorities

1. 编辑 yum-priorities 的配置文件以启用:/etc/yum/pluginconf.d/priorities.conf

[main]
enabled=1 # 0禁用 1启用

2. 编辑 /etc/yum.repos.d/目录下的 *.repo 文件来设置优先级:

priority=N # N的值为1-99

数字越大,优先级越低。

【更新】

先清除,再重建:

yum clean metadata && yum makecache

或者:

dnf update --refresh

【排错】

报错:Another app is currently holding the yum lock

当CentOS上使用 yum update 命令意外退出,再次登录执行 yum update 命令时,报错:

Another app is currently holding the yum lock; waiting for it to exit...
  The other application is: yum
    Memory : 117 M RSS (990 MB VSZ)
    Started: Tue Aug  7 10:08:35 2018 - 27:20 ago
    State  : Sleeping, pid: 3495

原因:系统进程已经有一个update在运行了。在进程里查看下:

ps -ef | grep update

输出:

root      3495  3473  1 10:08 pts/0    00:00:25 /usr/bin/python2.7 /usr/bin/yum update
root      3894  3827  0 10:39 pts/1    00:00:00 grep --color=auto update
root     26447     1  0 Jul14 ?        00:13:36 /usr/local/aegis/aegis_update/AliYunDunUpdate

原来在/var/run目录下,还有yum这个进程ID,需要将这个进程id文件强制删除掉:

rm -f /var/run/yum.pid

重启yum更新服务:

/sbin/service yum-updatesd restart

报错:

Redirecting to /bin/systemctl restart yum-updatesd.service
Failed to restart yum-updatesd.service: Unit not found.

参考:https://www.centos.org/forums/viewtopic.php?t=14940

不管它,再试试yum命令,已正常。

报错:-bash: yum-config-manager: command not found

在CentOS上安装Fred的时候:

yum-config-manager --add-repo http://archive.nic.cz/yum/fred/epel/fred.repo
yum install fred-*
/usr/bin/postgresql-setup initdb

报错:

-bash: yum-config-manager: command not found

yum-config-manager在yum-utils包里,需要先安装yum-utils包:

yum -y install yum-utils