적절한 패키지 설치 프로그램에 다른 Python 버전에 액세스하도록 지시

적절한 패키지 설치 프로그램에 다른 Python 버전에 액세스하도록 지시

저는 꽤 오래된 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

어떤 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.debdpkg -i python3_3.7.7_all.deb

이는 종속성을 충족하지만 작업 결과가 나올 것이라는 보장은 없습니다. 실제로 Python 설치에 제공하는 내용에 따라 다릅니다. 최소한 할 수 있는 일은 아직 존재하지 않는 경우 라는 심볼릭 링크도 있는지 확인하는 것입니다 python3. /usr/bin/에만 있는 것이 아니라 에 있어야 할 수도 있습니다 /usr/local/bin/.

관련 정보