
Я использую довольно старую установку Linux, системный Python не включает Python 3.7. Однако я установил Python 3.7, как можно увидеть в следующем выводе терминала, но я хотел бы указать установщику пакетов обращаться к нему, когда он попытается запустить установку:
cardamom@jupiter ~ $ python --version
Python 2.7.12
cardamom@jupiter ~ $ python3.7 --version
Python 3.7.7
cardamom@jupiter ~ $ sudo apt install -y dangerzone
[sudo] Passwort für cardamom:
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Einige Pakete konnten nicht installiert werden. Das kann bedeuten, dass
Sie eine unmögliche Situation angefordert haben oder, wenn Sie die
Unstable-Distribution verwenden, dass einige erforderliche Pakete noch
nicht erstellt wurden oder Incoming noch nicht verlassen haben.
Die folgenden Informationen helfen Ihnen vielleicht, die Situation zu lösen:
Die folgenden Pakete haben unerfüllte Abhängigkeiten:
dangerzone : Hängt ab von: python3:any (>= 3.7~)
E: Probleme können nicht korrigiert werden, Sie haben zurückgehaltene defekte Pakete.
cardamom@jupiter ~ $
Возможно ли это сделать?
решение1
Поскольку вы не указали, какой дистрибутив Linux на основе apt вы используете, я предположу, что это Debian. Это должно применяться к производным дистрибутивам, пока equivs
существует указанный ниже пакет.
Вам действительно следует обновить свою систему до последней/поддерживаемой версии, поскольку у вас начнется все больше и больше проблем с зависимостями.
В любом случае, чтобы решить проблему зависимости, вы можете попробовать использовать пакетequivs
:
[...]
Другое применение — обход проверки зависимостей: позволяя dpkg думать, что определенный пакет с определенным именем и версией установлен, хотя это не так, вы можете обойти ошибки в зависимостях других пакетов. (Однако, пожалуйста, все равно сообщайте о таких ошибках.)
Вам необходимо создать управляющий файл с помощью equivs-control
:
equivs-control python3
отредактируйте созданный файл python3
, в вашем случае вы можете добавить или изменить соответствующие строки на:
Package: python3
Version: 3.7.7
Architecture: all
(и любая другая область, которую вы считаете полезной, например Description
)
Затем запустите equivs-build python3
, чтобы создать пустой (в данном случае) пакет с именем , python3_3.7.7_all.deb
который затем можно установить с помощью dpkg -i python3_3.7.7_all.deb
.
Это удовлетворит зависимости, но не даст никаких гарантий, что у вас будет рабочий результат: это зависит от того, что вы фактически предоставляете в своей собственной установке python. Самое меньшее, что вы можете сделать, это убедиться, если ее еще нет, что есть также символическая ссылка с именем python3
. Возможно, ее придется иметь в , /usr/bin/
а не только в /usr/local/bin/
.