Installieren Sie Python3 + OCI CLI unter Linux der 7er-Serie. Die von OCI CLI unterstützte Python-Version wird nach 2020/2/13 3.5+ sein

1. Zuallererst

** Ich habe die CLI aktualisiert und dachte "Ich habe die OCI-CLI kürzlich nicht aktualisiert" **. Wenn Sie die CLI ausführen, wird eine überraschende Meldung in Rot angezeigt!

$ oci iam region list WARNING: OCI CLI now requires Python 3.5+. Please install or upgrade your version of Python to 3.5+ before February 13, 2020 to avoid interruption to CLI usage.

** Wenn Sie ruhig denken, läuft die Support-Frist für Python 2 bis Ende März 2020. ** **.

** Oracle Linux 7 Python ist eine 2.x-Serie. Deshalb habe ich die Gegenmaßnahmen untersucht. ** **.

$ python -V Python 2.7.5

1-1. TL;DR

1-2. Zielgruppe

1-3 Referenzmaterialien

** Japanisches Handbuch **

** Englisches Handbuch **

2. Denken Sie daran, eine OCI-CLI-Umgebung zu erstellen

Python 3 ist erforderlich, um die OCI-CLI zu verwenden. Die Umgebungskonstruktion von Python ist jedoch vielfältig und für Benutzer eine schwierige Situation. Schauen Sie zurück auf das Gesamtbild und denken Sie über die Installationsrichtlinien nach.

2-1. So installieren Sie OCI CLI

Viele Anweisungen zur Installation der OCI-CLI finden Sie im obigen Handbuch und im nächsten Qiita-Artikel. Es gibt einige subtile Unterschiede, aber sie sind ungefähr gleich.

2-2. Problem beim Aufbau der Python-Umgebung

Das Problem ist das Erstellen der Python-Umgebung. Es gibt mehrere Möglichkeiten, Python 3 unter Oracle Linux 7 / CentOS 7 zu verwenden, und es gibt auch mehrere Möglichkeiten, Python-Pakete zu verwalten. Wie Sie im nächsten Artikel sehen können, ist die Situation äußerst kompliziert.

Lassen Sie uns diesmal einfach denken und unter den folgenden Bedingungen eingrenzen.

Dann kann ich mir die folgende Methode vorstellen.

** Python 3.x ist nicht im Standard-Repository enthalten. Wenn Sie also laut den folgenden Nachrichtenquellen an "Software Collections" oder "EPEL" denken, wird 7.7 oder höher (2019 / 8-) in das Standard-Repository aufgenommen. ** **.

Nach der Überprüfung wird es wie folgt in das Standard-Repository (ol7_latest) aufgenommen. Im nächsten Kapitel werden wir versuchen, dies zu installieren.

$ sudo yum list available python3
Loaded plugins: langpacks, ulninfo
Available Packages
python3.i686                 3.6.8-10.0.1.el7                ol7_optional_latest
python3.x86_64               3.6.8-10.0.1.el7                ol7_spätestens ★ hier

3. Aufbau der Python 3-Umgebung

Installieren Sie Python 3 unter Oracle Linux 7. Außerdem wird ** venv ** erläutert, das zum Erstellen einer Python-Umgebung geeignet ist.

Die OCI-CLI verwendet intern ** venv / virtulenv **, um die virtuelle Python-Umgebung zu verwalten. Daher muss der Benutzer zum Zeitpunkt der Installation nicht ** venv / virtulenv ** verwenden. </ font>

3-1. Installieren von Python 3

  1. Installieren Sie Python 3.
$ sudo yum install -y python3
  1. Wenn ich die Version überprüfe, bleibt sie "2.7.5".
$ python -V
Python 2.7.5
  1. Der Grund ist, dass der Befehl "python3" wie folgt lautet.
$ python3 -V
Python 3.6.8
  1. Überprüfen Sie den symbolischen Link wie folgt.
$ ls -l /usr/bin/py*
-rwxr-xr-x.1 Wurzel Wurzel 78 5. Dezember 10:34 /usr/bin/pydoc
lrwxrwxrwx.1 Wurzel Wurzel 8. Dezember 24 16:08 /usr/bin/pydoc3 -> pydoc3.6
-rwxr-xr-x.1 Wurzel Wurzel 78 7. August 17:04 /usr/bin/pydoc3.6
lrwxrwxrwx.1 Wurzel Wurzel 7 Dezember 24 13:08 /usr/bin/python -> python2
lrwxrwxrwx.1 Wurzel Wurzel 9. Dezember 24 13:08 /usr/bin/python2 -> python2.7
-rwxr-xr-x.1 Wurzel Wurzel 7144 5. Dezember 10:34 /usr/bin/python2.7
lrwxrwxrwx.1 Wurzel Wurzel 9. Dezember 24 16:08 /usr/bin/python3 -> python3.6
-rwxr-xr-x.2 root root 11336 7. August 17:04 /usr/bin/python3.6
-rwxr-xr-x.2 root root 11336 7. August 17:04 /usr/bin/python3.6m
lrwxrwxrwx.1 Wurzel Wurzel 10 24. Dezember 16:08 /usr/bin/pyvenv -> pyvenv-3.6
-rwxr-xr-x.1 Wurzel Wurzel 435 7. August 17:04 /usr/bin/pyvenv-3.6

** Achtung ** Ändern Sie hier nicht das Link-Ziel von / usr / bin / python in python3. Das liegt daran, dass viele Befehle, einschließlich yum, von Python 2.x abhängen. Bitte seien Sie vorsichtig, da die Probleme weiterhin auftreten, wenn Sie den symbolischen Link ersetzen. </ font>

  1. Überprüfen Sie den Inhalt des RPM-Pakets wie folgt.
$ rpm -ql python3
/usr/bin/pydoc3
/usr/bin/pydoc3.6
/usr/bin/python3
/usr/bin/python3.6
/usr/bin/python3.6m
/usr/bin/pyvenv
/usr/bin/pyvenv-3.6
/usr/share/doc/python3-3.6.8
/usr/share/doc/python3-3.6.8/README.rst
/usr/share/licenses/python3-3.6.8
/usr/share/licenses/python3-3.6.8/LICENSE
/usr/share/man/man1/python3.1.gz
/usr/share/man/man1/python3.6.1.gz

3-2 Grundlegendes zur virtuellen Python 3-Umgebung

Python bietet viele Möglichkeiten, mehrere Pythons- und Python-Pakete auf einem Computer zu verwalten. Dieses Mal werde ich ** venv ** vorstellen, das der Standard ist und auch das OCI CLI-Installationsprogramm verwendet. ** venv ** ist eine Standardfunktion der traditionellen ** virtualenv ** aus Python 3.3.

Ich bin verwirrt von einer Mischung aus ** venv ** und ** pyvenv **, aber beide sind gleich ** venv **. pyvenv ist ein Skript, das venv ausführt und derzeit veraltet ist. https://docs.python.org/3.6/library/venv.html

The pyvenv script has been deprecated as of Python 3.6 in favor of using python3 -m venv to help prevent any potential confusion as to which Python interpreter a virtual environment will be based on.

So verwenden Sie ** venv **:

** Erstellen einer virtuellen Umgebung **

python3 -m venv <Name des Umgebungspfads>

** Virtuelle Umgebung aktivieren **

Quelle <Name des Umgebungspfads>/bin/activate

** Virtuelle Umgebung deaktivieren **

deactivate

3-3 Python 3 Erstellen einer virtuellen Umgebung

Diese Arbeit ist für die Installation der OCI-CLI nicht erforderlich, wird jedoch in der später beschriebenen Untersuchung verwendet und daher erläutert. </ font>

  1. Erstellen Sie eine virtuelle Umgebung für die OCI-CLI. oci_cli ist der Name des Verzeichnisses, das die virtuelle Umgebung erstellt, und kann eine andere Zeichenfolge sein.
$ python3 -m venv oci_cli
  1. Nach der Bestätigung wurden die folgenden Verzeichnisse und Dateien erstellt. Sie müssen den Inhalt nicht verstehen, aber wenn Sie weitere Details erfahren möchten, lesen Sie bitte Offizielles Handbuch.
$ ls -d  oci_cli/*
oci_cli/bin  oci_cli/include  oci_cli/lib  oci_cli/lib64  oci_cli/pyvenv.cfg
  1. Aktivieren Sie die virtuelle Umgebung. Wenn die virtuelle Umgebung aktiviert ist, wird der Name der virtuellen Umgebung am Anfang der Eingabeaufforderung angezeigt. Der Teil ist ein relativer Pfad aus dem aktuellen Verzeichnis.
$ source oci_cli/bin/activate
(oci_cli) [opc@hostname ~]$
  1. Wenn ich die Python-Version überprüfe, ist es 3.6.8.
(oci_cli) [opc@hostname ~]$ python -V
Python 3.6.8
  1. Geben Sie zum Deaktivieren "Deaktivieren" ein. Sie können sehen, dass das Deaktivieren der virtuellen Umgebung auf die ursprüngliche Version zurückgesetzt wird.
(oci_cli) [opc@hostname ~]$ deactivate
[opc@hostname ~]$ python -V
Python 2.7.5

Dies ist das Grundwissen über die virtuelle Umgebung von Python. Installieren / aktualisieren Sie dann die OCI-CLI.

4. OCI CLI-Setup

Installieren Sie dann die OCI-CLI. Sie müssen Zugriff auf das Internet haben, um das OCI CLI-Installationsprogramm ausführen zu können.

4-1. Installieren der OCI-CLI

Installieren Sie die OCI-CLI. Auch wenn Sie die OCI-CLI bereits mit Python 2.x verwenden, müssen Sie sie neu installieren, da die Python-Bibliothek an einem anderen Speicherort installiert ist. Die Einstellungsdatei unter "$ HOME / .oci" kann jedoch unverändert verwendet werden.

  1. Führen Sie das OCI CLI-Installationsprogramm aus. Es sollte von einem Betriebssystembenutzer ausgeführt werden, der die OCI-CLI ausführt, z. B. opc- oder oracle-Benutzer.
$ bash -c "$(curl -L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)"
  1. Beim Aktualisieren von einem vorhandenen wird Folgendes angezeigt: Geben Sie "y" ein, um es zu überschreiben.
===> In what directory would you like to place the install? (leave blank to use '/home/opc/lib/oracle-cli'):
-- Install directory '/home/opc/lib/oracle-cli' is not empty and may contain a previous installation.

===> Remove this directory? (y/N):★ Geben Sie y ein
  1. Danach werden Sie aufgefordert, einige Informationen einzugeben. Sie können jedoch auch die Taste "Alle zurückgeben" verwenden.

  2. Wenn Sie fertig sind, lautet die Ausgabe wie folgt.

-- ** Run `exec -l $SHELL` to restart your shell. **
--
-- Installation successful.
-- Run the CLI with /home/opc/bin/oci --help
  1. Starten Sie die Shell neu, damit der zu $ HOME / .bashrc hinzugefügte Inhalt wirksam wird.
$ exec -l $SHELL
  1. Nach dem Update von Python 2 gibt es immer noch Zeilen, die auf 2.7 verweisen, wie unten gezeigt. Da es jedoch nicht ausgeführt wird, gibt es kein Problem, selbst wenn es übrig bleibt.

$HOME/.bashrc


[[ -e "/home/opc/lib/oracle-cli/lib/python2.7/site-packages/oci_cli/bin/oci_auto
complete.sh" ]] && source "/home/opc/lib/oracle-cli/lib/python2.7/site-packages/
oci_cli/bin/oci_autocomplete.sh"

[[ -e "/home/opc/lib/oracle-cli/lib/python3.6/site-packages/oci_cli/bin/oci_auto
complete.sh" ]] && source "/home/opc/lib/oracle-cli/lib/python3.6/site-packages/
oci_cli/bin/oci_autocomplete.sh"
  1. Überprüfen Sie die Version von OCI CLI wie folgt.
$ oci --version
2.7.0

4-2. Konfigurationsdateieinstellungen

Sie müssen beim Aktualisieren von Python 2 nichts tun. Die Konfigurationsdatei unter "$ HOME / .oci" kann unverändert verwendet werden. Wenn die Installation erfolgreich ist, wird die zu Beginn eingeführte Warnmeldung auch dann nicht angezeigt, wenn die OCI-CLI ausgeführt wird.

Informationen zur Neuinstallation finden Sie auf der folgenden Seite.

5. Übersicht über die Installationsumgebung

Ich habe die virtuelle Umgebung von Python erklärt, also lasst es uns überprüfen. Die OCI-CLI wird in $ HOME / lib / oracle-cli installiert.

  1. Die OCI-CLI ist nicht in der Standardumgebung von Python 3 installiert.
$ pip3 list --format=columns
Package    Version
---------- -------
pip        9.0.3
setuptools 39.2.0
  1. Aktivieren Sie die virtuelle Umgebung.
$ source lib/oracle-cli/bin/activate
(oracle-cli) [opc@hostname ~]$
  1. Überprüfen Sie die in der virtuellen Umgebung installierten Pakete, und Sie sehen das OCI Python SDK und die OCI CLI.
(oracle-cli) [opc@hostname ~]$ pip3 list
Package         Version
--------------- ----------
arrow           0.10.0
asn1crypto      1.2.0
certifi         2019.11.28
cffi            1.13.2
click           6.7
configparser    3.5.0
cryptography    2.4.2
idna            2.6
jmespath        0.9.3
oci             2.8.0 ★OCI Python SDK 
oci-cli         2.7.0 ★OCI CLI
pip             19.3.1
pycparser       2.19
pyOpenSSL       18.0.0
python-dateutil 2.7.3
pytz            2016.10
PyYAML          5.1.2
retrying        1.3.3
setuptools      42.0.2
six             1.11.0
terminaltables  3.1.0
wheel           0.33.6

** Bonus: ** Sie können in einer virtuellen Umgebung auch pip anstelle von pip3 verwenden. Beide haben die gleiche Ausgabe, aber wenn Sie die virtuelle Umgebung aktivieren, können Sie den in der virtuellen Umgebung installierten pip verwenden. In / usr / bin gibt es kein pip.

$ find $HOME /usr/bin -name "pip*"
/home/opc/.cache/pip
/home/opc/lib/oracle-cli/lib/python3.6/site-packages/pip
/home/opc/lib/oracle-cli/lib/python3.6/site-packages/pip-19.3.1.dist-info
/home/opc/lib/oracle-cli/bin/pip
/home/opc/lib/oracle-cli/bin/pip3
/home/opc/lib/oracle-cli/bin/pip3.6
/home/opc/lib/oracle-cli/pip-selfcheck.json
/usr/bin/pip3 ★ Es gibt keinen pip
/usr/bin/pip-3
/usr/bin/pip-3.6
/usr/bin/pip3.6
  1. Überprüfen Sie, ob Pakete aktualisiert wurden. Wenn ich nur die OCI-CLI einrichte, werden oci und oci-cli nicht wie unten gezeigt angezeigt. Andere Pakete haben Abhängigkeiten, machen Sie sich also keine Sorgen, wenn sie alt sind.
(oracle-cli) [opc@hostname ~]$ pip3 list -o
Package         Version Latest Type
--------------- ------- ------ -----
arrow           0.10.0  0.15.4 wheel
click           6.7     7.0    wheel
configparser    3.5.0   4.0.2  wheel
cryptography    2.4.2   2.8    wheel
idna            2.6     2.8    wheel
jmespath        0.9.3   0.9.4  wheel
pyOpenSSL       18.0.0  19.1.0 wheel
python-dateutil 2.7.3   2.8.1  wheel
pytz            2016.10 2019.3 wheel
PyYAML          5.1.2   5.2    sdist
six             1.11.0  1.13.0 wheel
  1. Wenn eine neue Version veröffentlicht wird, können Sie sie mit dem folgenden Befehl aktualisieren.
(oracle-cli) [opc@hostname ~]$ pip3 install oci-cli --upgrade
  1. Deaktivieren Sie die virtuelle Umgebung und beenden Sie den Vorgang.
(oracle-cli) [opc@hostname ~]$ deactivate
[opc@hostname ~]$

6. OCI CLI-Update

Vorhin habe ich Ihnen gezeigt, wie Sie die OCI-CLI mit pip3 install oci-cli --upgrade aktualisieren. Tatsächlich gibt es die folgenden zwei Aktualisierungsmethoden.

  1. Installieren Sie das OCI CLI-Installationsprogramm erneut
  2. Aktualisieren Sie mit dem Befehl pip / pip3

Die Neuinstallation ist ein einzelner Befehl, daher werde ich die pip / pip3-Methode einschließlich der tatsächlichen Ausgabe einführen.

  1. Wechseln Sie in das Verzeichnis, in dem die OCI-CLI installiert ist.
$cd <Installationsverzeichnis>
  1. Aktivieren Sie die virtuelle Umgebung und suchen Sie nach neueren Versionen. In diesem Beispiel wird die neue Version angezeigt.
source lib/oracle-cli/bin/activate
pip3 list -o
---Ausgabe hier oder unten---
Package         Version Latest Type
--------------- ------- ------ -----
arrow           0.10.0  0.15.5 wheel
cffi            1.13.2  1.14.0 wheel
click           6.7     7.1.1  wheel
configparser    3.5.0   4.0.2  wheel
idna            2.6     2.9    wheel
jmespath        0.9.3   0.9.5  wheel
oci             2.10.2  2.12.1 Rad ★ Es gibt eine neue Version
oci-cli         2.9.0   2.9.7 Rad ★ Es gibt eine neue Version
pycparser       2.19    2.20   wheel
pyOpenSSL       18.0.0  19.1.0 wheel
python-dateutil 2.7.3   2.8.1  wheel
pytz            2016.10 2019.3 wheel
PyYAML          5.1.2   5.3.1  sdist
setuptools      45.1.0  46.1.1 wheel
six             1.11.0  1.14.0 wheel
  1. Aktualisieren Sie das Paket. Wenn am Ende die Meldung "Erfolgreich installiert" angezeigt wird, ist das Update erfolgreich.
pip3 install oci-cli --upgrade

Ein Teil der Ausgabe


Collecting oci-cli
  Downloading oci_cli-2.9.7-py2.py3-none-any.whl (7.5 MB)
     |████████████████████████████████| 7.5 MB 6.1 MB/s
Collecting configparser>=4.0.2
  Downloading configparser-4.0.2-py2.py3-none-any.whl (22 kB)
Requirement already satisfied, skipping upgrade: terminaltables==3.1.0 in ./lib/oracle-cli/lib/python3.6/site-packages (from oci-cli) (3.1.0)
Requirement already satisfied, skipping upgrade: certifi in ./lib/oracle-cli/lib/python3.6/site-packages (from oci-cli) (2019.11.28)
Requirement already satisfied, skipping upgrade: PyYAML==5.1.2 in ./lib/oracle-cli/lib/python3.6/site-packages (from oci-cli) (5.1.2)
Requirement already satisfied, skipping upgrade: retrying==1.3.3 in ./lib/oracle-cli/lib/python3.6/site-packages (from oci-cli) (1.3.3)
Requirement already satisfied, skipping upgrade: idna<2.7,>=2.5 in ./lib/oracle-cli/lib/python3.6/site-packages (from oci-cli) (2.6)
Requirement already satisfied, skipping upgrade: pytz>=2016.10 in ./lib/oracle-cli/lib/python3.6/site-packages (from oci-cli) (2016.10)
Collecting oci==2.12.0
  Downloading oci-2.12.0-py2.py3-none-any.whl (3.6 MB)
     |████████████████████████████████| 3.6 MB 2.3 MB/s
★ weggelassen
      Successfully uninstalled oci-cli-2.9.0
Successfully installed arrow-0.14.7 configparser-4.0.2 jmespath-0.9.4 oci-2.12.0 oci-cli-2.9.7 six-1.14.0
  1. Deaktivieren Sie abschließend die virtuelle Umgebung und Sie sind fertig.
(oracle-cli) [opc@hostname ~]$ deactivate
[opc@hostname ~]$

7. Zusammenfassung

  • Ab dem 13. Februar 2020 wird die von der OCI-CLI unterstützte Python-Version 3.5+ sein.
  • Um Python 3 mit Oracle Linux / CentOS 7 zu verwenden, wird das Standard-Repository "python3" empfohlen.
  • Sie können das OCI CLI-Installationsprogramm sowohl installieren als auch aktualisieren
  • OCI CLI ist in der virtuellen Python-Umgebung installiert

Recommended Posts