4 ms·
> It's still a PITA to deploy a compiled app on Linux with unclear glibc versions If you don't want to worry about the glibc version on your users' machines, y
by plq 8y ago
> It's still a PITA to deploy a compiled app on Linux with unclear glibc versions
If you don't want to worry about the glibc version on your users' machines, you can just ship your dynamic linker and use it to run your executable in your wrapper script (you do have one, right?). Why's that so hard?
- AnIdiotOnTheNet 8y agoIt's not hard, it's just stupid that the platform has such a remarkable lack of consistency that you can't rely on anything but the kernel ABI.
- plq 8y agoI honestly don't see the problem. It's a different platform so it's got different quirks, that's just life. Having said that, I strongly prefer Linux's explicit shared object search paths and very user-friendly dynamic linker to Window's implicit search scheme (aka the DLL hell). If that means I need to add my dynamic linker along with a couple lines of wrapper script so my binaries work, so be it. And, you can even avoid the wrapper script if you can make sure your stuff is always installed to a standard location (eg. /opt/yourcompany) and you pass -Wl,rpath to your linker (at compile time) but I really don't see the point.
- AnIdiotOnTheNet 8y ago> I honestly don't see the problem. It's a different platform so it's got different quirks, that's just life. If Linux Desktop were one singe different platform there wouldn't be a problem. Instead it is effectively some ridiculously large number of platforms.
- HeadsUpHigh 8y agoThe differences between them are getting smaller and smaller with time. With the notable exceptions of some really cool distros like nixOS or Solus most others have almost the same libraries at this point at varying versions.
- shmerl 8y agoHeh, speaking on relying on APIs/ABIs, macOS must be a lot of fun with Apple deprecating OpenGL to begin with.
- Keyframe 8y agoHow about AppImage?
- AnIdiotOnTheNet 8y agoWhat about it? It doesn't solve the problem, it just allows you to conveniently package everything you can't rely on the distro having, which is basically everything.
- Keyframe 8y agoWhich was the complaint.
- Spivak 8y agoBut the Linux kernel is really the only common thing you can expect across a wide array of distributions. * If you're a GUI app you can also speak X11 with GLX and its up to the user to have something that understands your messages. * If you want desktop integration you use one of the many dbus protocols and it's up to the user's DE to understand your requests. * If you distribute through Steam you may also depend on the Steam runtime, but you have to be careful to only depend on what's provided. * If you distribute through Flatpak or Snap you can also depend on any of the provided runtimes or build your own for maybe easier maintainability. It's essentially 'bundle everything' as a service. tl;dr depend on protocols and runtimes, not libraries. Also, nothing is stopping you from building against Ubuntu:latest. It's more cumbersome but Linux users will typically find a way to make your stuff work on other distros.
- AnIdiotOnTheNet 8y ago> Also, nothing is stopping you from building against Ubuntu:latest. It's more cumbersome but Linux users will typically find a way to make your stuff work on other distros. This is not the mentality of anyone who cares about the user experience of the product.