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
0