Я загрузил и скомпилировал последний python, 3.5 и установил его с помощью checkinstall. Теперь я получаю тонну пакетов, у которых отсутствуют зависимости в apt.
apt-xapian-index : Depends: python (< 2.8) but 3.5.0-1 is to be
installed
duplicity : Depends: python (< 2.8) but 3.5.0-1 is to be installed
gconf2 : Depends: python:any
.
.
.
totem-plugins : Depends: python:any (>= 2.6.6-7~)
ubuntu-system-service : Depends: python (< 2.8) but 3.5.0-1 is to be installed
Depends: python:any (>= 2.7.1-0ubuntu2)
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
Но у меня все еще установлен python, включая 2.7.9.
$ which python
/usr/bin/python
$ python
Python 2.7.9 (default, Apr 2 2015, 15:33:21)
[GCC 4.9.2] on linux2
$ which python3
/usr/local/bin/python3
$ python3
Python 3.5.0 (default, Sep 13 2015, 19:47:21)
[GCC 4.9.2] on linux
Как я могу удалить установленный пакет или исправить зависимости, не увидев, что установлен python3?
Кроме того, python3.4 все еще находится в /usr/bin/python3
EDIT: Я вижу, что он хочет, чтобы я сделал apt-get -f install, но он удаляет тонну вещей, и я действительно Не думаю, что это правильный способ исправить это.
У меня была такая же проблема после установки python3.4 с checkinstall (вместо python3.5 для electrometro)
Я обнаружил, почему эта проблема возникла в первую очередь.
При создании файла .deb из источника Python 3.4 с checkinstall, который затем устанавливает его, стандартное имя пакета, установленное checkinstall, является «python».
Как следствие, checkinstall удалите пакет с именем python перед установкой нового с помощью dpkg !! Этот пакет уже существует в Ubuntu. Это в основном связано с python2! По какой-то причине я надеюсь, что dpkg пытается удалить версию python, которую вы устанавливаете, то есть python3.4 в моем случае, но не работает. Вот почему python2 все еще установлен. Но dpkg по-прежнему считают, что пакет «python» был удален и заменен новым установленным (python3.4). Соответственно отредактирован файл / var / lib / dpkg / status. В моем случае это обновление, связанное с этой установкой:
Пакет: python Статус: deinstall ok установлен Приоритет: дополнительный Раздел: checkinstall Установленный-размер: 167520 Сопровождающий: root @ laptop Архитектура: amd64 Версия: 3.4. 3-1 Предоставляет: python Описание: Пакет, созданный с помощью checkinstall 1.6.2`Как вы можете видеть жирным шрифтом, имя пакета « python », и пакет был " deinstall "перед установкой снова.
Таким образом, dpkg считает, что« python »(python2!) больше не существует и предлагает вам удалить все, что зависит от него, когда вы вызываете apt-get -f install!
Просто выберите другое имя «Пакет» и «Предоставляет» имя при использовании checkinstall! Например, python3.4-checkinstall для обоих.
Чтобы решить эту проблему, у меня есть решение, которое позволит вам не удалять
Выполните следующие действия:
Вручную отредактируйте имя пакета python в /var/lib/dpkg/status из python - python-3.4-checkinstall, например. Быть осторожен. Новое имя не должно быть уже использовано! Также измените «Предоставляет» новое имя. Используйте sudo dpkg-reconfigure python-3.4-checkinstall. (Примечание: dpkg-reconfigure -a, как было предложено electrometro, в Ubuntu 16.04 больше не существует). В любом случае это не требуется). Запустите apt-get -f install, который снова установит исходный пакет python! На этом этапе вы можете остановиться здесь, но если вы попробуете sudo dpkg-query -L python3.4-checkinstall: dpkg не знает, какие файлы были установлены больше !!! Поскольку файл /var/lib/dpkg/info/python3.4-checkinstall.list не существует! Файл /var/lib/dpkg/info/python.list был превзойден apt-get -f install. Дополнительную информацию о dpkg см. В документации Debian. Чтобы решить эту проблему, вы должны сделать шаг 4. Переустановите python3.4 с нуля с помощью checkinstall, но не забывайте изменять имя пакета и имя «Предоставляет», как было предложено ранее! Используйте то же имя, что и на шаге 1. Не нужно удалять двоичные файлы вручную, прежде чем делать это. Целью этого шага является чистая установка python3.4 и возможность его удаления с использованием вновь созданного файла .deb.И все! Теперь все должно быть чистым. Я действительно выполнил шаг 3 до шага 2, но для этого нужно сделать более чистым.
Для информации, которую я использовал для установки python3.4 из исходного пакета с помощью checkinstall, вы можете: [!d43 ] Вручную отредактируйте имя пакета python в /var/lib/dpkg/status, например, с python до python-3.4-checkinstall. Быть осторожен. Новое имя не должно быть уже использовано! Также измените «Предоставляет» новому имени. Запуск make Используйте sudo dpkg-reconfigure python-3.4-checkinstall. (Примечание: dpkg-reconfigure -a, как было предложено electrometro, в Ubuntu 16.04 больше не существует). Самый важный шаг. На этом этапе они спрашивают, хотите ли вы изменить любое поле перед установкой. Измените «Пакет» и «Предоставляет» с «python» на другое уникальное имя (например, «python3.4-checkinstall», как я предложил).
Надеюсь, что это поможет!
Привет, Николя