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)
Благодаря тому, что Энтони Джоггеган указал мне правильное направление, я смог найти рабочее решение
rpm -e --justdb --nodeps libstdc++
, которое удалит пакетик из db, не трогая файлы, затем сработает простая yum install
.
Из интереса сначала я бы попытался удалить пакет, используя команду rpm
:
rpm -e libstdc++
Однако, я подозреваю, что внутренняя база данных rpm
повреждена, и вышеизложенное
команда не будет работать, поэтому я бы попробовал перестроить ее базу данных, используя:
rpm --rebuilddb
У меня была похожая ситуация на моем хосте.
# 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 снова стала согласованной.
Это может произойти в x86_64 и мультибиблиотечном пакете. yum remove libstdc ++
пытается удалить 64-битную версию, но она не установлена. Поэтому в такой ситуации вам следует обратиться к пакету с помощью arch. То есть:
yum remove libstdc++-4.1.2-55.el5.i386