** 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
Personen, die ** OCI CLI ** unter Oracle Linux 7 / CentOS 7 installieren werden
Personen, die bereits ** OCI CLI ** unter Oracle Linux 7 / CentOS 7 verwenden und auf Python 3 migrieren müssen
8 Linux, Ubuntu, Windows und Mac sind Python 3, daher hat dieses Problem keine Auswirkungen.
** Japanisches Handbuch **
** Englisches Handbuch **
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.
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.
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
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>
$ sudo yum install -y python3
$ python -V
Python 2.7.5
$ python3 -V
Python 3.6.8
$ 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>
$ 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
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
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>
oci_cli
ist der Name des Verzeichnisses, das die virtuelle Umgebung erstellt, und kann eine andere Zeichenfolge sein.$ python3 -m venv oci_cli
$ ls -d oci_cli/*
oci_cli/bin oci_cli/include oci_cli/lib oci_cli/lib64 oci_cli/pyvenv.cfg
$ source oci_cli/bin/activate
(oci_cli) [opc@hostname ~]$
(oci_cli) [opc@hostname ~]$ python -V
Python 3.6.8
(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.
Installieren Sie dann die OCI-CLI. Sie müssen Zugriff auf das Internet haben, um das OCI CLI-Installationsprogramm ausführen zu können.
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.
$ bash -c "$(curl -L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)"
===> 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
Danach werden Sie aufgefordert, einige Informationen einzugeben. Sie können jedoch auch die Taste "Alle zurückgeben" verwenden.
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
$ HOME / .bashrc
hinzugefügte Inhalt wirksam wird.$ exec -l $SHELL
$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"
$ oci --version
2.7.0
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.
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.
$ pip3 list --format=columns
Package Version
---------- -------
pip 9.0.3
setuptools 39.2.0
$ source lib/oracle-cli/bin/activate
(oracle-cli) [opc@hostname ~]$
(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
(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
(oracle-cli) [opc@hostname ~]$ pip3 install oci-cli --upgrade
(oracle-cli) [opc@hostname ~]$ deactivate
[opc@hostname ~]$
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.
Die Neuinstallation ist ein einzelner Befehl, daher werde ich die pip / pip3-Methode einschließlich der tatsächlichen Ausgabe einführen.
$cd <Installationsverzeichnis>
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
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
(oracle-cli) [opc@hostname ~]$ deactivate
[opc@hostname ~]$
Recommended Posts