Как удалить/установить пакет, который не полностью установлен?

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

Setting up google-chrome-stable (33.0.1750.152-1) ...
/var/lib/dpkg/info/google-chrome-stable.postinst: 124: /var/lib/dpkg/info/google-chrome-stable.postinst: update-alternatives: not found
dpkg: error processing google-chrome-stable (--configure):
 subprocess installed post-installation script returned error exit status 127
Setting up bsnes (0.088-7) ...
/var/lib/dpkg/info/bsnes.postinst: 5: /var/lib/dpkg/info/bsnes.postinst: update-alternatives: not found
dpkg: error processing bsnes (--configure):
 subprocess installed post-installation script returned error exit status 127
Errors were encountered while processing:
 google-chrome-stable
 bsnes
E: Sub-process /usr/bin/dpkg returned an error code (1)

Я искал на Google, и здесь на Спрашивают Ubuntu, но не нашли рабочее решение. Обычно предложенное исправление должно выполнить следующее:

sudo apt-get clean && sudo apt-get autoremove
sudo apt-get -f install
sudo dpkg --configure -a

Это однако не работает. Кв. - получает команды, которым просто не помогает весь сбой с той же ошибкой как выше и команда dpkg. Другая вещь они часто предлагают произвести чистку его через Синаптический или командную строку, которая также перестала работать.

Спасибо за справку

90
задан 24 March 2014 в 06:42

8 ответов

Итак, после большего количества поисков в Google и очень внимательного прочтения сообщений об ошибках снова кажется, что dpkg необходимо переустановить.

sudo apt-get install --reinstall dpkg

Что подсказывало, что это была проблема (если кто-то ищет и видит это) заключается в том, что в сообщении об ошибке было update-alternatives: not found . Как только dpkg был переустановлен, остальные пакеты установились в обычном режиме автоматически.

30
ответ дан 16 November 2019 в 10:06

Для опытных пользователей используйте на свой страх и риск.

Согласно следующему сообщению об ошибке:

subprocess installed post-installation script returned error exit status 127

Вы можете отредактировать / var / lib / dpkg / info / [package_name] .postinst и прокомментируйте все (или еще лучше, попытайтесь понять это и определить проблему), затем попробуйте снова apt-get .

Обратите внимание, что хотя в этом конкретном вопросе сообщение касается "после установки" , он мог бы упомянуть, например, вместо этого "до удаления" или "после удаления" (в этих случаях расширение файла, который нужно отредактировать, было бы .prerm или .postrm ).

80
ответ дан 16 November 2019 в 10:06

Кроме тех, которые вы уже опубликовали, есть несколько других команд, которые могут быть полезны.

  • Autoclean очищает локальный репозиторий от полученных файлов пакетов.

     sudo apt-get  Автоматическая очистка
     
  • Принудительная установка / удаление пакетов. ☠Используйте осторожно

     sudo apt-get --force-yes install 
     

    и

     sudo apt-get --force-yes remove 
     

Также, как всегда, вы можете использовать dpkg для установки, удаления и очистки пакетов.

  • Установить

     sudo dpkg -i 
     
  • Удалить

     sudo dpkg -r 
     
  • Очистить

     sudo dpkg -P 
     
49
ответ дан 16 November 2019 в 10:06

Вы можете удалить файл пакета по этому / var / lib / dpkg / info / путь и обновить исходный код.

sudo rm /var/lib/dpkg/info/[package_name].*
sudo dpkg --configure -a
sudo apt-get update

Затем переустановите свой пакет sudo apt-get install [package_name]

Doc

28
ответ дан 16 November 2019 в 10:06

Если ничего не помогает. Я сначала изменил каталог на:

cd /var/lib/dpkg/info

, затем удалил все с помощью .postinst :

sudo rm *.postinst

, затем обновил репозиторий

sudo apt-get update

, после чего все вернулось в норму, когда я это сделал:

sudo apt-get --force-yes install openjdk-7-jre-headless
15
ответ дан 16 November 2019 в 10:06

Если ничего не помогает, вы можете вручную удалить пакет с помощью dpkg . Запуск sudo dpkg -P bsnes должен очистить bsnes .

5
ответ дан 16 November 2019 в 10:06

В моем случае apt-get install -f работал. Я устанавливал mysql-workbench-community

Ранее пробовал apt autoclean

Я видел эту ошибку dpkg из-за отсутствия некоторых зависимостей, которые можно исправить путем установки в принудительном режиме (установка зависимостей)

3
ответ дан 16 November 2019 в 10:06
sudo apt-get install -f --reinstall coreutils init-system-helpers

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

1
ответ дан 22 November 2019 в 23:33

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

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