GentooでパッケージにPythonバージョンを使用するように強制する方法は?

GentooでパッケージにPythonバージョンを使用するように強制する方法は?

Gentooシステムのすべてのパッケージに1つのPython3バージョンを使用したいです。それで、インストールされたバージョンを調べてみると、3.6、3.7、3.8の3つのバージョンがインストールされていることがわかりました。すべてのパッケージを3.8に変換し、古いバージョンを削除したいです。

私の計画:

  • Python 3.6と3.7をマージ解除します。
  • USEPythonを使用してパッケージのフラグを python3_8 -python3_7 -python3_6
  • emerge --update --newusePython 3.8を使用するには、これらのパッケージを再構築してください。

したがって、Python 3.6をアンインストールした後:

emerge --ask -C dev-lang/python:3.6

この行を追加しました

virtual/python-ipaddress python3_8 -python3_7 -python3_6

そして/etc/portage/package.use走る

emerge --ask --update --newuse --deep virtual/python-ipaddress

私は得る

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  NS    ] dev-lang/python-3.6.11-r2 [2.7.18-r1, 3.7.8-r2, 3.8.4-r1] USE="(threads%*)"

Would you like to merge these packages? [Yes/No]

私はこの動作を理解していません:Emergencyを使用する必要があると述べていpython-3.6ます。この変数にPython仕様が含まれていないのはなぜですか?この変数よりも優先順位が高く、それを上書きする他のプロファイルはありますか?読んだ内容を理解する限り/etc/portage/package.use3.8USE/etc/portage/package.useUSE文書、このようなことは起きてはいけません。


ベストアンサー1

しかし、PythonはGentooの一般的なパッケージではありません。 (主になぜなら運ぶそれ自体はPythonに依存します。 ) => 他の変数を設定することも重要です。そして一貫性がなければなりません。 USE フラグの基本概念は、ユーザー設定を設定するために予約されていることです。最悪の場合、デフォルト設定により特定のパッケージが正しく動作しない場合がありますが、いかなる方法でもシステム全体が破損することはありません。

Pythonのバージョンは次のようになります。いいえユーザー設定。いいえ!ユーザーは目を覚まして決定することはできません:私はPython XYZだけが欲しい!ええと…はい…ユーザーは慈悲深く…できます。


あなたの目標を達成するために(私が知っている限り)私は絶対に続かないでしょう(危険*)あなたが従う方法。

詳細な手順を踏みたいです。ここで段落バージョンアップ。

ところで:参考にしてください電子選択もの。

興味のためにそういうわけではなく…結局…一体なぜそれを望むのでしょうか?

Tux ~ $ equery size python-2.7.18-r1
dev-lang/python-2.7.18-r1
          Total files : 4177
          Total size  : 63.28 MiB
Tux ~ $ equery size python-3.7.8-r2
dev-lang/python-3.7.8-r2
          Total files : 6616
          Total size  : 98.74 MiB

合計200MB未満のデータを復元すると、他の面白いことが壊れる可能性がありますか?

気づく! :あなたは絶対できません。変化、使用フラグを調整して、ある言語バージョンから別の言語バージョンにプログラムを移植します。プログラムがまだ互換性がない場合は、すべてを壊す他のライブラリにリンクするだけです。


高いリスク(*):インストールされているパッケージがそのパッケージに厳密に依存していないことを確認する前に、パッケージのマージを試してはいけません。 Python 2からPython 3に移植されていないプログラムを言うことです。 (私は個人的に私のシステムにpython-2.7.18-r1が存在するという肯定的な証拠を得ました)

そうではありません。 3.6と3.7を正常に削除すると、glib(2.62.6)、Wireshark、gitよりもほぼ確実に中断されます。私が知っている限り、最新の安定版はまだ3.8と互換性がありません。

このセクションで回復する可能性がまったくなく、Portage自体を損傷した可能性があります。バックアップのおかげで...ほぼ確実に...作成を避けました...

おすすめ記事