状態
私達の会社に内部サーバーがあります
- オープンシューター跳躍15.5
- Python 3.6(.15)
- Python 2.7(.18)
詳細については詳細を確認してください。
仕事
Python 3.6がハングしたので最新のPythonのインストール(3.10または3.11)。
~のため何も破壊しないでください私の考えでは
- 新しいPythonを並列にインストール
- さらにインストールします(既存のインストールまたはエイリアスを交換または中断せずに)。
- どこでも使用可能(スクリプト)
このサーバーは開発プロセスにとって非常に重要なので、リスクをできるだけ減らしたいと思います。
質問
- システムの信頼性、他のPythonのインストール、および「python」バイナリ/シンボリックリンクの観点から他のPythonをインストールするのはどれほど危険ですか?
- 最も危険性の低い方法でPythonをインストールするにはどうすればよいですか?
詳細
***:~> cat /etc/os-release NAME="openSUSE Leap" VERSION="15.5" ID="opensuse-leap" ID_LIKE="suse opensuse" VERSION_ID="15.5" PRETTY_NAME="openSUSE Leap 15.5" ANSI_COLOR="0;32" CPE_NAME="cpe:/o:opensuse:leap:15.5" BUG_REPORT_URL="https://bugs.opensuse.org" HOME_URL="https://www.opensuse.org/" DOCUMENTATION_URL="https://en.opensuse.org/Portal:Leap" LOGO="distributor-logo-Leap" ***:~> zypper info python ... Repository : Update repository with updates from SUSE Linux Enterprise 15 Name : python Version : 2.7.18-150000.51.1 Arch : x86_64 Vendor : SUSE LLC <https://www.suse.com/> Installed Size : 1.4 MiB Installed : Yes (automatically) Status : up-to-date Source package : python-2.7.18-150000.51.1.src Upstream URL : https://www.python.org/ Summary : Python Interpreter ... ***:~> zypper info python3 ... Repository : Update repository with updates from SUSE Linux Enterprise 15 Name : python3 Version : 3.6.15-150300.10.48.1 Arch : x86_64 Vendor : SUSE LLC <https://www.suse.com/> Installed Size : 141.3 KiB Installed : Yes (automatically) Status : up-to-date Source package : python3-3.6.15-150300.10.48.1.src Upstream URL : https://www.python.org/ Summary : Python 3 Interpreter ....
答え1
このソリューションはopenSUSEでのみ機能します。 SUSE Linux Enterprise Serverでも使用できますが、現在はサポートされていません。自分の責任で使用してください!
あなたは試すことができますピエンブ、特定のユーザーが異なるPythonバージョンを使用できるようにします。私はそれを数ヶ月間使用してきました、とても満足しています。
あなたの方針がこれを許可しているかどうかはわかりません。ただし、このソリューションはシステムへの影響や中断を最小限に抑えます。システムを台無しにする必要はありません。
これは以下にのみ適用されることを覚えておいてください。特定ユーザー。他のユーザーはこの変更を表示できず、影響を受けません。これは利点であってもなくてもよい。
システムの準備
特定のPythonバージョンを使用する前に、そのバージョンをインストールして設定する必要がありますpyenv
。
次のように進んでください。
統合開発:言語:Python:バックポートあなたのシステムに買い戻してください。
pyenvパッケージをインストールします。
$ sudo zypper install --details pyenv
Pythonをビルドするために必要な次の開発パッケージをインストールします。
$ sudo zypper install -y gcc automake bzip2 libbz2-devel \ xz xz-devel openssl-devel ncurses-devel readline-devel \ zlib-devel tk-devel libffi-devel sqlite3-devel \ gdbm-devel make findutils patch
~/.bashrc ファイルに次の行を追加します。
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc echo 'eval "$(pyenv init -)"' >> ~/.bashrc
別のシェルを使用している場合は、次を参照してください。https://github.com/pyenv/pyenv#set-up-your-shell-environment-for-pyenv
再起動シェルを使用する
exec $SHELL
か、コンソールを閉じて新しいコンソールを開きます。
別のPythonバージョンをインストールする
これでシステムが準備されました。このpyenv
コマンドは、要求されたバージョンをダウンロードしてコンパイルして保存します~/.pyenv/versions/
。これが完了したら、シェルで新しいPythonバージョンを使用できます。
特定のPythonバージョンをインストールするには、次の手順に従います。
Pythonバージョン(例:3.11)をインストールします。
$ pyenv install 3.11
特定のユーザーにこのバージョンを設定します。
$ pyenv global 3.11
現在のディレクトリに制限するには、次のようにします。
$ pyenv local 3.11
pip3
ローカルインストールで解決されていることを確認してください。$ pip3.11 --version pip 23.1.2 from /home/tux/.pyenv/versions/3.11.4/lib/python3.11/site-packages/pip (python 3.11)
代わりに、ユーザーを指すディレクトリを表示する必要があります
/usr/
。
システムを準備したら、pyenv
Pythonライブラリをローカルインストールにインストールできます。たとえば、
$ pip3.11 install <LIBRARY>
結論
この方法はRPMシステムとzypperをバイパスすることに注意してください。あなたはそれらからどんな更新も受け取ることができません。ただし、最新のPythonバージョンが必要な場合は、pyenv
最新バージョンにアクセスするためにパッケージを更新する必要があります。
また、RPMで提供されているPythonのバージョンにも注意する必要があります。似たような名前(pip3.11
vs.)があり、混乱する可能性がありますpip3-3.11
。