私は最近、Ubuntu 20.04ベースのディストリビューションからopenSUSE Leap 15.4に切り替えました。私はSUSEのパッケージング決定のいくつかに比較的満足していますが、いくつかは混乱しています。
Python開発者として、私はUbuntuでPython 3.8を使用しており、最新のディストリビューションであるにもかかわらず、openSUSE Leap 15.4がすでにEOLになっているPython 3.6に同梱されていることに驚きました(参照)。スケジュール)。
3.6をデフォルトのシステムPythonとして使用すると、いくつかの深刻な問題が発生します。
- PythonのEOLバージョンを使用すると、潜在的なセキュリティリスクがあります。 SUSEが展開したバージョンの開発を引き継いだとしても、アップストリームでサポートがまだ提供されているように、メンテナンスは積極的でよく監督されていないと思います。
- Python 3.6がクラッシュしたことを考慮すると、多くのPythonパッケージはこれ以上サポートしません。したがって、影響を受ける開発者はバックポートリポジトリを介して3.10などの最新のPythonバージョンをインストールする必要があります。
- しかし、ここには多くの欠点があります。多くのシステム提供のパッケージは単にサブプロセスを介して検索または
#!/usr/bin/python3
呼び出されるため、python3
安全に再接続することはできません。python3
python3.10
- 最新のPythonははるかに小さいストレージパッケージセットを持っているので、システムとはあまり統合されていません。
- たとえば、LibreOffice の Python バインディングを使用したい場合は、Python 3.6 に接続されているため不可能です。 .NETファイルに依存関係も含める必要がある場合
Python >3.6
。 - 同様に、システムが提供するPySide2 / PyQt5パッケージを使用できないため、ソースからビルドしたい場合を除き、システムのQtに動的に接続する代わりにQtの他のコピーをインストールする必要があります。これは、セキュリティ、ディスクスペース、およびアプリケーションスタイルの面で有害です(Qtのサードパーティのインストールにはシステムテーマへの適切なアクセス権がないため)。
- 通常、PyPIを介してバイナリ拡張を含むパッケージをインストールすることはエレガントではありません。これらのパッケージはシステムライブラリによくリンクされているからです。
- たとえば、LibreOffice の Python バインディングを使用したい場合は、Python 3.6 に接続されているため不可能です。 .NETファイルに依存関係も含める必要がある場合
このすべてが、SUSEがPython 3.6をリリースすることにした理由は何ですか?この決定の根拠は何でしたか?
今どうすればいいですか?ソースから必要なすべてのパッケージをインストールしてみますか?または、最後の手段として割り当てを再度変更しますか?
ベストアンサー1
15.4は4番目のアップデートで、SLESソースを使用します。したがって、これは変更が好きではない会社のためであるため、元々リリースされたバージョンに固執し、リリース修正のみに固執する傾向があります。
SLES 15は以前のPythonバージョンでリリースされているため、可能であればSLES 16がリリースされるまでそのバージョンに固執します。バージョン 15.5 がまもなくリリースされると思われるので、2 年以上かかることがあります。
15.4にはPython 3.9と3.10が付属していますが、必要なサブパッケージの一部がないかもしれません。
これはビジネス決定です。