我不确定我的系统上的 rpm 发生了什么。这是托管在 Amazon EC2 上的 CentOS 6.3 VM,不知道这有什么区别。
当我运行任何 rpm 命令时,它都会返回到命令提示符,什么也不做。唯一返回的是:
rpm --help
其他任何事情都不起作用。没有错误消息,没有日志消息,什么都没有……我不知道如何继续。
通过按照建议使用 strace,我认为 rpm 在读取 /usr/lib/rpm/rpmrc 时失败。我已将此 rpmrc 与正常运行的系统进行了比较,没有发现任何差异。我不知道如何继续...
以下是 strace 的最后几行:
stat("/home/tscdev/.rpmrc", 0x7fffffb4ffc0) = -1 ENOENT (No such file or directory)
access("/usr/lib/rpm/rpmrc", R_OK) = 0
open("/usr/lib/rpm/rpmrc", O_RDONLY) = 3
fcntl(3, F_SETFD, FD_CLOEXEC) = 0
fstat(3, {st_mode=S_IFREG|0644, st_size=13698, ...}) = 0
rt_sigprocmask(SIG_BLOCK, ~[RTMIN RT_1], [], 8) = 0
exit_group(1) = ?
以下是数据库目录(/var/lib/rpm)的目录列表:
total 48532
drwxr-xr-x 2 root root 4096 Apr 19 12:46 .
drwxr-xr-x 22 root root 4096 Feb 14 14:44 ..
-rw-r--r-- 1 root root 2826240 Feb 14 14:44 Basenames
-rw-r--r-- 1 root root 12288 Feb 14 14:44 Conflictname
-rw-r--r-- 1 root root 1478656 Feb 14 14:44 Dirnames
-rw-r--r-- 1 root root 5238784 Feb 14 14:44 Filedigests
-rw-r--r-- 1 root root 16384 Feb 14 14:44 Group
-rw-r--r-- 1 root root 12288 Feb 14 14:44 Installtid
-rw-r--r-- 1 root root 24576 Feb 14 14:44 Name
-rw-r--r-- 1 root root 12288 Feb 14 14:44 Obsoletename
-rw-r--r-- 1 root root 37629952 Feb 14 14:44 Packages
-rw-r--r-- 1 root root 1335296 Feb 14 14:44 Providename
-rw-r--r-- 1 root root 655360 Feb 14 14:44 Provideversion
-rw-r--r-- 1 root root 12288 Aug 20 2012 Pubkeys
-rw-r--r-- 1 root root 204800 Feb 14 14:44 Requirename
-rw-r--r-- 1 root root 139264 Feb 14 14:44 Requireversion
-rw-r--r-- 1 root root 45056 Feb 14 14:44 Sha1header
-rw-r--r-- 1 root root 40960 Feb 14 14:44 Sigmd5
-rw-r--r-- 1 root root 12288 Oct 29 17:12 Triggername
答案1
在我的系统上,rpm --help
输出来自处理中的文件/usr/lib/rpm/rpmpopt*
,这些文件本身是 rpm 包的一部分。要在您的服务器上检查这一点,我将运行:
$ rpm --verify rpm
$ ls -l /usr/lib/rpm/rpmpopt*