Не удается выполнить команду yum

Я не могу запустить yum команда на моей машине Linux.


Я получаю следующие ошибки:

dispsim:~$ yum
Failed to set locale, defaulting to C
Loading "rhnplugin" plugin
Loading "security" plugin
error: cannot open Packages index using db3 - Invalid argument (22)
error: cannot open Packages database in /var/lib/rpm
Traceback (most recent call last):
  File "/usr/bin/yum", line 29, in ?
    yummain.main(sys.argv[1:])
  File "/usr/share/yum-cli/yummain.py", line 85, in main
    base.getOptionsConfig(args)
  File "/usr/share/yum-cli/cli.py", line 163, in getOptionsConfig
    disabled_plugins=self.optparser._splitArg(opts.disableplugins))
  File "/usr/lib/python2.4/site-packages/yum/__init__.py", line 164, in _getConf
ig
    self._conf = config.readMainConfig(startupconf)
  File "/usr/lib/python2.4/site-packages/yum/config.py", line 685, in readMainCo
nfig
    yumvars['releasever'] = _getsysver(startupconf.installroot, startupconf.dist
roverpkg)
  File "/usr/lib/python2.4/site-packages/yum/config.py", line 752, in _getsysver
    idx = ts.dbMatch('provides', distroverpkg)
TypeError: rpmdb open failed

Redhat-release Red Hat Enterprise Linux Server версии 5.2 (Tikanga)

dispsim-1:~$ uname -a
Linux dispsim 2.6.18-92.el5 #1 SMP Tue Apr 29 13:16:12 EDT 2008 i686 i686 i386 GNU/Linux

Я также попробовал следующие шаги:

1. su
2. rm /var/lib/rpm/__db.00*
3. rpm --rebuilddb

но это не решает проблему. Есть предложения по этому поводу?

30
задан fixer1234
24.01.2023 6:54 Количество просмотров материала 2763
Распечатать страницу

2 ответа

попробуйте как su:

tar cvzf rpmdb-backup.tar.gz /var/lib/rpm
rm -f /var/lib/rpm/__db*
rpm --rebuilddb
rpm -qa  | sort

если это не удается, выполнить первую lsof | grep /var/lib/rpm и если он находит,kill -9 их всех.

вы также можете попробовать следующую последовательность:

rm -f /var/lib/rpm/__db*
rpm --initdb
rpm --rebuilddb

если ничего не работает, скопируйте базу данных RPM из резервной копии (или почти идентичный компьютер).

проблему с locale смотрите в статье настройки локали в CentOS 7, что советует добавлять к /etc/profile.d/locale.sh команды, такие как:

export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
2
отвечен harrymc 2023-01-25 14:42

Кажется, вы обновили от 2010 оборотов строит. Ранее SQLite использовался для хранения информации о пакетах, теперь это BDB. Возможно, потребуется перенести базу данных.

для этого можно выполнить следующие команды:

rpm --define '_dbapi 4' --rebuilddb
mv /var/lib/rpm /var/lib/rpm.bak
mv /var/lib/rpm.rebuild /var/lib/rpm

затем вы можете протестировать новую базу данных с:

rpm -qa

затем он должен работать без проблем.

1
отвечен nKn 2023-01-25 16:59

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх