OpenSUSEに追加Pythonをインストールする(既存のPythonを損なうことなく)

OpenSUSEに追加Pythonをインストールする(既存のPythonを損なうことなく)

状態

私達の会社に内部サーバーがあります

  • オープンシューター跳躍15.5
  • Python 3.6(.15)
  • Python 2.7(.18)

詳細については詳細を確認してください。

仕事

Python 3.6がハングしたので最新のPythonのインストール(3.10または3.11)。
~のため何も破壊しないでください私の考えでは

  1. 新しいPythonを並列にインストール
  2. さらにインストールします(既存のインストールまたはエイリアスを交換または中断せずに)。
  3. どこでも使用可能(スクリプト)

このサーバーは開発プロセスにとって非常に重要なので、リスクをできるだけ減らしたいと思います。

質問

  1. システムの信頼性、他のPythonのインストール、および「python」バイナリ/シンボリックリンクの観点から他のPythonをインストールするのはどれほど危険ですか?
  2. 最も危険性の低い方法で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

次のように進んでください。

  1. 統合開発:言語:Python:バックポートあなたのシステムに買い戻してください。

  2. pyenvパッケージをインストールします。

     $ sudo zypper install --details pyenv
    
  3. 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
    
  4. ~/.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

  5. 再起動シェルを使用するexec $SHELLか、コンソールを閉じて新しいコンソールを開きます。

別のPythonバージョンをインストールする

これでシステムが準備されました。このpyenvコマンドは、要求されたバージョンをダウンロードしてコンパイルして保存します~/.pyenv/versions/。これが完了したら、シェルで新しいPythonバージョンを使用できます。

特定のPythonバージョンをインストールするには、次の手順に従います。

  1. Pythonバージョン(例:3.11)をインストールします。

     $ pyenv install 3.11
    
  2. 特定のユーザーにこのバージョンを設定します。

     $ pyenv global 3.11
    

    現在のディレクトリに制限するには、次のようにします。

     $ pyenv local 3.11
    
  3. 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/

システムを準備したら、pyenvPythonライブラリをローカルインストールにインストールできます。たとえば、

$ pip3.11 install <LIBRARY>

結論

この方法はRPMシステムとzypperをバイパスすることに注意してください。あなたはそれらからどんな更新も受け取ることができません。ただし、最新のPythonバージョンが必要な場合は、pyenv最新バージョンにアクセスするためにパッケージを更新する必要があります。

また、RPMで提供されているPythonのバージョンにも注意する必要があります。似たような名前(pip3.11vs.)があり、混乱する可能性がありますpip3-3.11

関連情報