1 |
What's a good way to run 3rd party apps packaged for Ubuntu? |
2 |
|
3 |
There are a few third-party binary applications on which I depend. |
4 |
|
5 |
They're usually distributed as .rpm for RedHat and .deb for Ubuntu. |
6 |
|
7 |
AFAICT, Gentoo and Ubuntu library names generally match, while RedHat |
8 |
seems to slightly munge many (all?) library names. So, I've always |
9 |
had better luck with .deb than with .rpm. Usually I try unpacking the |
10 |
.deb file into it's own tree under /opt and then running the app. |
11 |
|
12 |
Sometimes it requires a shell wrapper to set LD_LIBRARY_PATH, |
13 |
sometimes the app is smart enough to locate it's libraries. |
14 |
|
15 |
This has always been a bit fragile. |
16 |
|
17 |
For example, one app I use frequently requires qt4 webkit. It works |
18 |
at the moment, but the qt4 webkit ebuild has been masked and is |
19 |
scheduled for removal. In other cases, the Gentoo libraries don't have |
20 |
quite the same features expected by the app. In cases like this I've |
21 |
ended up copying .so files from an Ubuntu machine into the app's |
22 |
directory in /opt. Figuring out which libraries you need to copy can |
23 |
be a bit tedious. It's simple enough to figure out when you're |
24 |
_missing_ a library, but incompatibilities can be very difficult to |
25 |
figure out. |
26 |
|
27 |
I'm looking for a more robust way to deal with this. I haven't tried |
28 |
any of these options yet... |
29 |
|
30 |
1) Create a docker container for each of the apps and share the X |
31 |
server Unix domain socket with the container (they're almost |
32 |
always GUI apps). Will this stop working under Wayland since it |
33 |
doesn't support "remote" applications. [I really don't want to |
34 |
deal with a remote desktop -- I just want the app to open a window |
35 |
on my normal desktop.] |
36 |
|
37 |
2) Install Ubuntu in a second partition and install the apps there. |
38 |
Then under Gentoo, mount that partition and run the app binaries |
39 |
in situ after setting LD_LIBRARY_PATH to make sure the app finds |
40 |
the Ubuntu libraries instead of the Gentoo ones. Or instead of |
41 |
setting LD_LIBRARY_PATH, run the apps in a chroot environment that |
42 |
shares the X11 Unix domain socket and some directories with the |
43 |
Gentoo portion? |
44 |
|
45 |
3) Run the apps in a VM that's running Ubuntu using a TCP connection |
46 |
between the Ubuntu app (X11 client), and the X11 server on Gentoo. |
47 |
Booting up a VM each time I want to run one of the apps seems |
48 |
pretty heavyweight. |
49 |
|
50 |
Any other suggestions? |
51 |
|
52 |
-- |
53 |
Grant |