"AppMan" is a package manager for AppImages and other portable GNU/Linux applications.
Its behavior is reminiscent of APT, PacMan and DNF, also thanks to the options very similar to those of the most famous package managers of the most used GNU/Linux distributions.
All "AppMan" does is download the installation scripts from the "AM" database and then convert them for a local installation, in your $HOME directory, following the paths you indicated when you first launch this CLI.
New code is available at github.com/ivan-hc/AM
- For any Issue, go to https://github.com/ivan-hc/AM/issues
- For any Pull Request, go to https://github.com/ivan-hc/AM/pulls
"AppMan" has been an active project since the second half of 2021, and was a completely standalone script, with an at times troubled history before allowing the birth of "AM".
But starting with version 5, released in December 2023, the "AppMan" code merged with "AM", becoming a single script, named "APP-MANAGER", with two different behaviors depending on how it is installed and/or renamed.
This repository is what remains of the transition.
"AM"/"AppMan" is just a tool to provide applications easily and quickly and is only responsible for integrating the AppImages into the system and installing the various programs available, respecting the following order (refer to the option "-d
" to download the installation script without installing it):
- creation of the base directories and the removal script
- download of the package
- creation of the version file and the update script
- possibly, extraction of the icons and .desktop files*
*NOTE, aside from the references to downloading and updating apps (the "$version" variable), the installation scripts are mostly the same, especially for AppImages, and there may be slight variations in the final processes depending if the .desktop file has problems when it is extracted from the package and/or it fail in being added to the menu. If there are problems with updates or missing launchers, open an "issue" and I'll fix it ASAP.
That said, any malfunction related to individual applications is the responsibility of the related developer or packager.
Refer to the option "-a
" to know the sources of each program listed here, so you can contact them to report the bug.
This is a partial index, dedicated only to "AppMan". To learn more about options and how-to guides (with videos), use the external links index or visit github.com/ivan-hc/AM.
Differences between "AM" and "AppMan"
What programs can be installed
Go to "github.com/ivan-hc/AM" for more
All the guides listed here are available at github.com/ivan-hc/AM
How to update all programs, for real
Usage (all the available options)
- Install applications
- Install only AppImages
- Install AppImages not listed in this database but available in other github repos
- List the installed applications
- List and query all the applications available on the database
- Update all
- Backup and restore installed apps using snapshots
- Remove one or more applications
- Convert Type2 AppImages requiring libfuse2 to New Generation AppImages
- Integrate local AppImages into the menu by dragging and dropping them
- How to use "AM" in non-privileged mode, like "AppMan"
- Sandbox an AppImage
- How to enable bash completion
- How to update or remove apps manually
- Downgrade an installed app to a previous version
- Create and test your own installation script
- Third-party databases for applications (NeoDB)
Instructions for Linux Distro Maintainers
- An application does not work, is old and unsupported
- Cannot download or update an application
- Cannot mount and run AppImages
- Failed to open squashfs image
- Spyware, malware and dangerous software
- Stop AppImage prompt to create its own launcher, desktop integration and doubled launchers
- The script points to "releases" instead of downloading the latest stable
- Wrong download link
Even though the two CLI utilities share the same body, there are some substantial differences:
- "AM" is installed system-wide (in
/opt/am
), "AppMan" is portable and rootless; - "AM" is owned by the user that have installed it, "AppMan" is for all users, since it works locally, everyone can have its own apps and configurations;
- "AppMan" can request the root password only if you need to installa library, "AM" requires the root password only to install, remove apps, enable a sandbox for an AppImage;
- "AM" installs apps system wide, in
/opt
(see Linux Standard Base), using the following structure:
/opt/$PROGRAM/
/opt/$PROGRAM/$PROGRAM
/opt/$PROGRAM/AM-updater
/opt/$PROGRAM/remove
/opt/$PROGRAM/icons/$ICON-NAME
/usr/local/bin/$PROGRAM
/usr/local/share/applications/$PROGRAM-AM.desktop
"AppMan" is more flexible, since it asks you where to install the apps. For example, suppose you want install everything in "Applicazioni" (the italian of "applications") and in your $HOME directory, this is the structure of what an installation scripts installs with "AppMan" instead:
~/Applicazioni/$PROGRAM/
~/Applicazioni/$PROGRAM/$PROGRAM
~/Applicazioni/$PROGRAM/AM-updater
~/Applicazioni/$PROGRAM/remove
~/Applicazioni/$PROGRAM/icons/$ICON-NAME
~/.local/bin/$PROGRAM
~/.local/share/applications/$PROGRAM-AM.desktop
The configuration file for AppMan is in ~/.config/appman
and contains the path you indicated at first startup. Changing its contents will result in changing the paths for each subsequent operation carried out with "AppMan", the apps and modules stored in the old path will not be manageable.
At first startup you can indicate any directory or subdirectory you want.
Install "AppMan" | Back to "AppMan Index" |
---|
"AM"/"AppMan" installs, removes, updates and manages only standalone programs, ie those programs that can be run from a single directory in which they are contained. The database aims to be a reference point where you can download all the AppImage packages scattered around the web, otherwise unobtainable, as you would expect from any package manager, through specific installation scripts for each application, as happens with the AUR PKGBUILDs, on Arch Linux. You can see all of them here, divided by architecture.
NOTE that currently my work focuses on applications for x86_64 architecture, but it is possible to extend "AM" to all other available architectures. If you are interested, you can deliberately join this project to improve the available lists.
- PROGRAMS, they are taken:
- from official sources (see Firefox, Thunderbird, Blender, NodeJS, Chromium Latest, Platform Tools...);
- extracted from official .deb/tar/zip packages;
- from the repositories and official sites of individual developers.
- APPIMAGES, they are taken:
- from official sources (if the upstream developers provide them);
- from AppImage recipes to be compiled on-the-fly with pkg2appimage and appimagetool;
- from unofficial third-party developers, but only if an official release is not available.
-
FIREFOX PROFILES to run as webapps, the ones with suffix "ffwa-" in the apps list.
-
THIRD-PARTY LIBRARIES (see here) if they are not provided in your distribution's repositories. These are to be installed in truly exceptional cases.
You can consult basic information, links to sites and sources used through the related command am -a $PROGRAM
or appman -a $PROGRAM
, or visit portable-linux-apps.github.io/apps.
Back to "AppMan Index" |
---|
This section explains how to install "AppMan".
You can choose to continue reading and see the installation methods in detail (jump to "Core dependences"), or you can choose to use the common installer for "AM" and "AppMan", named "AM-INSTALLER", by downloading the script and making it executable, like this:
wget -q https://raw.githubusercontent.com/ivan-hc/AM/main/AM-INSTALLER
chmod a+x ./AM-INSTALLER
./AM-INSTALLER
Type "1" to install "AM" (requires "sudo"/"doas" password), "2" to install "AppMan". Any other key will abort the installation.
This "AM-INSTALLER" script acts as a "launcher" to speed up the processes available in the guides "How to install "AM"" and "How to install "AppMan"". "AppMan" will be installed in ~/.local/bin and the script will take care of enabling it in "$PATH".
Below are the essential dependencies:
- "
coreutils
" (contains "cat
", "chmod
", "chown
"...); - "
curl
", to check URLs; - "
grep
", to check files; - "
less
", to read the ever-longer lists; - "
sed
", to edit/adapt installed files; - "
wget
" to download all programs and update "AM"/"AppMan" itself.
The following are optional dependencies that some programs may require:
- "
binutils
", contains a series of basic commands, including "ar
" which extracts .deb packages; - "
unzip
", to extract .zip packages; - "
tar
", to extract .tar* packages; - "
zsync
", about 10% of AppImages depend on this to be updated.
"AppMan" can be used in different places, being it portable.
However, to be easily used its recommended to place it in your local "$PATH", in ~/.local/bin
.
For example, "AppMan" users must install appman
in ~/.local/bin to allow updates via Topgrade.
To do so, you must first enable that "$PATH":
- add
export PATH=$PATH:$(xdg-user-dir USER)/.local/bin
in the~/.bashrc
- create the directory
~/.local/bin
if it is not available
To do all this quickly, simply copy/paste the following command:
mkdir -p ~/.local/bin && echo 'export PATH="$PATH:$HOME/.local/bin"' >> ~/.bashrc && wget https://raw.githubusercontent.com/ivan-hc/AM/main/APP-MANAGER -O ~/.local/bin/appman && chmod a+x ~/.local/bin/appman
"AppMan" can run in any directory you download it, copy/paste the following command to download "APP-MANAGER", rename it to appman
and make it executable:
wget https://raw.githubusercontent.com/ivan-hc/AM/main/APP-MANAGER -O appman && chmod a+x ./appman
Unlike "AM" which needs to be placed in specific locations, "AppMan" is portable. The modules and directories will be placed in the directory you chose:
- the script "appman" is wherever you want
- the directory "/path/to/your/custom/directory/modules" (containing the .am modules for the non-core options)
- the configuration file "$HOME/.config/appman/appman-config" (the only fixed directory)
all processes will been executed in $HOME/.cache/appman, while application lists, keywords to use in bash/zsh completion and other files (for third party repos, betatesting, etcetera...) will be saved and updated in $HOME/.local/share/AM to be shared with "AM", if installed.
Back to "AppMan Index" |
---|
To uninstall "AppMan" just remove it and the directory $HOME/.config/appman
Note, before you remove your CLI, use the option -R
to remove the apps installed using the following syntax:
appman -R {PROGRAM1} {PROGRAM2} {PROGRAM3}...
to have a list of the installed programs use the option -f
or files
(syntax appman -f
).
Back to "AppMan Index" |
---|
- aisap, sandboxing solutions for AppImages
- appimagetool/go-appimage, get rid of libfuse2 from your AppImages
- pkg2appimage, create AppImages on the fly from existing .deb packages
- repology, the encyclopedia of all software versions
- AppImaGen, easily create AppImages from Ubuntu PPAs or Debian using pkg2appimage and appimagetool;
- ArchImage, create AppImages for all distributions using Arch Linux packages. Powered by JuNest;
- Firefox for Linux scripts, easily install the official releases of Firefox for Linux;
- My AppImage packages the complete list of packages managed by me and available in this database;
- Snap2AppImage, try to convert Snap packages to AppImages.
© 2020-present Ivan Alessandro Sala aka 'Ivan-HC' - I'm here just for fun!
ko-fi.com | PayPal.me | Install "AppMan" | Back to "AppMan Index" | Go to "github.com/ivan-hc/AM" |
---|