Пакет установлен и не установленный одновременно

left=$(tput cub1) right=$(tput cuf1)
printf %5s1; printf '%s\n' "$left${left}2${right}3"

Подробнее

От Bash запрашивают ПРАКТИЧЕСКОЕ РУКОВОДСТВО:

tput cub1
move left one space

tput cuf1
non-destructive space (move right one space)
3
16.11.2014, 15:17
4 ответа

Благодаря тому, что Энтони Джоггеган указал мне правильное направление, я смог найти рабочее решение

rpm -e --justdb --nodeps libstdc++

, которое удалит пакетик из db, не трогая файлы, затем сработает простая yum install.

4
27.01.2020, 21:16

Из интереса сначала я бы попытался удалить пакет, используя команду rpm:

rpm -e libstdc++

Однако, я подозреваю, что внутренняя база данных rpm повреждена, и вышеизложенное команда не будет работать, поэтому я бы попробовал перестроить ее базу данных, используя:

rpm --rebuilddb
2
27.01.2020, 21:16

У меня была похожая ситуация на моем хосте.

# yum --showduplicates list coreutils-libs

вернули две версии одного и того же пакета, по-видимому, установленные одновременно.

Installed Packages
coreutils-libs.x86_64                  8.4-37.el6_7.3                 @updates
coreutils-libs.x86_64                  8.4-43.el6                     installed
Available Packages
coreutils-libs.x86_64                  8.4-43.el6                     base

Когда я попробовал

# yum remove coreutils-libs

, это не удалось, потому что пришлось бы удалить другие зависимости, включая сам yum .

Однако после нескольких проб и ошибок я смог это исправить. Ключ состоит в том, чтобы использовать полное имя пакета, то есть включая суффикс версии и выпуска.

Суть в том, что удаление одного из пакетов потребует физического удаления, но удаление другого из двух просто удалит запись базы данных rpm и, таким образом, приведет базу данных в согласованное состояние.

В моем случае я мог видеть, что у меня также был установлен пакет coreutils-8.4-37.el6_7.3 , поэтому выпуск -37.el6_7.3, вероятно, был правильным (т.е. для сохранения) .

Когда я сказал yum удалить второй

# yum remove coreutils-libs-8.4-43.el6

, все прошло без ошибок, и база данных RPM снова стала согласованной.

-1
27.01.2020, 21:16

Это может произойти в x86_64 и мультибиблиотечном пакете. yum remove libstdc ++ пытается удалить 64-битную версию, но она не установлена. Поэтому в такой ситуации вам следует обратиться к пакету с помощью arch. То есть:

yum remove libstdc++-4.1.2-55.el5.i386
0
27.01.2020, 21:16

Теги

Похожие вопросы