This repository contains a Bash script that automates the process of converting an installed package into an AppImage.
- The script is designed for Arch Linux and derivatives, as it utilizes
pacman
for package management. wget
is required to download theappimagetool
if it's not already present.- You need to have the package installed on your system that you wish to convert into an AppImage.
- The script checks for the presence of
appimagetool-x86_64.AppImage
; if it's not found, it downloads and makes it executable. - It prompts the user to enter the name of the package to be converted.
- The script then checks if the package is installed. If not, it asks for the package name again.
- It creates a directory structure mimicking the AppDir format, copying the package files and necessary dependencies into this structure.
- For packages depending on Qt, it ensures Qt dependencies are copied correctly.
- It sets up an
AppRun
script inside the AppDir, which is the entry point for running the AppImage, configuring necessary environment variables for application execution. - Finally, it uses
appimagetool
to package the AppDir into an AppImage.
- Clone this repository or download the script to your local machine.
- Ensure the script is executable:
chmod +x AppImageMaker.sh
- Run the script:
./AppImageMaker.sh
- Follow the on-screen prompts to enter the package name you want to convert.
- Once completed, the script will produce an AppImage in the current directory.
- The script assumes that the main executable of the package is located under
/usr/bin/
. - It automatically includes Qt platform plugins if the
qt6-base
package is installed, ensuring Qt applications run smoothly. - The script attempts to find and set the application icon by looking for icon files in the package directory. If no icons are found, it looks for a default icon named
AppImage.png
in the same directory as the script.
- Currently, this script is tailored for Arch Linux and require adjustments to work with other distributions.
- It does not handle complex dependencies or configurations that might require manual intervention.
- Simple packages, including those installed from AUR, are currently supported. The work was tested on a small number of packages: Clementine, Obsidian, Qbittorrent, Veracrypt. MATLAB 2021a and Unreal Engine 5.3.2 were also packaged.