There's no libcurl-gnutls.so.4 on Fedora:
./robo3t: error while loading shared libraries: libcurl-gnutls.so.4: cannot open shared object file: No such file or directory
Workaround using patchelf:
patchelf --replace-needed libcurl-gnutls.so.4 libcurl.so.4 robo3t
I experienced the same issue on Gentoo, which compiles curl with 'openssl' instead of 'gnutls' by default. I recompiled curl with the correct 'gnutls' use flag, but still had to manually cp -v /usr/lib/libcurl.so.4 /opt/robo3t/lib/libcurl.so.4, and then create the symlink ln -sv libcurl.so.4 libcurl-gnutls.so.4.
Even if curl had been compiled with 'gnutls' initially, robo3t still only looks within its own ./lib directory for libcurl-gnutls.so.4, so I still would have needed to copy and symlink the file.
It seems this library just hasn't been included into v1.4 of Robo3T. Gentoo does not provide a robo3t ebuild, so this issue occurred with the latest robo3t-1.4.0-linux-x86_64-12e54cc.tar.gz downloaded directly from https://robomongo.org/.
Same issue on CentOs 7
Can confirm this issue on fedora. After using the patchelf command above I get this warning when launching robo3t:
$ patchelf --replace-needed libcurl-gnutls.so.4 libcurl.so.4 robo3t
$ ls /lib64/libcurl*
/lib64/libcurl.so /lib64/libcurl.so.4 /lib64/libcurl.so.4.6.0
$ ./robo3t
./robo3t: /lib64/libcurl.so.4: no version information available (required by ./robo3t)
Hi @mohd-akram , all, thanks for reporting the problem. But, unfortunately for Linux currently only Ubuntu is supported.
And thanks a lot for sharing the workaround solution @mohd-akram .
@simsekgokhan A simple fix for this could be doing apt install libcurl4-openssl-dev on the machine that you're building the binaries on. This should cause the binary to link with libcurl.so.4 which is available on other platforms.
Can confirm this issue on openSUSE 15.2. I just create a symlink into lib directory in Robo3t install dir:
ln -s /usr/lib64/libcurl.so.4 ~/bin/robo3t-1.4.1/lib/libcurl-gnutls.so.4
Can confirm this issue on openSUSE 15.2. I just create a symlink into
libdirectory in Robo3t install dir:ln -s /usr/lib64/libcurl.so.4 ~/bin/robo3t-1.4.1/lib/libcurl-gnutls.so.4
Confirm! Same on Fedora works well.
@simsekgokhan A simple fix for this could be doing
apt install libcurl4-openssl-devon the machine that you're building the binaries on. This should cause the binary to link withlibcurl.so.4which is available on other platforms.
THIS!
Fedora 33.
```[az@dell5000 robo3t-1.4.2-linux-x86_64-8650949]$ ls -l ./lib/libcurl-gnutls.so.4
lrwxrwxrwx 1 az az 23 Jan 13 12:52 ./lib/libcurl-gnutls.so.4 -> /usr/lib64/libcurl.so.4
[az@dell5000 robo3t-1.4.2-linux-x86_64-8650949]$ ./bin/robo3t
./bin/robo3t: /home/az/bin/robo3t-1.4.2-linux-x86_64-8650949/bin/../lib/libcurl-gnutls.so.4: no version information available (required by ./bin/robo3t)
```
On Fedora 33
Can confirm this issue on openSUSE 15.2. I just create a symlink into lib directory in Robo3t install dir:
ln -s /usr/lib64/libcurl.so.4 ~/bin/robo3t-1.4.1/lib/libcurl-gnutls.so.4
this comment works
Fedora 34
Robomongo installed on /opt/; the symlink works too.
ln -s /usr/lib64/libcurl.so.4 /opt/robo3t-1.4.3-linux-x86_64-48f7dfd/lib/libcurl-gnutls.so.4
Most helpful comment
Workaround using patchelf: