Skip to content
/ AppMan Public

AppImage package manager to install, update, sandbox and manage ALL of them locally thanks to "AM", the ever-growing AUR-inspired database listing 2500+ portable apps and programs for GNU/Linux. Manage your AppImages with the ease of APT and the power of PacMan.

License

Notifications You must be signed in to change notification settings

ivan-hc/AppMan

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

"AppMan", the rootless side of "AM" to manage all your apps locally


"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

"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.


IMPORTANT!

"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):

  1. creation of the base directories and the removal script
  2. download of the package
  3. creation of the version file and the update script
  4. 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.


AppMan Index

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

Installation

Uninstall

Go to "github.com/ivan-hc/AM" for more

Related projects


External links index

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)

Guides and tutorials

Instructions for Linux Distro Maintainers

Troubleshooting


Differences between "AM" and "AppMan"

Even though the two CLI utilities share the same body, there are some substantial differences:

  1. "AM" is installed system-wide (in /opt/am), "AppMan" is portable and rootless;
  2. "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;
  3. "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;
  4. "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"

What programs can be installed

"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.

  1. 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.
  1. 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.
  1. FIREFOX PROFILES to run as webapps, the ones with suffix "ffwa-" in the apps list.

  2. 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"

Installation

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.

AM-INSTALLER

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".

Core dependences

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.

How to install "AppMan"

"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.

Use "AppMan" in "$PATH"

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

Use "AppMan" in "Portable Mode"

"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

Structure of the "AppMan" installation

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"

Uninstall

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"

Related projects

External tools and forks used in this project

My other projects

  • 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.

You can support me and my work on ko-fi.com and PayPal.me. Thank you!

© 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"

About

AppImage package manager to install, update, sandbox and manage ALL of them locally thanks to "AM", the ever-growing AUR-inspired database listing 2500+ portable apps and programs for GNU/Linux. Manage your AppImages with the ease of APT and the power of PacMan.

Topics

Resources

License

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •  

Languages