安装 RPM 时如何解决文件路径作为失败依赖项的问题?

安装 RPM 时如何解决文件路径作为失败依赖项的问题?

我有一台 RHEL 6 服务器,无法访问互联网,缺少 cron 安装。

我正在尝试像这样安装 crontab,但出现此错误:

[root@netsrvr01 cron.d]# rpm -ivh /Downloads/crontabs-1.10-33.el6.noarch.rpm
warning: /Downloads/crontabs-1.10-33.el6.noarch.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
error: Failed dependencies:
        /etc/cron.d is needed by crontabs-1.10-33.el6.noarch
[root@netsrvr01 cron.d]# Error: 'NoneType' object has no attribute 'sendline'

这是什么意思/etc/cron.d is needed?我确实有这些目录,并且我以 root 身份登录。不幸的是,我没有可以使用 yum 下载器的类似机器。

转速内容:

[root@netsrvr01 Downloads]# rpm -qpl /Downloads/crontabs-1.10-33.el6.noarch.rpm
warning: /Downloads/crontabs-1.10-33.el6.noarch.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
/etc/cron.daily
/etc/cron.hourly
/etc/cron.monthly
/etc/cron.weekly
/etc/crontab
/usr/bin/run-parts
/usr/share/man/man4/crontabs.4.gz

答案1

想法#1 - 目录已经存在

首先尝试运行该命令,rpm -Uvh --test /Downloads/crontabs-1.10-33.el6.noarch.rpm看看它是否报告任何异常情况。如果没有,则升级此软件包而不是安装。

我相信它在抱怨,因为这个目录已经存在,但不清楚是谁的。在我的 CentOS 6 机器上,该目录显示为该包所拥有cronie

$ rpm -qf /etc/cron.d
cronie-1.4.4-7.el6.x86_64

当我查看crontabs包装中的内容时,我看到以下内容:

$ repoquery -l crontabs
/etc/cron.daily
/etc/cron.hourly
/etc/cron.monthly
/etc/cron.weekly
/etc/crontab
/usr/bin/run-parts
/usr/share/man/man4/crontabs.4.gz

请注意,没有/etc/cron.d.但是,如果您运行以下命令,您会发现它crontabs需要以下资源:

$ rpm -qp --requires crontabs-1.10-33.el6.noarch.rpm 
/bin/bash  
/etc/cron.d  
config(crontabs) = 1.10-33.el6
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsXz) <= 5.2-1

想法 #2 - 验证cronie

这就是需求的来源。我将运行以下命令来确认该软件包cronie是否已正确安装:

$ rpm -V cronie --verbose
.........    /etc/cron.d
.........    /etc/cron.d/0hourly
.........  c /etc/cron.deny
.........  c /etc/pam.d/crond
.........    /etc/rc.d/init.d/crond
.........  c /etc/sysconfig/crond
.........    /usr/bin/crontab
.........    /usr/sbin/crond
.........    /usr/share/doc/cronie-1.4.4
.........  d /usr/share/doc/cronie-1.4.4/AUTHORS
.........  d /usr/share/doc/cronie-1.4.4/COPYING
.........  d /usr/share/doc/cronie-1.4.4/ChangeLog
.........  d /usr/share/doc/cronie-1.4.4/INSTALL
.........  d /usr/share/doc/cronie-1.4.4/README
.........  d /usr/share/man/man1/crontab.1.gz
.........  d /usr/share/man/man5/crontab.5.gz
.........  d /usr/share/man/man8/cron.8.gz
.........  d /usr/share/man/man8/crond.8.gz
.........    /var/spool/cron

答案2

如果您有安装光盘,并且该光盘提供该功能,您可能需要尝试进行修复。或者,您可以尝试从安装光盘安装所有 cron 软件包。

相关内容