さまざまなPythonバージョンにアクセスするように適切なパッケージインストーラに指示する

さまざまなPythonバージョンにアクセスするように適切なパッケージインストーラに指示する

私はかなり古い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.debdpkg -i python3_3.7.7_all.deb

これは依存関係を満たしていますが、作業結果が得られるという保証はありません。 Pythonのインストールで実際に提供するものによって異なります。あなたができる最小限のことは、(まだ存在しない場合)名前のシンボリックリンクもあることを確認することですpython3/usr/bin/ではなく、存在する必要があります/usr/local/bin/

おすすめ記事