** J'ai mis à jour la CLI en pensant "Je n'ai pas mis à jour la CLI OCI récemment" **. Lorsque vous exécutez la CLI, un message surprenant s'affiche en rouge!
$ 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.
** Si vous réfléchissez calmement, la date limite de support pour Python 2 est jusqu'à fin mars 2020. ** **
** Oracle Linux 7 Python est la série 2.x. C'est pourquoi j'ai étudié les contre-mesures. ** **
$ python -V Python 2.7.5
1-1. TL;DR
Les personnes qui vont installer ** OCI CLI ** sur Oracle Linux 7 / CentOS 7
Les personnes qui utilisent déjà ** OCI CLI ** sur Oracle Linux 7 / CentOS 7 et doivent migrer vers Python 3
8 Linux, Ubuntu, Windows et Mac sont Python 3, donc ce problème n'affecte pas.
** Manuel japonais **
** Manuel en anglais **
Python 3 est requis pour utiliser l'interface de ligne de commande OCI. Cependant, la construction de l'environnement de Python est diversifiée et c'est une situation difficile pour les utilisateurs. Revenez à la vue d'ensemble et réfléchissez à la politique d'installation.
De nombreuses instructions sur l'installation de l'interface de ligne de commande OCI sont présentées dans le manuel ci-dessus et dans l'article suivant de Qiita. Il existe des différences subtiles, mais elles sont à peu près les mêmes.
Le problème est la construction de l'environnement Python. Il existe plusieurs façons d'utiliser Python 3 sur Oracle Linux 7 / CentOS 7 en premier lieu, et il existe également plusieurs façons de gérer les packages Python. Comme vous pouvez le voir dans le prochain article, la situation est extrêmement compliquée.
Cette fois, réfléchissons simplement et réduisons-nous dans les conditions suivantes.
Ensuite, je peux penser à la méthode suivante.
** Python 3.x n'est pas inclus dans le référentiel standard, donc si vous pensez que "Collections de logiciels" ou "EPEL", selon les sources d'actualités suivantes, la version 7.7 ou ultérieure (2019 / 8-) sera incluse dans le référentiel standard. ** **
Après vérification, il est inclus dans le référentiel standard (ol7_latest) comme suit. Dans le chapitre suivant, nous essaierons d'installer en utilisant ceci.
$ 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_dernier ★ ici
Installez Python 3 sur Oracle Linux 7. De plus, ** venv **, qui est pratique pour construire un environnement Python, sera expliqué.
L'interface de ligne de commande OCI utilise en interne ** venv / virtulenv ** pour gérer l'environnement virtuel Python. Par conséquent, l'utilisateur n'a pas besoin d'utiliser ** venv / virtulenv ** au moment de l'installation. </ font>
$ sudo yum install -y python3
$ python -V
Python 2.7.5
python3
comme suit.$ python3 -V
Python 3.6.8
$ ls -l /usr/bin/py*
-rwxr-xr-x.1 racine racine 78 5 décembre 10:34 /usr/bin/pydoc
lrwxrwxrwx.1 racine racine 8 24 décembre 16:08 /usr/bin/pydoc3 -> pydoc3.6
-rwxr-xr-x.1 racine racine 78 7 août 17:04 /usr/bin/pydoc3.6
lrwxrwxrwx.1 racine racine 7 24 décembre 13:08 /usr/bin/python -> python2
lrwxrwxrwx.1 racine racine 9 24 décembre 13:08 /usr/bin/python2 -> python2.7
-rwxr-xr-x.1 racine racine 7144 5 décembre 10:34 /usr/bin/python2.7
lrwxrwxrwx.1 racine racine 9 24 décembre 16:08 /usr/bin/python3 -> python3.6
-rwxr-xr-x.2 racine racine 11336 7 août 17:04 /usr/bin/python3.6
-rwxr-xr-x.2 racine racine 11336 7 août 17:04 /usr/bin/python3.6m
lrwxrwxrwx.1 racine racine 10 24 décembre 16:08 /usr/bin/pyvenv -> pyvenv-3.6
-rwxr-xr-x.1 racine racine 435 7 août 17:04 /usr/bin/pyvenv-3.6
** Attention **
Ne changez pas la destination du lien de / usr / bin / python
en python3
ici. C'est parce que de nombreuses commandes, y compris yum, dépendent de Python 2.x. Soyez prudent car les problèmes continueront si vous remplacez le lien symbolique. </ 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 a de nombreuses façons de gérer plusieurs packages Pythons et Python sur une seule machine. Cette fois, je présenterai ** venv **, qui est le plus standard et utilise également le programme d'installation de l'interface CLI OCI. ** venv ** est une fonctionnalité standard du ** virtualenv ** traditionnel de Python 3.3.
Je suis confus par un mélange de ** venv ** et ** pyvenv **, mais les deux sont identiques ** venv **. pyvenv est un script qui exploite venv et est actuellement obsolète. 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.
Voici comment utiliser ** venv **:
** Créer un environnement virtuel **
python3 -m venv <nom du chemin de l'environnement>
** Activer l'environnement virtuel **
source <nom du chemin de l'environnement>/bin/activate
** Désactiver l'environnement virtuel **
deactivate
Ce travail n'est pas nécessaire à l'installation de l'interface de ligne de commande OCI, mais il sera utilisé dans l'enquête décrite plus loin, donc il sera expliqué. </ font>
$ 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
C'est la connaissance de base de l'environnement virtuel de Python. Ensuite, installez / mettez à jour l'interface de ligne de commande OCI.
Installez ensuite l'interface de ligne de commande OCI. Vous devez avoir accès à Internet pour exécuter le programme d'installation de l'interface CLI OCI.
Installez l'interface de ligne de commande OCI. Même si vous utilisez déjà l'interface de ligne de commande OCI avec Python 2.x, vous devrez réinstaller la bibliothèque Python car elle est installée dans un emplacement différent. Cependant, le fichier de configuration sous $ HOME / .oci
peut être utilisé tel quel.
$ 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):★ Entrez y
Après cela, il vous sera demandé de saisir certaines informations, mais vous pouvez utiliser la "touche de retour".
Une fois terminé, la sortie sera la suivante.
-- ** Run `exec -l $SHELL` to restart your shell. **
--
-- Installation successful.
-- Run the CLI with /home/opc/bin/oci --help
$ HOME / .bashrc
prenne effet.$ 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
Vous n'avez rien à faire lors de la mise à jour à partir de Python 2. Le fichier de configuration sous $ HOME / .oci
peut être utilisé tel quel. Si l'installation réussit, le message d'avertissement introduit au début ne s'affichera pas même si l'interface de ligne de commande OCI est exécutée.
Pour une nouvelle installation, reportez-vous à la page suivante pour le paramétrage.
J'ai expliqué l'environnement virtuel de Python, alors vérifions-le. La CLI OCI est installée dans $ HOME / lib / oracle-cli
.
$ 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: ** Vous pouvez également utiliser pip
au lieu de pip3
dans un environnement virtuel. Les deux ont la même sortie, mais lorsque vous activez l'environnement virtuel, vous pouvez utiliser le pip
installé dans l'environnement virtuel. Il n'y a pas de pip
dans / usr / bin.
$ 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 ★ Il n'y a pas de 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 ~]$
Plus tôt, je vous ai montré comment mettre à jour la CLI OCI avec pip3 install oci-cli --upgrade
. En fait, il existe les deux méthodes de mise à jour suivantes.
La réinstallation est une commande one-shot, donc je vais vous présenter la méthode pip / pip3, y compris la sortie réelle.
$cd <répertoire d'installation>
source lib/oracle-cli/bin/activate
pip3 list -o
---Sortie ici ou ci-dessous---
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 roue ★ Il existe une nouvelle version
oci-cli 2.9.0 2.9.7 roues ★ Il y a une nouvelle 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
Une partie de la sortie
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
★ Omis
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 ~]$
python3
est recommandé.Recommended Posts