linux基础命令_yum

蛋蛋 2022年09月23日 33 0

yum

yum源

国内的163和阿里云yum源都失效了,导致Centos 6很多软件无法更新。可以用一下yum源。

curl -o /etc/yum.repos.d/CentOS-Base.repo http://file.kangle.odata.cc/repo/Centos-6.repo
curl -o /etc/yum.repos.d/epel.repo http://file.kangle.odata.cc/repo/epel-6.repo
yum makecache

有一个很好用的命令。比如要下载libgcc的rpm包,可以直接执行:

yumdownloader libgcc

32位和64位全都下载下来了。

libgcc有一个库文件名为libgcc_s.so.1

有时候可以从前面的名字知道是libgcc,有时候是不对的。

怎么知道报名呢?执行命令:

#yum whatprovides libgcc_s.so.1

yum导出依赖包并离线安装

1、公网环境导出ntp所有依赖包

# 安装yum-utils
yum -y install yum-utils

# 下载 ntp 全量依赖包
repotrack ntp

2、内网环境导入依赖包

rpm -Uvh --force --nodeps *.rpm

常用命令

  • 列出已安装的安装包
yum list installed
  • 查询可安装包
yum list lrzsz
  • 显示安装和未安装的包
# yum list | grep lrzsz
lrzsz.x86_64                                            0.12.20-46.oe2203                            @OS       
lrzsz.src                                               0.12.20-46.oe2203                            source    
lrzsz-debuginfo.x86_64                                  0.12.20-46.oe2203                            debuginfo 
lrzsz-debugsource.x86_64                                0.12.20-46.oe2203                            debuginfo

带@是已安装的
base是linux自带的软件包

  • 查询那些依赖包
rpm -qR postfix
yum deplist postfix
  • 被哪些包依赖
    通过--test进行测试删除,查看是否有依赖关系,如果有会被阻止删除,没有也不会被删除
rpm -e --test rpcbind
  • 获取要安装的软件包
yumdownloader --destdir=/root/agent_rpm telnet
  • 安装低版本软件
yum downgrade openssh openssh-clients openssh-server

注:该安装不会中断ssh服务,不过服务断开后无法连上,需要进一步校验。
注:关于sshd在/etc/hosts.deny访问限制不生效问题:

  • 使用yum安装rpm包
yum install ./nginx-1.0.0.el7.x86_64.rpm

报错

Error: Package: glibc-2.5-123.el5_11.1.x86_64 (wsbase)
           Requires: glibc-common = 2.5-123.el5_11.1
           Installed: glibc-common-2.12-1.166.el6_7.7.x86_64 (@anaconda-CentOS-201311291202.x86_64/6.5)
               glibc-common = 2.12-1.166.el6_7.7
           Available: glibc-common-2.5-118.el5_10.3.x86_64 (wsbase)
               glibc-common = 2.5-118.el5_10.3
           Available: glibc-common-2.5-123.el5_11.1.x86_64 (wsbase)
               glibc-common = 2.5-123.el5_11.1
 You could try using --skip-broken to work around the problem
** Found 4008 pre-existing rpmdb problem(s), 'yum check' output follows:
CNCLog-cacheLog-2.7.0-1.x86_64 has missing requires of libc.so.6()(64bit)
CNCLog-cacheLog-2.7.0-1.x86_64 has missing requires of libc.so.6(GLIBC_2.2.5)(64bit)

原因

这个主要是因为在系统upgrade的时候,残存了上一个版本的软件包,比如升级到了fc19,但是还有类似***.fc17的软件包。

解决方法

yum clean all
yum distro-sync					#使软件的版本与源里同步
yum reinstall					#对于出问题的包,可以使用这个重新安装适合当前操作系统版本的软件。
package-cleanup --problems		#可以列出当前RM数据库中有依赖问题的包
package-cleanup --dupes			#--扫描有多个副本的包
package-cleanup --orphans		#列出在当前配置的repos中不可用的包
package-cleanup --cleandupes	#可以清除旧的副本,这个对于诸如***is a duplicate with ***比较有用。
rpm --rebuilddb
yum update

如果上面的方法仍然无法解决,就可以直接remove掉问题包了,然后在重新安装一下,或许最新发行版已经不提供对该包的支持和更新了。

参考:
https://blog.csdn.net/java_lifeng/article/details/125046152

Last Updated: 2025/10/29 18:13:07
[Android Studio]Using flatDir should be avoided because it doesn't support any meta-data formats [Nginx]限流