저는 상당히 오래된 Linux 설치를 사용하고 있으며 시스템 Python에는 Python 3.7이 포함되어 있지 않습니다. 그러나 다음 터미널 출력에 표시된 것처럼 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
어떤 apt 기반 Linux 배포판을 사용하고 있는지 지정하지 않았으므로 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/
.