Awesome
"AppMan", the rootless side of "AM" to manage all your apps locally
"AM"/"AppMan" is a set of scripts and modules for installing, updating, and managing AppImage packages and other portable formats, in the same way that APT manages DEBs packages, DNF the RPMs, and so on... using a large database of Shell scripts inspired by the Arch User Repository, each dedicated to an app or set of applications.
What is AppMan?
AppMan is a portable version of "AM", limited to installing and managing apps only locally and without root privileges.
The command name changes, from am to appman, but the script is the same.
"AM" on the contrary, provides a "fixed" installation, but can install and manage apps both locally and at the system level.
I recommend "AM" to privileged users who want to install and manage apps at multiple levels, and "AppMan" to non-privileged users who do not have large needs.
What does it do?
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.
What is this repository?
This repository is just a guide to using "AppMan", and is specific to "AppMan".
Where is the source code?
The source code can be found at github.com/ivan-hc/AM
Where to report a problem?
For any Issue, go to https://github.com/ivan-hc/AM/issues
How to add code?
For any Pull Request, go to https://github.com/ivan-hc/AM/pulls
If "AM" and "AppMan" have the same code, why a separate repository?
"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.
How to install "AppMan"?
To install "AppMan" you must first install the "core" dependencies from your package manager:
- "
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" itself.
- "
binutils
", contains a series of basic commands, including "ar
" which extracts .deb packages; - "
unzip
", to extract .zip packages; - "
tar
", to extract .tar packages;* - "
torsocks
", to connect to the TOR network; - "
zsync
", required by very few programs and AppImages (although it is mentioned in all installation scripts, it is often disabled because the managed .zsync files are often broken, especially for apps hosted on github.com).
Quick installation
Copy/paste the following one line command to download and run the "AM-INSTALLER" script
wget -q https://raw.githubusercontent.com/ivan-hc/AM/main/AM-INSTALLER && chmod a+x ./AM-INSTALLER && ./AM-INSTALLER
...below, the screenshot of what will appear.
Type "2" to install "AppMan", or "1" to install "AM". Any other key will abort the installation.
The above script will place the command appman
in your local "$PATH", at ~/.local/bin
(this path is the recommended one, since it allows AppMan to be updated in bulk with all other programs, using Topgrade.
Installation is complete!
Run appman -h
or go to "https://github.com/ivan-hc/AM/blob/main/README.md#options" to see all the available options.
Advantages of AppMan over "AM"
"AppMan" is a portable script, you can use it anywhere you want and it will update itself on the spot. "AM" on the other hand has a fixed installation, and requires root privileges to be installed.
Another advantage is the fact that it can be downloaded by anyone, even non-privileged users. On the contrary "AM" belongs only to the person who installed it, having permissions to access directories in /opt
.
Disadvantages of AppMan over "AM"
"AppMan" can only install and manage local apps, while "AM" can manage both AppMan apps and install them locally or system-wide.
If you are a user who doesn't like using root privileges, just use "AppMan".
How apps are installed
Locally installed apps can have a directory of your choice, depending on what you decided when you first started the appman
command.
For example, let's say you want to create and use the /home/USER/Applicazioni
directory, here is the structure of a locally embedded AppImage:
~/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
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 (but it is recommended to install it in
~/.local/bin
) - 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.
Guides and tutorials (external links)
The guides for "AM" are also applicable to AppMan, just replace the command am
with the command appman
.
By clicking the links below, you will be redirected to the pages of the "AM" repository, at github.com/ivan-hc/AM
- 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
- Sandbox an AppImage
- How to update or remove apps manually
- Downgrade an installed app to a previous version
- How to use multiple versions of the same application
- 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
- Ubuntu mess
- Wrong download link
Related projects
External tools and forks used in this project
- 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
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" |
---|