Как удалить сломанный пакет (в данном случае «клик»)?


15

Как удаляются сломанный пакет нажмите ? Я пытаюсь установить Ubuntu-SDK в моем Ubuntu 14.04. Я получаю слишком много ошибок.

sudo apt-get autoremove -f click
Reading package lists ... Done
Building dependency tree
Is read status information ... Done
The following packages will be REMOVED:
   click
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation released 166 ks of disk space.
Do you want to continue? [Y/n] y
(Reading database ... 350824 files and directories currently installed.)
Removing click (0.4.38.5-0~457~ ubuntu14.04.1) ...
Trace Back (most recent call last):
   File "/usr/bin/click", line 31, in <module>
     from click import commands
Import Error: can not import name 'commands'
dpkg: error processing package click (--remove):
  subprocess command file pre-removal installed returned error exit status 1
Reading was too many errors:
  click
E: Sub-process /usr/bin/dpkg Returned an error code (1)

Если я пытаюсь командовать sudo apt-get purge -f

Произошли такие же ошибки.

Ответы:


30

После того, как это не удалось, я проверил этот "трудный путь" ... и ... он работает!

sudo rm /usr/bin/click
sudo apt-get autoremove -f click

Файл имеет проблему при импорте модуля Python, и вы все равно хотите удалить пакет. Поэтому файл можно удалить вручную.


2
@AB Очень плохой совет, так как вторая команда удаляет множество системных пакетов
UpmostScarab

Это действительно работает для меня в Ubuntu 18.04 LTS. Тем не менее, я использовал sudo apt-get --fix-broken installпосле двух команд.
Афагарап

Большое спасибо!! Я пытался разобраться в этом в течение 3 дней!
Tessaracter

9

у меня была та же ошибка с битыми пакетами click и click-apparmor, url-dispatcher после обновления 14.04 -> 14.10 -> 15.04

* Последнее обновление:

решение для меня было удалить папку пакета, rm -rv /usr/local/lib/python3.4/dist-packages/click а затем:

sudo apt-get update && sudo apt-get install -f

источник решения


Когда вы пишете «удаление пакета /usr/local/lib/python3.4/dist-packages/click», вы имеете в виду удаление файла /usr/local/lib/python3.4/dist-packages/clickили удаление пакетаclick
Volker Siegel

1
не удаляя всю папку вручную rm -rv /usr/local/lib/python3.4/dist-packages/click, потому что ничего apt-get -f installили dpkg --reconfigure -a, apt-get autoremove -f click , apt-get purge clickработ.
Игорь Проскура

5
sudo apt-get remove click
sudo pip3 uninstall click
sudo pip uninstall click
sudo apt-get install click -f

Проблема в том, что у многих пользователей обновления будет установлена ​​версия click с номером версии в их хранилище pip или pip3, они не управляются apt и имеют приоритет при importвызове ключевого слова Python .

Таким образом, вам нужно удалить их, прежде чем переустановка клика принесет вам пользу. Причины, по которым они могут быть установлены, состоят в том, что это может произойти во время установки стороннего приложения на Python, и Бог знает, что я сделал несколько.


1
Я просто рецензент: не могли бы вы скопировать все вышеперечисленное в свой фактический ответ, прежде чем система решит удалить ваш ответ из-за некачественности? ;-)
Fabby

2

Установить нажмите еще раз, чтобы установить зависимости.

sudo apt-get install --reinstall click

Затем удалите его с помощью этой команды.

sudo apt-get autoremove -f click

Если это не работает, установите Python и / или python3:

sudo apt-get install --reinstall python
sudo apt-get install --reinstall python3
sudo apt-get install --reinstall python3-click

и чем опять

sudo apt-get autoremove -f click

Ничего не помогает, я получаю те же ошибки.
lahtis

Ответ обновлен.
AB

Попробуйте эти три команды: sudo apt-get install --reinstall python; sudo apt-get install --reinstall python3; sudo apt-get install --reinstall python3-clickи сноваsudo apt-get autoremove -f click
AB

Ничего не помогать. Обратный вызов (последний вызов был последним): файл "/ usr / bin / click", строка 31, в <модуле> из команд импорта нажатием кнопки ImportError: невозможно импортировать имя 'команды' dpkg: щелчок пакета обработки ошибок (--remove ):
lahtis

0

Можешь попробовать:

sudo dpkg --force-all -P click  

или:

sudo dpkg --force-all -r click

1
Пакет полностью поврежден, не может установить или удалить пакет.
lahtis

0

В моем случае это было потому, что у меня также была установлена ​​версия click для Python3 через pip3. Когда я удалил версию Python3, все работало нормально.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.