I'm developing a program that is being executed in a Ubuntu 18.04 machine that needs a shared library that is only available for Ubuntu 16. Could be possible to use this shared library in Ubuntu 18?
-
1Why is it only available for Ubuntu 16? – Aaron Digulla Apr 02 '19 at 08:28
-
That Ubuntu 16 shared library is probably some free software or open source code. Find the source code of its latest version then build it on your Ubuntu 18 – Basile Starynkevitch Apr 02 '19 at 08:44
-
Without at least *naming* that shared library, your question is really too broad. – Basile Starynkevitch Apr 02 '19 at 08:52
-
1Most folks who do this use *Symbol Versioning*. I think it causes more trouble than it is worth. Also see [How can I link to a specific glibc version?](https://stackoverflow.com/q/2856438/608639) – jww Apr 02 '19 at 09:28
1 Answers
Maybe. You will have to try. It could cause you all kinds of weird problems and expose you to unknown security risks, though.
Try to copy the *.so file and any links to /usr/local/lib/
(needs root permissions). If the program can't find it, try sudo ldconfig -v
and look for your library in the output. If it's there, you can try to run your program again.
The easiest case is when your program immediately fails with missing symbols from GLIBC. In this case, you can't. Find the sources of the library and compile it on the new system.
If that's not an option, you could consider installing Ubuntu 16 in a VM running on the new system. That will expose you to all kinds of security risks which can be mitigated my making sure that only the outside Ubuntu 18 (which gets security updates) can talk to the VM. Only recommended when a) you know what you're doing and have done is many times before, b) you know someone who fits a), or c) your manager doesn't care about the reputation of your company and gives you a signoff to hand all your data to anyone with Internet access.
To put the last option into perspective: The times when a human would hack you are long gone. Today's threat are automated attack systems which scrape update sites for security holes and try them on anything that's connected to the Internet 24/7 without any human intervention. The first time humans come into play is when the system has owned a new bunch of systems.

- 321,842
- 108
- 597
- 820
-
What does the last sentence means? I understand the general idea, but I am not a native English speaker and would rephrase it differently: I wouldn't say that a "system has owned a new bunch of systems" exactly in this fashion. – Basile Starynkevitch Apr 02 '19 at 09:31
-
"owned" is slang and means "taken control of/over". So what happens is that the system automatically installs software on vulnerable computers which allows to remote control them. When enough of them have been cracked open, they are added to a worker pool. The pool is then assigned tasks: Collecting passwords, credit card data, sending spam, attacking more computers, mining/stealing bitcoin, you name it. – Aaron Digulla Apr 02 '19 at 13:14
-
Sorry, I am French so does not understand well slang, even if my ordinary Globenglish is usually good enough (e.g. I wrote the [Bismon report](http://starynkevitch.net/Basile/bismon-chariot-doc.pdf) almost alone, with very few external help). But I am not able to write in "Slang" (perhaps not even in French) – Basile Starynkevitch Apr 02 '19 at 18:21