Pythian Blog: Technical Track

Installing OCI Command Line Utilities in Linux and Windows

As part of a recent project, I installed the Oracle Cloud command line utilities (oci) on the following Linux systems:
  • Ubuntu Server 20.04 LTS
  • Oracle Linux 7.5

Installing on Ubuntu

Because the plan was to install oci on a few systems, I wanted the ability to simply copy-and-paste a command line, or ssh with the command and let it run. Note: Oracle recommends not directly installing the oci tools, but rather using virtualenv (as described here). In the case of these test servers, I do want to globally install the oci utilities, and therefore won't be using virtualenv. It's worth noting that the recommendation to use virtualenv seems to be a recent development. My colleague Nelson Calero reviewed the documentation in the Wayback Machine, and found that the recommendation for virtualenv doesn't appear in the most recent snapshot of the documentation. The simplest way to install oci is through pip, as shown in the documentation: wget https://codeload.github.com/oracle/oci-cli/zip/master -O oci-cli.zip Install pip if necessary: apt install -y python3-pip Then, download and install oci: wget https://codeload.github.com/oracle/oci-cli/zip/master -O oci-cli.zip Or: curl https://codeload.github.com/oracle/oci-cli/zip/master -o oci-cli.zip pip3 install oci-cli.zip While that did indeed work, the cx_Oracle package was not installed. cx_Oracle is the Python package that allows connection to Oracle databases directly from a Python script. Rather than separately installing cx_Oracle, I decided to use another installation method, as described in Installing the CLI. This is the installation method as described in the documentation for Linux, Unix, and MacOS. bash -c "$(curl -L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)" I don't know how everyone else feels about this, but I kind of cringe every time I see this installation pattern:
"Here's a shell script, just download and run it, all in one command."
If you're like me and somewhat paranoid, you'll do it this way (or similar) instead. curl https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh -o install.sh Or: wget https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh -O install.sh Now, have a look at the file. When you're satisfied the script is what you expected, you can then run it. However, running the oci installer requires the correct version of Python. What is the "correct" version, you ask? You won't know until you run the installer. However, it'll likely work just fine. From the current version of the script:
"System version of Python must be either a Python 2 version >= 2.7.5 or a Python 3 version >= 3.5.0."
First, I tried installing oci on Ubuntu 20.04 LTS. The oci installer failed right after displaying the list of extensions that might be installed:
bash install.sh
 
 ===> Currently supported optional packages are: ['db (will install cx_Oracle)']
 What optional CLI packages would you like to be installed (comma separated names; press enter if you don't need any optional packages)?:
 -- The optional packages installed will be ''.
 -- Trying to use python3 venv.
 -- Executing: ['/usr/bin/python3', '-m', 'venv', '/opt/oracle/cli']
 The virtual environment was not created successfully because ensurepip is not
 available. On Debian/Ubuntu systems, you need to install the python3-venv
 package using the following command.
 
 apt-get install python3-venv
 ...
 
Fortunately, it describes how to correct the error: As root: apt install -y python3-venv Apparently, the virtual environment is a dependency, even if I won't be using it. It'll also be necessary to have the Python development headers for the "db" option, which installs cx_Oracle. The following command installs pip as well as the two dependencies: apt install -y python3-pip python3-venv python3-dev Now, let's try again. Note that I wanted to skip all the user prompts and used "install.sh -h" (not reproduced here) to see which options to use to accomplish this. Here is the command line I used:
bash oci-cli-installer.sh --optional-features db \
 --install-dir /opt/oracle/cli \
 --exec-dir /usr/local/bin \
 --dry-run
Why did I use --dry-run? Because there didn't seem to be an option to indicate where the cli scripts should be installed. I had previously run the install.sh script in interactive mode and I was prompted where the oci scripts should be installed. The install.sh script does not have an option for this, so I wanted to see if there would again be a prompt for this when using the command-line options. Sure enough, there was a prompt for the oci script location:
root@ubuntu-mule-03:~/build/oci# bash oci-cli-installer.sh --optional-features db \
 > --install-dir /opt/oracle/cli \
 > --exec-dir /usr/local/bin \
 > --dry-run
 
  ******************************************************************************
  You have started the OCI CLI Installer in interactive mode. If you do not wish
  to run this in interactive mode, please include the --accept-all-defaults option.
  If you have the script locally and would like to know more about
  input options for this script, then you can run:
  ./install.sh -h
  If you would like to know more about input options for this script, refer to:
  https://github.com/oracle/oci-cli/blob/master/scripts/install/README.rst
  ******************************************************************************
 Downloading Oracle Cloud Infrastructure CLI install script from https://raw.githubusercontent.com/oracle/oci-cli/v2.9.3/scripts/install/install.py to /tmp/oci_cli_install_tmp_KPre.
 ################################################################################################################################################################################### 100.0%
 Python not found on system PATH
 Running install script.
 python3 /tmp/oci_cli_install_tmp_KPre --optional-features db --install-dir /opt/oracle/cli --exec-dir /usr/local/bin --dry-run
 -- Verifying Python version.
 -- Python version 3.8.2 okay.
 
 ===> In what directory would you like to place the OCI scripts? (leave blank to use '/root/bin/oci-cli-scripts'):
 
Installing the oci scripts in a /root directory is clearly not appropriate when trying to install for all users. And, because I want to run this without any interaction, this will not do. Documentation for the install.sh script is located at https://github.com/oracle/oci-cli/blob/master/scripts/install/README.rst. There's no information about an option that specifies where the cli scripts should be installed, nor could I find one in the script itself. The shell script is used to collect the defaults for the actual installer, which is a Python script. To get this done, I see these two choices:
  • Run the install.sh script interactively.
  • Download the Python install script and modify it.
After looking at the Python source for install.py, it's clear there isn't an option to specify a location for the oci scripts. So, I added one. In short, the process for that is as follows:
  • Fork the github repository.
  • Clone my forked repository locally on my workstation.
  • Make the required modifications.
  • Create a pull request to get the changes added to the master repository.
That's just an overview. There are a few more details involved. The option --script-dir was added to avoid the prompt for the script directory location. You can find the script at https://github.com/jkstill/oci-cli/blob/script-dir-option/scripts/install/install.py. Note #1: That location will eventually change. Go to https://github.com/jkstill/oci-cli/ or https://github.com/oracle/oci-cli/ to find the script if the URL above no longer works. Note #2: A pull request will be created for this change after Oracle approves me as a contributor. Now, I'll look at the help with the --script-dir option added:
root@ubuntu-mule-03:~/build/oci# python3 install.py --help
 usage: install.py [-h] [--accept-all-defaults] [--optional-features OPTIONAL_FEATURES] [--install-dir INSTALL_DIR] [--exec-dir EXEC_DIR] [--script-dir SCRIPT_DIR]
  [--update-path-and-enable-tab-completion] [--rc-file-path RC_FILE_PATH] [--oci-cli-version OCI_CLI_VERSION] [--dry-run] [--verify-native-dependencies]
 
 Install Oracle Cloud Infrastructure CLI.
 
 optional arguments:
  -h, --help show this help message and exit
  --accept-all-defaults
  If this flag is specified, no user prompts will be displayed and all default prompt responses will be used. This flag can be used in combination with other input
  parameters/flags. When used with other parameters/flags, other parameter values mentioned on command line take precedence over default values.
  --optional-features OPTIONAL_FEATURES
  This input param is used to specify any optional features that need to be installed as part of OCI CLI install .e.g. to run dbaas script 'create_backup_from_onprem', users
  need to install optional "db" feature which will install dependent cxOracle package. Use this optional input param as follows: --optional-features feature1,feature2
  --install-dir INSTALL_DIR
  This input parameter allows the user to specify the directory where CLI installation is done.
  --exec-dir EXEC_DIR This input parameter allows the user to specify the directory where CLI executable is stored.
  --script-dir SCRIPT_DIR
  This input parameter allows the user to specify the directory where CLI scripts are stored.
  --update-path-and-enable-tab-completion
  If this flag is specified, the PATH environment variable is updated to include CLI executable and tab auto completion of CLI commands is enabled. It does require rc file
  path in *NIX systems which can be either given interactively or using the --rc-file-path option
  --rc-file-path RC_FILE_PATH
  This input param is used in *NIX systems to update the corresponding shell rc file with command auto completion and modification to PATH environment variable with CLI
  executable path. It requires shell's rc file path. e.g. ~/.bashrc. Ideally, should be used with the --update-path-and-enable-tab-completion option
  --oci-cli-version OCI_CLI_VERSION
  The pip version of CLI to install.
  --dry-run Do not install virtualenv or CLI but go through the motions.
  --verify-native-dependencies
  Check whether linux native dependencies are available to compile modules like cryptography. This option is deprecated in version 2.9.7 and will be removed soon.
 
Again, I'll try a dry run:
python3 install.py --optional-features db \
  --install-dir /opt/oracle/cli \
  --exec-dir /usr/local/bin \
  --script-dir /opt/oracle/cli/scripts \
  --update-path-and-enable-tab-completion \
  --rc-file-path /etc/bash.bashrc \
  --dry-run
 
 
  root@ubuntu-mule-03:~/build/oci# python3 install.py --optional-features db \
 > --install-dir /opt/oracle/cli \
 > --exec-dir /usr/local/bin \
 > --script-dir /opt/oracle/cli/scripts \
 > --update-path-and-enable-tab-completion \
 > --rc-file-path /etc/bash.bashrc
 > --dry-run
 -- Verifying Python version.
 -- Python version 3.8.2 okay.
 -- dry-run: Skipping virtualenv setup
 -- dry-run: Skipping CLI install, cmd=['/opt/oracle/cli/bin/pip', 'install', '--cache-dir', '/tmp/tmp5nm_wxbq', 'oci_cli[db]', '--upgrade']
 -- dry-run: Skipping copying files to Scripts/bin directories.
 -- dry-run: exec_dir=/usr/local/bin
 -- dry-run: Skipping handle_path_and_tab_completion
 -- dry-run: update_path_and_enable_tab_completion=False
 -- dry-run: rc_file_path=/etc/bash.bashrc
 -- Installation successful.
 -- Run the CLI with /usr/local/bin/oci --help
 
Everything looks OK, so now I'll perform the installation:
python3 install.py --optional-features db \
  --install-dir /opt/oracle/cli \
  --exec-dir /usr/local/bin \
  --script-dir /opt/oracle/cli/scripts \
  --update-path-and-enable-tab-completion \
  --rc-file-path /etc/bash.bashrc
(There was a lot of output, and it's not shown here.) Verify the results:
root@ubuntu-mule-03:~/build/oci# oci --version
 2.10.3

Installing on Oracle Linux

You might expect that you can easily install the oci cli utility through yum on Oracle Linux 7.5. However, this is not the case:
[root@ora75 ~]# yum install -y oci-utils
 Loaded plugins: langpacks, ulninfo
 Resolving Dependencies
 --> Running transaction check
 ---> Package oci-utils.noarch 0:0.10.1-9.el7 will be installed
 --> Processing Dependency: python-daemon for package: oci-utils-0.10.1-9.el7.noarch
 --> Finished Dependency Resolution
 Error: Package: oci-utils-0.10.1-9.el7.noarch (ol7_developer)
  Requires: python-daemon
  You could try using --skip-broken to work around the problem
 
There's a missing dependency on something called python-daemon. So, I tried to install that, after enabling optional and add-on repositories in yum:
root@ora75 yum.repos.d]# yum install -y python-daemon
 Loaded plugins: langpacks, ulninfo
 No package python-daemon available.
It seems that python-daemon is installed through pip:
[root@ora75 yum.repos.d]# pip3 install python-daemon
 WARNING: Running pip install with root privileges is generally not a good idea. Try `pip3 install --user` instead.
 Requirement already satisfied: python-daemon in /usr/local/lib/python3.6/site-packages
 Requirement already satisfied: setuptools in /usr/lib/python3.6/site-packages (from python-daemon)
 Requirement already satisfied: lockfile>=0.10 in /usr/local/lib/python3.6/site-packages (from python-daemon)
 Requirement already satisfied: docutils in /usr/local/lib/python3.6/site-packages (from python-daemon)
 
Apparently, python-daemon is already installed. So, now I do not know what the problem is, and I don't really want to spend time troubleshooting it. If I were configuring a large number of production systems, I might take the time to learn how to fix this, if it would also install cx_Oracle. However, these are just test servers, and it's not necessary to spend time on that. Instead, I'll use the same method that was used for the Ubuntu servers. I retrieved the modified version of install.py and ran it: Note: The argument for --rc-file-path is different on RedHat Linux than it is on Ubuntu.
python3 install.py --optional-features db \
  --install-dir /opt/oracle/cli \
  --exec-dir /usr/local/bin \
  --script-dir /opt/oracle/cli/scripts \
  --update-path-and-enable-tab-completion \
  --rc-file-path /etc/bashrc
 
The command ran flawlessly:
[root@ora75 oci-cli]# python3 install.py --optional-features db --install-dir /opt/oracle/cli --exec-dir /usr/local/bin --script-dir /opt/oracle/cli/scripts --update-path-and-enable-tab-completion --rc-file-path /etc/bashrc
 -- Verifying Python version.
 -- Python version 3.6.8 okay.
 -- Creating directory '/opt/oracle/cli'.
 -- Creating directory '/opt/oracle/cli/scripts'.
 -- Trying to use python3 venv.
 -- Executing: ['/usr/bin/python3', '-m', 'venv', '/opt/oracle/cli']
 -- Executing: ['/opt/oracle/cli/bin/pip', 'install', '--upgrade', 'pip']
 Collecting pip
  Downloading https://files.pythonhosted.org/packages/54/2e/df11ea7e23e7e761d484ed3740285a34e38548cf2bad2bed3dd5768ec8b9/pip-20.1-py2.py3-none-any.whl (1.5MB)
  100% |------------------------| 1.5MB 1.1MB/s 
 Installing collected packages: pip
  Found existing installation: pip 9.0.3
  Uninstalling pip-9.0.3:
  Successfully uninstalled pip-9.0.3
 Successfully installed pip-20.1
 -- Executing: ['/opt/oracle/cli/bin/pip', 'install', '--cache-dir', '/tmp/tmpdv0oh45p', 'wheel', '--upgrade']
 Collecting wheel
  Downloading wheel-0.34.2-py2.py3-none-any.whl (26 kB)
 Installing collected packages: wheel
 Successfully installed wheel-0.34.2
 -- Executing: ['/opt/oracle/cli/bin/pip', 'install', '--cache-dir', '/tmp/tmpdv0oh45p', 'oci_cli[db]', '--upgrade']
 Collecting oci_cli[db]
  Downloading oci_cli-2.10.3-py2.py3-none-any.whl (8.2 MB)
  |------------------------|8.2 MB 1.8 MB/s 
 Collecting arrow==0.14.7
  Downloading arrow-0.14.7-py2.py3-none-any.whl (39 kB)
 Collecting jmespath==0.9.4
  Downloading jmespath-0.9.4-py2.py3-none-any.whl (24 kB)
 Collecting pytz>=2016.10
  Downloading pytz-2020.1-py2.py3-none-any.whl (510 kB)
  |------------------------| 510 kB 59.4 MB/s 
 Collecting pyOpenSSL==18.0.0
  Downloading pyOpenSSL-18.0.0-py2.py3-none-any.whl (53 kB)
  |------------------------| 53 kB 880 kB/s 
 Collecting six==1.14.0
  Downloading six-1.14.0-py2.py3-none-any.whl (10 kB)
 Collecting PyYAML==5.1.2
  Downloading PyYAML-5.1.2.tar.gz (265 kB)
  |------------------------| 265 kB 52.5 MB/s 
 Collecting python-dateutil<3.0.0,>=2.5.3
  Downloading python_dateutil-2.8.1-py2.py3-none-any.whl (227 kB)
  |------------------------| 227 kB 60.5 MB/s 
 Collecting certifi
  Downloading certifi-2020.4.5.1-py2.py3-none-any.whl (157 kB)
  |------------------------| 157 kB 43.3 MB/s 
 Collecting terminaltables==3.1.0
  Downloading terminaltables-3.1.0.tar.gz (12 kB)
 Collecting idna<2.7,>=2.5
  Downloading idna-2.6-py2.py3-none-any.whl (56 kB)
  |------------------------| 56 kB 4.4 MB/s 
 Collecting oci==2.14.2
  Downloading oci-2.14.2-py2.py3-none-any.whl (4.3 MB)
  |------------------------| 4.3 MB 15.5 MB/s 
 Collecting configparser==4.0.2
  Downloading configparser-4.0.2-py2.py3-none-any.whl (22 kB)
 Collecting click==6.7
  Downloading click-6.7-py2.py3-none-any.whl (71 kB)
  |------------------------| 71 kB 10.0 MB/s 
 Collecting retrying==1.3.3
  Downloading retrying-1.3.3.tar.gz (10 kB)
 Collecting cryptography==2.8
  Downloading cryptography-2.8-cp34-abi3-manylinux2010_x86_64.whl (2.3 MB)
  |------------------------| 2.3 MB 47.1 MB/s 
 Collecting cx-Oracle==7.0; extra == "db"
  Downloading cx_Oracle-7.0.0-cp36-cp36m-manylinux1_x86_64.whl (675 kB)
  |------------------------| 675 kB 48.8 MB/s 
 Collecting cffi!=1.11.3,>=1.8
  Downloading cffi-1.14.0-cp36-cp36m-manylinux1_x86_64.whl (399 kB)
  |------------------------| 399 kB 37.9 MB/s 
 Collecting pycparser
  Downloading pycparser-2.20-py2.py3-none-any.whl (112 kB)
  |------------------------| 112 kB 34.9 MB/s 
 Building wheels for collected packages: PyYAML, terminaltables, retrying
  Building wheel for PyYAML (setup.py) ... done
  Created wheel for PyYAML: filename=PyYAML-5.1.2-cp36-cp36m-linux_x86_64.whl size=44104 sha256=c054ec577f2f48663b8771c9762fdd48b35a7b8d2657c658913cb0b7b6390bcf
  Stored in directory: /tmp/tmpdv0oh45p/wheels/d8/9b/e7/75af463b873c119dd444151fc54a8e190c87993593e1fa194a
  Building wheel for terminaltables (setup.py) ... done
  Created wheel for terminaltables: filename=terminaltables-3.1.0-py3-none-any.whl size=15354 sha256=ab42cd7837957cc71cfde2df316283b8bb3251be26f393c6c14c2e91c5864be9
  Stored in directory: /tmp/tmpdv0oh45p/wheels/86/1b/58/c23af2fe683acd8edc15d5a1268f0242be1ff2cf827fe34737
  Building wheel for retrying (setup.py) ... done
  Created wheel for retrying: filename=retrying-1.3.3-py3-none-any.whl size=11430 sha256=41f75f23c5d9fd38fa2df4e5c4f91afd5f9e5e12c5b8de65d51087ff67b23cae
  Stored in directory: /tmp/tmpdv0oh45p/wheels/ac/cb/8a/b27bf6323e2f4c462dcbf77d70b7c5e7868a7fbe12871770cf
 Successfully built PyYAML terminaltables retrying
 Installing collected packages: six, python-dateutil, arrow, jmespath, pytz, pycparser, cffi, cryptography, pyOpenSSL, PyYAML, certifi, terminaltables, idna, configparser, oci, click, retrying, cx-Oracle, oci-cli
 Successfully installed PyYAML-5.1.2 arrow-0.14.7 certifi-2020.4.5.1 cffi-1.14.0 click-6.7 configparser-4.0.2 cryptography-2.8 cx-Oracle-7.0.0 idna-2.6 jmespath-0.9.4 oci-2.14.2 oci-cli-2.10.3 pyOpenSSL-18.0.0 pycparser-2.20 python-dateutil-2.8.1 pytz-2020.1 retrying-1.3.3 six-1.14.0 terminaltables-3.1.0
 -- Backed up '/etc/bashrc' to '/etc/bashrc.backup'
 -- Tab completion set up complete.
 -- If tab completion is not activated, verify that '/etc/bashrc' is sourced by your shell.
 -- 
 -- ** Run `exec -l $SHELL` to restart your shell. **
 -- 
 -- Installation successful.
 -- Run the CLI with /usr/local/bin/oci --help
Using my own account, I'll verify the successful installation:
jkstill@ubuntu-20lts-template:~$ oci --version
 2.10.3
 

Installing on Windows

Installing the oci client on Windows was the easiest of all. However, the cx_Oracle package was not installed. Because I don't need it here, I didn't look for a method to install it. Note: I installed oci on Windows just to ensure it works (I won't be using it on Windows). Start by running PowerShell as Administrator on Windows 10. Note: I followed the instructions exactly as shown in the documentation, and accepted default values for all the prompts. First, allow the script to run:
PS C:\Windows\system32> Set-ExecutionPolicy RemoteSigned
 you to the security risks described in the about_Execution_Policies help topic at
 https:/go.microsoft.com/fwlink/?LinkID=135170. Do you want to change the execution policy?
 [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"): A
 PS C:\Windows\system32>
 
Then, run the installer:
PS C:\Windows\system32> powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.ps1'))"
 
  ******************************************************************************
  You have started the OCI CLI Installer in interactive mode. If you do not wish
  to run this in interactive mode, please include the -AcceptAllDefaults option.
  If you have the script locally and would like to know more about
  input options for this script, then you can run:
  help .\install.ps1
  If you would like to know more about input options for this script, refer to:
  https://github.com/oracle/oci-cli/blob/master/scripts/install/README.rst
  ******************************************************************************
 VERBOSE: Python found in registry: HKCU:\Software\Python\PythonCore
 VERBOSE: Downloading install script to C:\Users\jaredstill\AppData\Local\Temp\tmp6D4A.tmp
 VERBOSE: False False
 VERBOSE: Using Python executable: C:\Python37\python.exe to run install script...
 VERBOSE: Arguments to python script: "C:\Users\jaredstill\AppData\Local\Temp\tmp6D4A.tmp"
 -- Verifying Python version.
 -- Python version 3.7.2 okay.
 
 ===> In what directory would you like to place the install? (leave blank to use 'C:\Users\jaredstill\lib\oracle-cli'):
 -- Creating directory 'C:\Users\jaredstill\lib\oracle-cli'.
 -- We will install at 'C:\Users\jaredstill\lib\oracle-cli'.
 
 ===> In what directory would you like to place the 'oci.exe' executable? (leave blank to use 'C:\Users\jaredstill\bin'):
 -- Creating directory 'C:\Users\jaredstill\bin'.
 -- The executable will be in 'C:\Users\jaredstill\bin'.
 
 ===> In what directory would you like to place the OCI scripts? (leave blank to use 'C:\Users\jaredstill\bin\oci-cli-scripts'):
 -- Creating directory 'C:\Users\jaredstill\bin\oci-cli-scripts'.
 -- The scripts will be in 'C:\Users\jaredstill\bin\oci-cli-scripts'.
 
 ===> Currently supported optional packages are: ['db (will install cx_Oracle)']
 What optional CLI packages would you like to be installed (comma separated names; press enter if you don't need any optional packages)?:
 -- The optional packages installed will be ''.
 -- Trying to use python3 venv.
 -- Executing: ['C:\\Python37\\python.exe', '-m', 'venv', 'C:\\Users\\jaredstill\\lib\\oracle-cli']
 -- Executing: ['C:\\Users\\jaredstill\\lib\\oracle-cli\\Scripts\\pip', 'install', '--cache-dir', 'C:\\Users\\JAREDS~1\\AppData\\Local\\Temp\\tmpcovdle8g', 'oci_cli', '--upgrade']
 Collecting oci_cli
  Downloading https://files.pythonhosted.org/packages/23/cf/8a3536b5b70157b85bd39c1c9f4c21222705dfa2e014fbe5404ba741dddf/oci_cli-2.10.3-py2.py3-none-any.whl (8.2MB)
  100% |------------------------| 8.2MB 5.5MB/s
 Collecting click==6.7 (from oci_cli)
  Downloading https://files.pythonhosted.org/packages/34/c1/8806f99713ddb993c5366c362b2f908f18269f8d792aff1abfd700775a77/click-6.7-py2.py3-none-any.whl (71kB)
  100% |------------------------| 71kB 7.3MB/s
 Collecting oci==2.14.2 (from oci_cli)
  Downloading https://files.pythonhosted.org/packages/ce/a0/7e6d38ff2c3314d29738765bdb93f951a9cb63051b8d8e937e6e2a1becba/oci-2.14.2-py2.py3-none-any.whl (4.3MB)
  100% |------------------------| 4.3MB 7.0MB/s
 Collecting pytz>=2016.10 (from oci_cli)
  Downloading https://files.pythonhosted.org/packages/4f/a4/879454d49688e2fad93e59d7d4efda580b783c745fd2ec2a3adf87b0808d/pytz-2020.1-py2.py3-none-any.whl (510kB)
  100% |------------------------| 512kB 15.1MB/s
 Collecting certifi (from oci_cli)
  Downloading https://files.pythonhosted.org/packages/57/2b/26e37a4b034800c960a00c4e1b3d9ca5d7014e983e6e729e33ea2f36426c/certifi-2020.4.5.1-py2.py3-none-any.whl (157kB)
  100% |------------------------| 163kB 11.7MB/s
 Collecting configparser==4.0.2 (from oci_cli)
  Downloading https://files.pythonhosted.org/packages/7a/2a/95ed0501cf5d8709490b1d3a3f9b5cf340da6c433f896bbe9ce08dbe6785/configparser-4.0.2-py2.py3-none-any.whl
 Collecting cryptography==2.8 (from oci_cli) Downloading https://files.pythonhosted.org/packages/a4/9c/9ad11ad293bb75d37fa63a0d1f47ae7f6ccda32bc7452bf2ffb788ca753f/cryptography-2.8-cp37-cp37m-win_amd64.whl (1.5MB) 100% |------------------------| 1.5MB 8.1MB/s Collecting idna<2.7,>=2.5 (from oci_cli) Downloading https://files.pythonhosted.org/packages/27/cc/6dd9a3869f15c2edfab863b992838277279ce92663d334df9ecf5106f5c6/idna-2.6-py2.py3-none-any.whl (56kB)
  100% |------------------------| 61kB 6.3MB/s
 Collecting six==1.14.0 (from oci_cli)
  Downloading https://files.pythonhosted.org/packages/65/eb/1f97cb97bfc2390a276969c6fae16075da282f5058082d4cb10c6c5c1dba/six-1.14.0-py2.py3-none-any.whl
 Collecting python-dateutil<3.0.0,>=2.5.3 (from oci_cli)
  Downloading https://files.pythonhosted.org/packages/d4/70/d60450c3dd48ef87586924207ae8907090de0b306af2bce5d134d78615cb/python_dateutil-2.8.1-py2.py3-none-any.whl (227kB)
  100% |------------------------| 235kB 13.1MB/s
 Collecting terminaltables==3.1.0 (from oci_cli)
  Downloading https://files.pythonhosted.org/packages/9b/c4/4a21174f32f8a7e1104798c445dacdc1d4df86f2f26722767034e4de4bff/terminaltables-3.1.0.tar.gz
 Collecting arrow==0.14.7 (from oci_cli)
  Downloading https://files.pythonhosted.org/packages/b9/26/aff20e20eb4fc8f9cbe60434494b53b8cc327062585517461bfdff76125f/arrow-0.14.7-py2.py3-none-any.whl
 Collecting retrying==1.3.3 (from oci_cli)
  Downloading https://files.pythonhosted.org/packages/44/ef/beae4b4ef80902f22e3af073397f079c96969c69b2c7d52a57ea9ae61c9d/retrying-1.3.3.tar.gz
 Collecting PyYAML==5.1.2 (from oci_cli)
  Downloading https://files.pythonhosted.org/packages/bc/3f/4f733cd0b1b675f34beb290d465a65e0f06b492c00b111d1b75125062de1/PyYAML-5.1.2-cp37-cp37m-win_amd64.whl (215kB)
  100% |------------------------| 225kB 6.6MB/s
 Collecting jmespath==0.9.4 (from oci_cli)
  Downloading https://files.pythonhosted.org/packages/83/94/7179c3832a6d45b266ddb2aac329e101367fbdb11f425f13771d27f225bb/jmespath-0.9.4-py2.py3-none-any.whl
 Collecting pyOpenSSL==18.0.0 (from oci_cli)
  Downloading https://files.pythonhosted.org/packages/96/af/9d29e6bd40823061aea2e0574ccb2fcf72bfd6130ce53d32773ec375458c/pyOpenSSL-18.0.0-py2.py3-none-any.whl (53kB)
  100% |------------------------| 61kB 7.9MB/s
 Collecting cffi!=1.11.3,>=1.8 (from cryptography==2.8->oci_cli)
  Downloading https://files.pythonhosted.org/packages/cf/d6/77bafa8180a8ec309a5300296f2855f7d58c0530d2e4a39064ae8ab42e4e/cffi-1.14.0-cp37-cp37m-win_amd64.whl (176kB)
  100% |------------------------| 184kB 13.1MB/s
 Collecting pycparser (from cffi!=1.11.3,>=1.8->cryptography==2.8->oci_cli)
  Downloading https://files.pythonhosted.org/packages/ae/e7/d9c3a176ca4b02024debf82342dab36efadfc5776f9c8db077e8f6e71821/pycparser-2.20-py2.py3-none-any.whl (112kB)
  100% |------------------------| 112kB 9.5MB/s
 Installing collected packages: click, pytz, certifi, configparser, pycparser, cffi, six, cryptography, python-dateutil, pyOpenSSL, oci, idna, terminaltables, arrow, retrying, PyYAML, jmespath, oci-cli
  Running setup.py install for terminaltables ... done
  Running setup.py install for retrying ... done
 Successfully installed PyYAML-5.1.2 arrow-0.14.7 certifi-2020.4.5.1 cffi-1.14.0 click-6.7 configparser-4.0.2 cryptography-2.8 idna-2.6 jmespath-0.9.4 oci-2.14.2 oci-cli-2.10.3 pyOpenSSL-18.0.0 pycparser-2.20 python-dateutil-2.8.1 pytz-2020.1 retrying-1.3.3 six-1.14.0 terminaltables-3.1.0
 You are using pip version 18.1, however version 20.1 is available.
 You should consider upgrading via the 'python -m pip install --upgrade pip' command.
 
 ===> Modify PATH to include the CLI and enable tab completion in PowerShell now? (Y/n):
 --
 -- ** Close and re-open PowerShell to reload changes to your PATH **
 -- In order to run the autocomplete script, you may also need to set your PowerShell execution policy to allow for running local scripts (as an Administrator run Set-ExecutionPolicy RemoteSigned in a PowerShell prompt)
 --
 -- Installation successful.
 -- Run the CLI with C:

No Comments Yet

Let us know what you think

Subscribe by email