Skip to content

Instantly share code, notes, and snippets.

@bmaupin
Last active March 12, 2024 17:13
Show Gist options
  • Save bmaupin/ad02e5b4a17abfc662d61664bced2773 to your computer and use it in GitHub Desktop.
Save bmaupin/ad02e5b4a17abfc662d61664bced2773 to your computer and use it in GitHub Desktop.
Install Oracle SQL Developer on Ubuntu (and Debian?)
  1. Install alien and OpenJDK 11

    sudo apt install alien openjdk-11-jdk
    

    ⚠ For Debian, this may require alien >= 8.95.5. See this comment for more information.

  2. Download SQL Developer >= 19.2
    https://www.oracle.com/tools/downloads/sqldev-downloads.html

    • Download the Linux RPM
  3. Install SQL Developer

    Note: This might take several minutes

    sudo alien -i sqldeveloper-*.rpm
    
  4. (Optional) Disable the welcome page

  5. (Optional) Create a desktop entry

    echo "[Desktop Entry]
    Type=Application
    Name=Oracle SQL Developer
    Exec=sqldeveloper
    Icon=/opt/sqldeveloper/icon.png
    Terminal=false" >> ~/.local/share/applications/sqldeveloper.desktop
    
  6. (Optional) Disable unnecessary features

    1. Tools > Features

    2. Uncheck everything that's not needed

      For example, for minimal non-DBA development tasks, the following features are sufficient and everything else (including Database Migrations and Version Control) can be unchecked:

      - Oracle SQL Developer - Schema Browser
      - Oracle SQL Developer - Snippet
      - Oracle SQL Developer - SSH Support
      - Oracle SQL Developer - XML Schema
      
    3. Apply Changes

@Grelo4ka
Copy link

sudo alien -i sqldeveloper-*.rpm fails

dh_usrlocal: error: debian/sqldeveloper/usr/local/bin/sqldeveloper is not a directory make: *** [debian/rules:7: binary] Error 25

Debian 11, sqldeveloper-21.4.0-346.2239.noarch.rpm

@bmaupin
Copy link
Author

bmaupin commented Dec 14, 2021

@Grelo4ka I just noticed that I wrote "Ubuntu/Debian" in the description of this gist. I guess I assumed it would work for Debian since Ubuntu is based on Debian, but I've not tested it on Debian. I should probably remove that :)

On the other hand, it looks like Ubuntu 20.04 is based on Debian 11? So maybe that's not the problem:

$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 20.04.3 LTS
Release:	20.04
Codename:	focal
$ cat /etc/debian_version
bullseye/sid

I used these steps successfully last week to install SQL Developer 21.2.1 on Ubuntu 20.04; I guess you could try installing an older version of SQL Developer to see if it works.

If you figure out the problem with the newer versions feel free to leave a comment and I can update this gist.

Good luck!

@Nishant0073
Copy link

I am also facing same error while installing sqldeveloper-21.4.0-346.2239.noarch.rpm on debian 11.

 error: debian/sqldeveloper/usr/local/bin/sqldeveloper is not a directory
make: *** [debian/rules:7: binary] Error 25

@Nishant0073
Copy link

I have also tried to install sqldeveloper-19.1.0-094.2042.noarch but it also gives same error.

@lobtx
Copy link

lobtx commented Jan 28, 2022

Hi every one,

I am facing quite the same issue trying to install sqldeveloper-21.4.2-018.1706.noarch.rpm. It fails with both alien or rpm commands.
Here is the trace:

warning: RPM v3 packages are deprecated: sqldeveloper-21.4.2-018.1706.noarch
Package build failed. Here's the log:
dh binary
dh_update_autotools_config
dh_autoreconf
create-stamp debian/debhelper-build-stamp
dh_testroot
dh_prep
debian/rules override_dh_auto_install
make[1] : on entre dans le répertoire « /home/xxx/sqldev/sqldeveloper-21.4.2 »
mkdir -p debian/sqldeveloper
# Copy the packages's files.
find . -maxdepth 1 -mindepth 1 -not -name debian -print0 |
sed -e s#'./'##g |
xargs -0 -r -i cp -a ./{} debian/sqldeveloper/{}
make[1] : on quitte le répertoire « /home/xxx/sqldev/sqldeveloper-21.4.2 »
dh_installdocs
dh_installchangelogs
dh_perl
dh_usrlocal
dh_usrlocal: error: debian/sqldeveloper/usr/local/bin/sqldeveloper is not a directory
make: *** [debian/rules:7 : binary] Erreur 25

Did someone figured out how to deal with it ?

I am on Debian 11.

Cheers

@lobtx
Copy link

lobtx commented Jan 28, 2022

Well, just extract the package and run opt/sqldeveloper/sqldeveloper.sh works fine ;)

@AgustinArroyos
Copy link

@lobtx Wtf, i don't understand how the solution was so easy .I was 40 min search the solution

@Cavalari0100
Copy link

@AgustinArroyos me too !!!

@Cavalari0100
Copy link

guys my friend helped me and the more easy option was install using "wine".

@bmaupin
Copy link
Author

bmaupin commented Feb 15, 2023

@Grelo4ka @Nishant0073 @lobtx @AgustinArroyos @Cavalari0100

I'm still using these steps to this day to install SQL Developer on the latest Ubuntu LTS (22.04). So it seems this bug must be specific to Debian.

I did some searching, and it sounds like Debian has something called dh_userlocal (dh = "Debian helper?") that kicks in when packages try to install files under /usr/local:

As best as I can tell, this causes issues with alien as per this bug: Bug#992188: alien: Fails to create packages that place files in /usr/local

If that's the case, then it appears to have been fixed in alien v8.95.5, based on the changelog: https://debian.pkgs.org/sid/debian-main-amd64/alien_8.95.6_all.deb.html

So for anyone else running into this issue on Debian, you may want to upgrade alien first. I'll add a note to the steps in case this fixes it.

@sgtcortez
Copy link

For today, the debian bullseye version is 8.95.4 and fails.
I believe that the version 8.96.6 is only available in sid repository.

What I done was:

apt remove --purge alien
wget --quiet -O /tmp/alien.deb http://ftp.de.debian.org/debian/pool/main/a/alien/alien_8.95.6_all.deb
dpkg -i /tmp/alien.deb

Then, use alien to convert to deb package

@paul-schuhm
Copy link

paul-schuhm commented Jul 15, 2023

Thanks for discussion. While the solution proposed by @lobtx works fine, @sgtcortez is right and updating alien package to version 8.95.6 allows to convert the .rpm package do .deb without encountering the dh_usrlocal: error bug. Happy database modeling

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment