This repository creates and distributes the unofficial Appimage of Bottles built on top of JuNest (the lightweight Arch Linux based distro that runs, without root privileges, on top of any other Linux distro) and Debian Stable.
You can download it from https://github.com/ivan-hc/Bottles-appimage/releases/tag/continuous
This uses the more recent Type3 AppImage model, so you don't need libfuse2
installed on your system.
imagemagick
must be installed from your package managerglibc
version of Debian Stable or newer (so this should work well on newer distributions)
Jump to Build requirements if you wish to improve it... or keep read.
This AppImage is a mix of two of my projects:
- AppImaGen, from here I provided a base of packages from Debian Stable for better hardware compatibility;
- ArchImage, from here I've built the missing packages from the AUR, then merged with the base.
This is the hybrid AppImaGen/Archimage script I use to build Bottles:
The first part (function "_archimage
") is needed to compile the packages only available on the AUR (being Bottles only available as a official Flatpak and, for now, its still available in AUR, at https://aur.archlinux.org/packages/bottles ).
The second part uses pkg2appimage to compile a base that gives the correct compatibility with the system's drivers, including old Nvidia GPUs.
This is because ArchImage is a Arch Linux container (named JuNest) into an AppImage. Being this a container, it works isolated from the host system, so it can't see the host's drivers (so there is no hardware accelleration support in ArchImages).
However, only Bottles and few libraries are needed, the Debian base and the clasic AppImage scructure are a guarantee of compatibility.
I've used Debian Stable as a base for the pkg2appimage's recipe because Bottles is built on the Python version available for Arch Linux that (for now) is the same (see python).
If you wish to made it work for Linux distros older but still supported, you need:
- to know how to use pkg2appimage or at least how to compile a newer version of Python on old distributions;
- to know the use of BASH scripting.
- Python version equal to the one available for Arch Linux in its official repository, being Bottles only available as AUR package;
libcurl
version updated to the one compiled forpycurl
in Arch Linux (see curl), also this must be in "LD_PRELOAD
" to made it work over the one installed system wide. Or at least you need to compilepycurl
by yourself by including theopenssl
support.
That said, just read and learn the bottles.sh script I wrote to understand the various steps. Each step has an "header" in English. If you wish, you can run it into a dedicated directory on your PC. In case of errors, just read the logs and try to understand what your system lacks to made it work.
If you want an idea on how the logs are, go to https://github.com/ivan-hc/Bottles-appimage/actions and read the workflows run.
- @mirkobrombin for all the patience and availability shown to me
- AppImaGen https://github.com/ivan-hc/AppImaGen
- JuNest https://github.com/fsquillace/junest
- ArchImage https://github.com/ivan-hc/ArchImage
I wrote two bash scripts to install and manage the applications: AM and AppMan. Their dual existence is based on the needs of the end user.
"AM" Application Manager |
---|
If you want to install system-wide applications on your GNU/Linux distribution in a way that is compatible with Linux Standard Base (all third-party apps must be installed in dedicated directories under /opt and their launchers and binaries in /usr/local/* ...), just use "AM" Application Manager. This app manager requires root privileges only to install / remove applications, the main advantage of this type of installation is that the same applications will be available to all users of the system. |
"AppMan" |
---|
If you don't want to put your app manager in a specific path but want to use it portable and want to install / update / manage all your apps locally, download "AppMan" instead. With this script you will be able to decide where to install your applications (at the expense of a greater consumption of resources if the system is used by more users). AppMan is portable, all you have to do is write the name of a folder in your $HOME where you can install all the applications available in the "AM" database, and without root privileges. |