Friday, July 5, 2024

Oracle Cloud Autonomous Database File Not Found for TLS Connection


The Attempt:

I created an Autonomous Database on Oracle Cloud.  I used TLS (protocol=tcps) to successfully connect from a Windows SQL*Plus Instant Client to the database on Oracle Cloud.  However, I was unable to connect from an Ubuntu (Gnome) SQL*Plus Instant Client to the database on Oracle Cloud.


The Error:

Each connection attempt from Ubuntu SQL*Plus Instant Client to the Autonomous Database on Oracle Cloud threw a "file not found" error.


Troubleshooting:

I ran a "trace" in "sqlnet.ora" and found many "file not found" errors, all seemed to be related to Wallet, SSL, and Certificate Store.  In the trace file, I found SQL*Net was looking for the Certificate Store in "/etc/pki/tls/cert.pem".


The Solution:

I did not configure a wallet.  TLS uses CA Certificates instead of PKI certificates.

I found a single file (PEM bundle) in "/etc/ssl/certs/ca-certificates.crt".  This was confirmed at Ubuntu's Website: Ubuntu root CA certificate trust store location

I could not find a configuration in SQL*Net to change the location of the Certificate Store from "/etc/pki/tls/cert.pem" to "/etc/ssl/certs/ca-certficiates.crt".

I did find moscicki at GitHub had a Symbolic Link that I was missing.  After I created the symbolic link, I was able to make the TLS connection from Oracle Instant Client for Linux x86-64 Version 23.4.0.0.0 to an Autonomous Database on Oracle Cloud without a wallet.

Run these as root in Ubuntu:

mkdir /etc/pki/tls
ln -s /etc/ssl/certs/ca-certificates.crt /etc/pki/tls/cert.pem

Tuesday, July 2, 2024

Git Clone GLIBCXX_3.4.29 Not Found on Xubuntu


The Attempt:


This was my first attempt to clone a Github repository on Xubuntu (XFCE Desktop) using VSCode. I did not have this problem with Ubuntu (Gnome Desktop).
  • VSCode Version
    Version: 1.90.2
    Commit: 5437499feb04f7a586f677b155b039bc2b3669eb
    Date: 2024-06-18T22:33:48.698Z
    Electron: 29.4.0
    ElectronBuildId: 9728852
    Chromium: 122.0.6261.156
    Node.js: 20.9.0
    V8: 12.2.281.27-electron.0
    OS: Linux x64 5.15.0-113-generic snap
  • Git Version
    root# git --version
    git version 2.34.1
  • XUbuntu Version
    root# lsb_release -a
    No LSB modules are available.
    Distributor ID: Ubuntu
    Description: Ubuntu 22.04.4 LTS
    Release: 22.04
    Codename: jammy

    root# dpkg -l '*-desktop' | grep ^ii | grep 'ubuntu-'
    ii xubuntu-desktop 2.241 amd64 Xubuntu desktop system

The Error Message:


I received an error that included the following:
git clone https://github.com/USER/REPO.git /home/USER/github/REPO --progress
/snap/core20/current/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /lib/x86_64-linux-gnu/libproxy.so.1)
(USER is my username and REPO is the repository name.)

Troubleshooting:


I searched Google and found a myriad of solutions that included:
  • Update from "snap20" to "snap22"
  • Remove/Reinstall VSCode
  • Modify "snapcraft.yaml"
I confirmed my "snap22" library contained the needed GLIBCXX_3.4.29 module. However, I didn't like any of those solutions because they required some underlying "tweeking" that has caused trouble in the past.

The Solution:


I stumbled onto this solution accidentally, and I don't know why it works. Run these commands using the "Git Bash Terminal" in VSCode
cd /home/USER/github
git clone https://github.com/USER/REPO.git REPO --progress