There is an update to this post on my Blog.
---8<-----------------------------------------------------------------------------------
Windows Subsystem for Linux is a great way to have Linux functionality on Windows. For the first time usage, follow the Microsoft Documentation to install it. Oracle Linux 7.9 and 8.5 are available in the Microsoft Store as fully compatible, free RHEL/CentOS alternatives. And SQLcl can easily installed, as long as you have Java on the system.
It installed within minutes and can immediately be updated via sudo dnf update. But when I tried so install Java, I got aRPM: error: db5 error(-30969) from dbenv->open: BDB0091 DB_VERSION_MISMATCH: Database environment version mismatch
Looks like the RPM repository is defect. I found the solution on GitHub:
sudo -s cd /var/lib/rpm rpm --rebuilddb dd if=/dev/zero of=__db.001 bs=1M count=1 dd if=/dev/zero of=__db.002 bs=1M count=1 dd if=/dev/zero of=__db.003 bs=1M count=1 rpm -qa rpm
Follow the postings on GitHub. There seem to be easier solutions, but I did not double check them, because the first one worked for me.
sudo dnf in java-11-openjdk.x86_64
Now JDK installs without problems, for SQLcl 22.1 at least JDK 11.x is mandatory.
Download latest SQLcl zip archive from oracle.com/sqlcl and copy the contents to any directory, like ~/bin/sqlcl
Add the path to the SQLcl binary to your .bashrc and source it. A cool feature of WLS is, that all your Windows drives are automatically mounted under /mnt/c, /mnt/d etc. So if you already have a network/admin directory under Windows, you can point your TNS_ADMIN to that location.
export PATH=/home/arne/bin/sqlcl/bin:$PATH export TNS_ADMIN=/mnt/d/Oracle/network/admin
This is what my .bashrc ends with.
That gives me access from Linux to all databases I have configured under Windows.