Исправить половину установленного пакета

Я получаю сообщение об ошибке при использовании sudo apt-get upgrade:

dpkg: error processing libgfortran3:amd64 (--configure):
  package libgfortran3:amd64 is not ready for configuration
  cannot configure (current status `half-installed')
Errors were encountered while processing:
  libgfortran3:amd64
E: Sub-process /usr/bin/dpkg returned an error code (1)

Кажется, он не блокирует установку и обновление других приложений. Я полагаю, что эта проблема возникла из-за прямого отключения моего ПК во время обновления приложения.

Как я могу это исправить?

1
задан 13 July 2014 в 14:58

5 ответов

Для половины установленной ошибки пакета, --reinstall работал для меня:

sudo apt-get install --reinstall packagename 
47
ответ дан 24 May 2018 в 06:05
  • 1
    Да, но предупреждение, что после переустановки packagename, apt-get затем перейдет к настройке любых настроенных пакетов. – Cedric Knight 23 October 2015 в 16:53
  • 2
    это безопаснее, чем принятый ответ imho. – Zanna 25 June 2017 в 17:44
sudo apt install --reinstall packagename

Это работает как шарм. Он разрешил проблему, которую я испытывал в течение нескольких месяцев. Мой случай был с пакетом libmysqlcppconn7v5

Все, что я сделал, было выполнено sudo apt install --reinstall libmysqlcppconn7v5

5
ответ дан 24 May 2018 в 06:05

Если вы хотите исправить это через графический интерфейс, вы можете использовать синаптический интерфейс. Synaptic - отличный инструмент управления пакетами, который раньше включался в более старые версии ubuntu. Чтобы установить его:

sudo apt-get install synaptic

нажмите на исправление сломанных пакетов.

2
ответ дан 24 May 2018 в 06:05
  • 1
    synaptic не перечисляет пакет в сломанной категории :( – Barun 2 July 2014 в 13:00

У меня проблема с пакетом kibana. Я получил следующую ошибку:

dpkg: error processing kibana (--configure):
package kibana is not ready for configuration
cannot configure (current status 'half-installed')
Errors were encountered while processing:
  kibana
E: Sub-process /usr/bin/dpkg returned an error code (1)

Если кто-то все еще сталкивается с такой проблемой, вы можете попробовать следующее:

sudo rm /var/lib/dpkg/info/kibana*
cd /var/cache/apt/archives
sudo rm kibana*
apt-get --reinstall install kibana

Это работает для меня. Вам просто нужно заменить слово «кибана» на ваше имя, установленное на пол-установленном пакете.

2
ответ дан 24 May 2018 в 06:05

Это должно устранить проблему без повторной установки пакета.

sudo dpkg --force-remove-reinstreq --remove <package_name here>

Далее следуют: sudo apt-get update

2
ответ дан 24 May 2018 в 06:05
  • 1
    Почему --force-remove-reinstreq? Менеджер пакетов не указывает, что требуется переустановка. Как правило, регулярное удаление просто отлично подходит для неконфигурированных пакетов. -1 – David Foerster 12 September 2016 в 23:21
  • 2
    Это то, что я делаю, когда sudo apt-get remove <package недоступен, и я не хочу переустанавливать этот полуприложенный пакет. Затем я использую --force-remove-reinstreq, чтобы удалить эти джонки. PS: Это на Linux Mint .. Я сомневаюсь, что это будет по-другому, поскольку Linux основан на Ubuntu .. – Prashant Shahi 14 September 2016 в 00:44
  • 3
    Менеджер пакетов работает одинаково во всех дистрибутивах на основе Debian (это значит, что dpkg стоит в конце концов), но вы не должны использовать --force-* «на всякий случай». Сообщения об ошибках появляются по какой-либо причине и не должны восприниматься неопытными пользователями, поэтому вам не следует предлагать ненужные опции --force-*. В противном случае мы могли бы просто рекомендовать всегда использовать --force-all или, еще лучше, удалить опции --force-* из dpkg в целом и заставить их быть по умолчанию, потому что это было бы проще и удобнее. – David Foerster 14 September 2016 в 01:28
  • 4
    Хорошо, признай это ... Меня больше беспокоило о том, чтобы сделать работу, чем, зная, что и как именно это делается .. Извинения .. – Prashant Shahi 14 September 2016 в 02:31
  • 5
    Хм ... Я просто вижу, что принятый ответ предлагает то же самое. Поэтому я мог ошибаться в том, что --force-remove-reinstreq не нужен. Но это также означает, что ваш ответ (почти) дублирует его. Повезет в следующий раз. – David Foerster 14 September 2016 в 02:47

Другие вопросы по тегам:

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