Tape Archives (.tar) and Zip Archives (.zip) are the ultimate Portable Application Distribution method for POSIX, and Single Unix Universality.
I've been using Linux and FreeBSD for 6 years. In all that time, the mighty Tarball or Zip, has never failed me. A single compressed archive with a Statically Compiled Executable only requires a tar --extract --file ./*.gz --verbose command and a sudo ln -s ~/executable /usr/local/bin command to install. 2 commands, that's it. My favorite developers also vendor their Dynamic Libraries with their Tarballs if they require dynamic dependencies. That only requires one extra command sudo ln -s ~/app-directory/lib/* /usr/local/lib and you often, don't even need to do that. No fuss, if I want to delete the Application, I delete it's directory and configurations in ~/.config and clear the symbolic links in /usr/local/bin. It's that easy. Even easier if Configurations are stored in the same directory as the Application.
There is a lot of lies out there, claiming that Linux Desktop is impossible to support due to the inability to package applications across distributions. This is obviously false. The only thing perpetuating this belief is the false claim that only GTK and QT can be supported and that you must ship to the package repository for the distribution. This is also obviously false. You can use LVGL, FLTK, SDL, wxWidgets, SFML, GLFW, Electron, Raw OpenGL, Bare Vulkan, whatever on Earth you want. Vendoring your Dynamic Libraries in the Tarball is simple, easy and obvious. Static Compilation is even better, if you can achieve that.
To prove my point, here are some obvious examples:
- https://code.visualstudio.com/download
- https://go.dev/dl
- https://dart.dev/get-dart/archive
- https://github.com/helix-editor/helix/releases/latest
- https://github.com/neovim/neovim/releases/latest
- https://github.com/cli/cli/releases/latest
- https://github.com/zed-industries/zed/releases/latest
- https://github.com/zen-browser/desktop/releases/latest
- https://github.com/go-task/task/releases/latest
I could go on forever. I use my Distribution Package Manager for System Packages ONLY. If you ship your Source Code in a Tarball, I'll compile it from source and symbolically link the build artifacts myself, I won't even touch the install.sh or use make install. I run a bare make command.
I don't need deep integration with my specific Linux Distribution and Desktop Environment (I use Arch by the way!), because that would reduce portability. I like it when my Linux Apps work on FreeBSD and with any Desktop Environment. The Tarball, Zip Archive combo has always been the best Packaging Format for Application Portability.
EDIT: This is directed at companies and developers that claim that it is impossible to ship a Portable Linux Desktop Application.
[link] [comments]
SOCIAL SHARE CARD GENERATOR