Я не уверен, что случилось с rpm в моей системе. Это виртуальная машина CentOS 6.3, размещенная на Amazon EC2, если это имеет значение.
Когда я запускаю любую команду 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
В моей системе rpm --help
вывод происходит из обработки файлов в /usr/lib/rpm/rpmpopt*
, которые сами входят в состав пакета rpm. Чтобы проверить это на вашем сервере, я бы запустил:
$ rpm --verify rpm
$ ls -l /usr/lib/rpm/rpmpopt*