v3.50.2 Install fails for root on ubuntu 24.04.1 server
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 669
- Forks
- 236
- Avg merge
- 1m
- Merged PRs (30d)
- 4
Description
I'm trying to install oci-cli (v3.50.2) on an ubuntu 24.04.1 server, as the root user.
I'm using the OCI Compute image with ID ocid1.image.oc1.ap-sydney-1.aaaaaaaabren6pndzvk3zx6yvsrlvuytl252gfffngbmdnnqiju2ns3n53mq (the November 20, 2024 image found here ).
I'm installing the install as part of cloud-init, which runs as the root user. The goal is for it to download some scripts from an object-store bucket, to bootstrap the system.
Interestingly, it installs without issue when I installed it manually as a non-root user.
As root user, running bash -c "$(curl -L https://raw.githubusercontent.com/oracle/oci-cli/refs/tags/v3.50.2/scripts/install/install.sh)" -- --accept-all-defaults:
-
Initially I ran into issue #496 .
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed basename: missing operand Try 'basename --help' for more information. WARNING: Some interactive prompts may not function correctly if this script is piped into bash (e.g. 'curl "https:// raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh" | bash)' WARNING: Script should either be downloaded and invoked directly, or be run with the following command: bash -c "$(c url -L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)" Running with --accept-all-defaults Downloading Oracle Cloud Infrastructure CLI install script from https://raw.githubusercontent.com/oracle/oci-cli/v3. 2.1/scripts/install/install.py to /tmp/oci_cli_install_tmp_PSjh. #=#=# Running install script. python3 /tmp/oci_cli_install_tmp_PSjh --accept-all-defaults /tmp/oci_cli_install_tmp_PSjh:524: SyntaxWarning: invalid escape sequence '\E' command = "powershell -Command \"[Environment]::SetEnvironmentVariable(\\\"PATH\\\", \\\"{};\\\" + (Get-ItemProper ty -Path 'Registry::HKEY_CURRENT_USER\Environment' -Name PATH).Path, \\\"User\\\")".format(exec_dir) # noqa: W605 Traceback (most recent call last): File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "/tmp/tmpyzrzgdme/virtualenv-20.6.0.pyz/__main__.py", line 168, in <module> File "/tmp/tmpyzrzgdme/virtualenv-20.6.0.pyz/__main__.py", line 164, in run File "/tmp/tmpyzrzgdme/virtualenv-20.6.0.pyz/virtualenv/__main__.py", line 18, in run File "/tmp/tmpyzrzgdme/virtualenv-20.6.0.pyz/virtualenv/run/__init__.py", line 32, in cli_run File "/tmp/tmpyzrzgdme/virtualenv-20.6.0.pyz/virtualenv/run/session.py", line 46, in run File "/tmp/tmpyzrzgdme/virtualenv-20.6.0.pyz/virtualenv/run/session.py", line 53, in _create File "/tmp/tmpyzrzgdme/virtualenv-20.6.0.pyz/virtualenv/create/creator.py", line 171, in run File "/tmp/tmpyzrzgdme/virtualenv-20.6.0.pyz/virtualenv/create/via_global_ref/builtin/via_global_self_do.py", line 79, in create File "/tmp/tmpyzrzgdme/virtualenv-20.6.0.pyz/virtualenv/create/via_global_ref/builtin/via_global_self_do.py", line 104, in ensure_directories File "/tmp/tmpyzrzgdme/virtualenv-20.6.0.pyz/virtualenv/create/describe.py", line 29, in bin_dir File "/tmp/tmpyzrzgdme/virtualenv-20.6.0.pyz/virtualenv/create/describe.py", line 33, in script_dir File "/tmp/tmpyzrzgdme/virtualenv-20.6.0.pyz/virtualenv/discovery/py_info.py", line 125, in install_path ValueError: too many values to unpack (expected 2) -- Verifying Python version. -- Python version 3.12.3 okay. -- Creating directory '/root/lib/oracle-cli'. -- We will install at '/root/lib/oracle-cli'. -- Creating directory '/root/bin'. -- The executable will be in '/root/bin'. -- Creating directory '/root/bin/oci-cli-scripts'. -- The scripts will be in '/root/bin/oci-cli-scripts'. -- The optional packages installed will be ''. -- Executing: ['', 'apt-get', 'update'] -- System was unable to use venv, is going to download and create virtualenv. -- Downloading virtualenv package from https://github.com/pypa/get-virtualenv/blob/20.6.0/public/virtualenv.pyz?raw= true. -- Downloaded virtualenv package to /tmp/tmpyzrzgdme/virtualenv-20.6.0.pyz. -- Checksum of /tmp/tmpyzrzgdme/virtualenv-20.6.0.pyz OK. -- Executing: ['/usr/bin/python3', 'virtualenv-20.6.0.pyz', '/root/lib/oracle-cli'] Traceback (most recent call last): File "/tmp/oci_cli_install_tmp_PSjh", line 257, in create_virtualenv install_python3_venv() File "/tmp/oci_cli_install_tmp_PSjh", line 204, in install_python3_venv exec_command(cmd) File "/tmp/oci_cli_install_tmp_PSjh", line 141, in exec_command subprocess.check_call(command_list, cwd=cwd, env=env) File "/usr/lib/python3.12/subprocess.py", line 408, in check_call retcode = call(*popenargs, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/subprocess.py", line 389, in call with Popen(*popenargs, **kwargs) as p: ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/subprocess.py", line 1026, in __init__ self._execute_child(args, executable, preexec_fn, close_fds, File "/usr/lib/python3.12/subprocess.py", line 1955, in _execute_child raise child_exception_type(errno_num, err_msg, err_filename) PermissionError: [Errno 13] Permission denied: '' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/tmp/oci_cli_install_tmp_PSjh", line 722, in <module> main() File "/tmp/oci_cli_install_tmp_PSjh", line 668, in main create_virtualenv(tmp_dir, install_dir) File "/tmp/oci_cli_install_tmp_PSjh", line 271, in create_virtualenv download_and_create_virtualenv(tmp_dir, install_dir) File "/tmp/oci_cli_install_tmp_PSjh", line 196, in download_and_create_virtualenv exec_command(cmd, cwd=working_dir) File "/tmp/oci_cli_install_tmp_PSjh", line 141, in exec_command subprocess.check_call(command_list, cwd=cwd, env=env) File "/usr/lib/python3.12/subprocess.py", line 413, in check_call raise CalledProcessError(retcode, cmd) subprocess.CalledProcessError: Command '['/usr/bin/python3', 'virtualenv-20.6.0.pyz', '/root/lib/oracle-cli']' retur ned non-zero exit status 1.- I progressed past this by installing
python3-pipas described in that issue.
- I progressed past this by installing
-
Then I ran into the issue below, whereby the script is looking in the wrong page for the
pipexecutable:root@app1:~# bash -c "$(curl -L https://raw.githubusercontent.com/oracle/oci-cli/refs/tags/v3.50.2/scripts/install/install.sh)" -- --accept-all-defaults % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 16926 100 16926 0 0 390k 0 --:--:-- --:--:-- --:--:-- 393k basename: missing operand Try 'basename --help' for more information. Running with --accept-all-defaults Downloading Oracle Cloud Infrastructure CLI install script from https://raw.githubusercontent.com/oracle/oci-cli/v3.2.1/scripts/install/install.py to /tmp/oci_cli_install_tmp_ZcWf. ############################################################################################################# 100.0% Running install script. python3 /tmp/oci_cli_install_tmp_ZcWf --accept-all-defaults /tmp/oci_cli_install_tmp_ZcWf:524: SyntaxWarning: invalid escape sequence '\E' command = "powershell -Command \"[Environment]::SetEnvironmentVariable(\\\"PATH\\\", \\\"{};\\\" + (Get-ItemProperty -Path 'Registry::HKEY_CURRENT_USER\Environment' -Name PATH).Path, \\\"User\\\")".format(exec_dir) # noqa: W605 -- Verifying Python version. -- Python version 3.12.3 okay. -- Creating directory '/root/lib/oracle-cli'. -- We will install at '/root/lib/oracle-cli'. -- Creating directory '/root/bin'. -- The executable will be in '/root/bin'. -- Creating directory '/root/bin/oci-cli-scripts'. -- The scripts will be in '/root/bin/oci-cli-scripts'. -- The optional packages installed will be ''. -- Executing: ['', 'apt-get', 'update'] -- System was unable to use venv, is going to download and create virtualenv. -- Downloading virtualenv package from https://github.com/pypa/get-virtualenv/blob/20.6.0/public/virtualenv.pyz?raw=true. -- Downloaded virtualenv package to /tmp/tmpulu8u8y_/virtualenv-20.6.0.pyz. -- Checksum of /tmp/tmpulu8u8y_/virtualenv-20.6.0.pyz OK. -- Executing: ['/usr/bin/python3', 'virtualenv-20.6.0.pyz', '/root/lib/oracle-cli'] /usr/lib/python3/dist-packages/setuptools/_distutils/cmd.py:66: SetuptoolsDeprecationWarning: setup.py install is deprecated. !! ******************************************************************************** Please avoid running ``setup.py`` directly. Instead, use pypa/build, pypa/installer or other standards-based tools. See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details. ******************************************************************************** !! self.initialize_options() created virtual environment CPython3.12.3.final.0-64 in 143ms creator CPython3Posix(dest=/root/lib/oracle-cli, clear=False, no_vcs_ignore=False, global=False) seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/root/.local/share/virtualenv) added seed packages: pip==21.1.3, setuptools==57.1.0, wheel==0.36.2 activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator -- Executing: ['/root/lib/oracle-cli/bin/pip', 'install', '--cache-dir', '/tmp/tmpulu8u8y_', 'oci_cli', '--upgrade'] Traceback (most recent call last): File "/tmp/oci_cli_install_tmp_ZcWf", line 722, in <module> main() File "/tmp/oci_cli_install_tmp_ZcWf", line 677, in main install_cli(install_dir, tmp_dir, cli_version, OPTIONAL_FEATURES) File "/tmp/oci_cli_install_tmp_ZcWf", line 319, in install_cli exec_command(cmd, env=env) File "/tmp/oci_cli_install_tmp_ZcWf", line 141, in exec_command subprocess.check_call(command_list, cwd=cwd, env=env) File "/usr/lib/python3.12/subprocess.py", line 408, in check_call retcode = call(*popenargs, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/subprocess.py", line 389, in call with Popen(*popenargs, **kwargs) as p: ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/subprocess.py", line 1026, in __init__ self._execute_child(args, executable, preexec_fn, close_fds, File "/usr/lib/python3.12/subprocess.py", line 1955, in _execute_child raise child_exception_type(errno_num, err_msg, err_filename) FileNotFoundError: [Errno 2] No such file or directory: '/root/lib/oracle-cli/bin/pip'local/appears to be missing from the path:root@app1:~# ls -l /root/lib/oracle-cli/bin/pip ls: cannot access '/root/lib/oracle-cli/bin/pip': No such file or directory root@app1:~# ls -l /root/lib/oracle-cli/local/bin/pip -rwxr-xr-x 1 root root 242 Nov 23 09:20 /root/lib/oracle-cli/local/bin/pip root@app1:~# lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 24.04.1 LTS Release: 24.04 Codename: noble
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with scripts/install/install.sh and scripts/install/install.py, then compare the virtualenv layout shown in the Ubuntu 24.04 output with the installer’s expected /root/lib/oracle-cli/bin/pip path. Reproduce the root installation using the command in the issue and confirm that installation completes and the OCI CLI executable is usable.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- bash, python, ubuntu
- Domain
- cli, operating-systems
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100