What's a good way to run 3rd party apps packaged for Ubuntu?

There are a few third-party binary applications on which I depend.

They're usually distributed as .rpm for RedHat and .deb for Ubuntu.

AFAICT, Gentoo and Ubuntu library names generally match, while RedHat
seems to slightly munge many (all?) library names.  So, I've always
had better luck with .deb than with .rpm.  Usually I try unpacking the
.deb file into it's own tree under /opt and then running the app.

Sometimes it requires a shell wrapper to set LD_LIBRARY_PATH,
sometimes the app is smart enough to locate it's libraries.

This has always been a bit fragile.

For example, one app I use frequently requires qt4 webkit.  It works
at the moment, but the qt4 webkit ebuild has been masked and is
scheduled for removal. In other cases, the Gentoo libraries don't have
quite the same features expected by the app.  In cases like this I've
ended up copying .so files from an Ubuntu machine into the app's
directory in /opt.  Figuring out which libraries you need to copy can
be a bit tedious.  It's simple enough to figure out when you're
_missing_ a library, but incompatibilities can be very difficult to
figure out.

I'm looking for a more robust way to deal with this.  I haven't tried
any of these options yet...

 1) Create a docker container for each of the apps and share the X
    server Unix domain socket with the container (they're almost
    always GUI apps).  Will this stop working under Wayland since it
    doesn't support "remote" applications.  [I really don't want to
    deal with a remote desktop -- I just want the app to open a window
    on my normal desktop.]

 2) Install Ubuntu in a second partition and install the apps there.
    Then under Gentoo, mount that partition and run the app binaries
    in situ after setting LD_LIBRARY_PATH to make sure the app finds
    the Ubuntu libraries instead of the Gentoo ones.  Or instead of
    setting LD_LIBRARY_PATH, run the apps in a chroot environment that
    shares the X11 Unix domain socket and some directories with the
    Gentoo portion?

 3) Run the apps in a VM that's running Ubuntu using a TCP connection
    between the Ubuntu app (X11 client), and the X11 server on Gentoo.
    Booting up a VM each time I want to run one of the apps seems
    pretty heavyweight.

Any other suggestions?

-- 
Grant


Reply via email to