Я скачал и скомпилировал последнюю версию 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
РЕДАКТИРОВАТЬ: Я вижу, что он хочет, чтобы я сделал apt-get -f install
, но он удаляет кучу вещей и я действительно не думаю, что это правильный способ исправить это.
Слава Богу я смог зафиксировать его. Я волновался, что собирался, должны переустановить человечность.
я пошел и вручную отредактировал /var/lib/dpkg/status
и удалил запись, которая была сделана checkinstall
.
, После того как это было удалено, я перешел в /usr/local/bin
и удалил весь материал python 3.5. Я также удостоверился, что python3-4 был все еще в /usr/bin/
. Затем я сделал sudo dpkg-reconfigure -a
и наконец apt-get -f install
и была только 1 вещь, которая 'отсутствовала', который был Python.
Затем мне удалось получить его, установил правильный путь путем следования инструкциям в README и затем просто удаления символьной ссылки на python3.4 и создал новый к python3.5.
У меня была та же проблема после установки 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
Состояние: деинсталлируйте хорошо установленный
Приоритет: дополнительный
Раздел: checkinstall
Установленный размер: 167520
Специалист по обслуживанию: root@laptop
Архитектура: amd64
Версия: 3.4.3-1
Обеспечивает: Python
Описание: Пакет, созданный с checkinstall 1.6.2'
Как Вы видите полужирным, имя Пакета является "Python", и пакет был, "деинсталлируют" прежде чем быть установленным снова.
Таким образом, dpkg
думает тот "Python" (python2!) больше не существует, и предложите, чтобы Вы удалили все, что зависит к нему, когда Вы звоните apt-get -f install
!
Просто выберите другое имя "Пакета", и "Обеспечивает" имя при использовании checkinstall! Например, python3.4-checkinstall для обоих.
Для решения этой путаницы у меня есть решение, которые позволяют Вам не должными быть удалить все установленные двоичные файлы вручную как electrometro
предложенный сделать, то, которое я думаю, могло бы быть опасным.
Выполните эти шаги:
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
. См. документацию Debian для большего количества информации о dpkg
. Для решения этой проблемы необходимо сделать шаг 4.И вот именно! Все должно быть чистым теперь. Я на самом деле выполнил шаг 3 перед шагом 2, но это должно быть более чисто, чтобы сделать это этот путь.
Для получения информации шаг я раньше устанавливал python3.4 от исходного пакета с помощью checkinstall, следующие:
./configure
.make
sudo checkinstall
Надежда это помогает!
С наилучшими пожеланиями, Nicolas