All Projects → ivan-hc → AppMan

ivan-hc / AppMan

Licence: GPL-3.0 license
A portable AppImage manager that installs, removes, updates and manages software (locally) like APT or Pacman do.

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to AppMan

cordova-plugin-apkupdater
This plugin allows your Android app to download and install compressed updates without the Google Play Store.
Stars: ✭ 46 (+27.78%)
Mutual labels:  updater, installer
ProgramUpdater
PUF - Program Updater Framework. A library to easier the task of program updating
Stars: ✭ 14 (-61.11%)
Mutual labels:  updater, installer
zap
⚡ Delightful AppImage package manager
Stars: ✭ 354 (+883.33%)
Mutual labels:  installer, appimage
Project
⭐️ Antares Project Application Skeleton. This is the very first place you should start. It allows you to create a brand new awesome project in easy few steps.
Stars: ✭ 84 (+133.33%)
Mutual labels:  updater, installer
Appimageupdate
AppImageUpdate lets you update AppImages in a decentral way using information embedded in the AppImage itself.
Stars: ✭ 261 (+625%)
Mutual labels:  updater, appimage
iQuail
Easy to use cross-platform installer & updater for desktop applications
Stars: ✭ 20 (-44.44%)
Mutual labels:  updater, installer
AppImageUpdater
AppImage Updater for Humans built with QML/C++ with Qt5 ❤️.
Stars: ✭ 31 (-13.89%)
Mutual labels:  updater, appimage
ministaller
Lightweight installer/updater for portable desktop applications
Stars: ✭ 15 (-58.33%)
Mutual labels:  updater, installer
Apkupdater
APKUpdater is an open source tool that simplifies the process of finding updates for your installed apps.
Stars: ✭ 1,028 (+2755.56%)
Mutual labels:  updater, installer
Unified Hosts Autoupdate
Quickly and easily install, uninstall, and set up automatic updates for any of Steven Black's unified hosts files.
Stars: ✭ 185 (+413.89%)
Mutual labels:  updater, installer
Firupdater
Fir.im通道APK更新器,使用简单,让自己的demo快速具备升级功能
Stars: ✭ 148 (+311.11%)
Mutual labels:  updater
Laravel Selfupdater
This package provides some basic methods to implement a self updating functionality for your Laravel application. Already bundled are some methods to provide a self-update mechanism via Github or some private repository via http.
Stars: ✭ 170 (+372.22%)
Mutual labels:  updater
MoalemYar
A personal project for class management, using various technologies like WPF, Entityframwork, CodeFirst, Sqlite, Migration and more
Stars: ✭ 53 (+47.22%)
Mutual labels:  updater
gameshell-setup
Enhance your Gameshell 💪
Stars: ✭ 56 (+55.56%)
Mutual labels:  installer
Aerialcompanion
A companion app for the Aerial screen saver for macOS that takes care of install and auto-updates.
Stars: ✭ 144 (+300%)
Mutual labels:  updater
magento2-installer-bash-script
Simplistic Magento 2 Installer Bash Script
Stars: ✭ 38 (+5.56%)
Mutual labels:  installer
Appupdater
A library that checks for your apps' updates on Google Play, GitHub, Amazon, F-Droid or your own server. API 9+ required.
Stars: ✭ 1,793 (+4880.56%)
Mutual labels:  updater
Update Notifier
The idea for this module came from the desire to apply the browser update strategy to CLI tools, where everyone is always on the latest version. We first tried automatic updating, which we discovered wasn't popular. This is the second iteration of that idea, but limited to just update notifications.
Stars: ✭ 1,594 (+4327.78%)
Mutual labels:  updater
Kymsu
Keep Your macOs Stuff Updated (KYMSU)
Stars: ✭ 119 (+230.56%)
Mutual labels:  updater
v2ray-deb
v2ray debian/ubuntu安装包
Stars: ✭ 143 (+297.22%)
Mutual labels:  installer

"AppMan" is a bash script able to install, update and remove thousands of standalone programs (any AppImage package, but also the official versions of Firefox, Thunderbird, Brave, Blender and hundreds of other programs provided on their official sites).

Since the new 4.0.0 version, AppMan is also portable, ie it does not need a speciphic path to work, you can use it anywhere on your system.

"AppMan" is based on the previous stable version of "AM" Application Manager and converts all the installation scripts from the main database of "AM" to scripts that can install and integrate all the programs for the current user only and without root privileges. As opposed to "AM", AppMan installs all the programs locally, in the user's $HOME.

Being "AppMan" a bash-based script, it can be used on all the architectures supported by the Linux kernel and works with all the GNU/Linux distributions.

Since v4.0.0 AppMan is also available as an AppImage, at https://github.com/ivan-hc/AppMan/releases


Introducing "AppMan"

Installation

Choose the directory for your applications

Usage

Features

Uninstall

Known issues

Conclusions


Introducing "AppMan"

AppMan is an application manager for AppImages and other standalone programs that works like APT or Pacman.

The main goal of this tool is to provide the same updated applications to multiple GNU/Linux distributions without having to change the package manager or the distro itself. This means that whatever distro you use, you will not miss your favorite programs or the need for a more updated version. AppMan also aims to be a merger for GNU / Linux distributions, using not just AppImage as the main package format, but also other standalone programs, so without having to risk breaking anything on your system: no daemons, no shared libraries. Just your program and your launcher.

AppImage is a standalone package format, the best choice if you are looking for an alternative packaging format to use on multiple GNU/Linux distributions, it uses fewer resources than Snap and Flatpak, and works completely autonomously, using its own libraries. AppMan aims to give it a home to stay.

How it works

All AppMan does is to convert all the installation scripts for "AM" (that normally must be executed with ROOT privileges) in normal scripts that can manage applications in the local folder of the current user. This allows more users to be able to better configure their profile.

What programs can be installed

AppMan installs/removes/updates/manages only standalone programs, ie those programs that can be run from a single directory in which they are contained (where $PROGRAM is the name of the application, AppMan installs them always into a directory you choose the first time you run it thanks to a prompt that will ask you where to install your apps (for example you can create an "Applications" or "Programs" or "Whatever-name-you-want" folder named "Applicazioni" or "Programmi" or "Qual-si-voglia" instead if your system language is italian, to prevent the discrepanchy of your folder's name compared to the other available in your $HOME directory).

These programs are taken:

  • from official sources (see Firefox, Thunderbird, Blender, NodeJS, Chromium Latest...);
  • from official .deb packages (see Brave, Vivaldi, Google Chrome...);
  • from the repositories and official sites of individual developers (if an archive is not available, an official AppImage is used, see Libreoffice, OnlyOffice);
  • from tar archives of other GNU/Linux distributions (see Chromium, Chromium Ungoogled...);
  • from AUR or other Arch Linux-related sources (see Palemoon, Spotify, WhatsApp...);
  • from AppImage recipes to be compiled with pkg2appimage and appimagetool (see Anydesk, qBittorrent, Dropbox, all the games from the "KDE Games" suite...);
  • from unofficial repositories of developers external to the project concerned (most of the time they are programs in AppImage format), but only if an official release is not available (see the various WINE, Zoom, VLC, GIMP...).

"AppMan" can even create Firefox profiles to run as webapps (as an alternative to the countless Electron-based apps/AppImages)!

You can consult basic information, links to sites and sources used through the related appman -a $PROGRAM command or by clicking on the related section of the "AM" repository, here.

Repository and Multiarchitecture

Each program is installed through a dedicated script, and all these scripts are listed in the "AM repository" and divided by architecture.

Click on the link of your architecture to see the list of all the apps available on the "AM" repository:

If you are interested, you can deliberately join the "AM" project.


Installation

Step-by-step

  1. Enable ~/.local/bin in your $PATH:

    mkdir -p ~/.local/bin && echo 'export PATH=$PATH:$(xdg-user-dir USER)/.local/bin' >> ~/.bashrc
    
  2. Download the script from this repository and made it executable:

    wget -q https://raw.githubusercontent.com/ivan-hc/AppMan/main/appman-portable -O appman && chmod a+x ./appman
    
  3. Optionally you can place the script in your new local $PATH:

    mv ./appman ~/.local/bin/appman 
    

Quick

Just copy/paste the following line:

mkdir -p ~/.local/bin && echo 'export PATH=$PATH:$(xdg-user-dir USER)/.local/bin' >> ~/.bashrc && wget -q https://raw.githubusercontent.com/ivan-hc/AppMan/main/appman-portable -O appman && chmod a+x ./appman && mv ./appman ~/.local/bin/appman 

Choose the directory for your applications

Run appman (if in $PATH) or ./appman, you'll read a prompt that asks for a destination directory or path for your installed Applications. You can always modify the destination folder by editing the "appman-config" file under ~/.config/appman


Usage

-a, about Shows the basic information, links and source of each app:

appman -a $PROGRAM

-b, backup Save the current version of a program you are interested in, the snapshot will be stored in /home/$USER/.am-snapshots/$PROGRAM (see "-o"):

appman -b $PROGRAM

-c, clean Removes all the unnecessary files:

appman -c

-conv, convert Convert one or more scripts downloaded (see the -d option) or created (see the -t option) for "AM" to installation scripts that can install all the applications locally. This allows you to create all the installation scripts you want without having to wait them to be created for "AM" first:

appman -conv $PROGRAM

-d, download Download an installation script from the "AM" repository to your desktop without installing it:

appman -d $PROGRAM

-f, files Shows the installed programs managed by "AppMan":

appman -f

-h, help Prints this message:

appman -h

-i, install Install a program. This will be downloader/created into a dedicated ~/.opt/$PROGRAM directory (containing a script to remove it and another one to update it), the command is linked to ~/.local/bin and a launcher AM-$PROGRAM.desktop will be created in ~/.local/share/applications:

[sudo] appman -i $PROGRAM

-l, list Shows the list of apps available in the "AM" repository:

appman -l

-o, overwrite Overwrite the existing version of the program with a saved snapshot from /home/$USER/.am-snapshots/$PROGRAM (see "-b"):

appman -o $PROGRAM

-q, query Use one or more keywords to search for in the list of available applications:

appman -q $KEYWORD

-r, remove Removes the program and all the other files listed above using the instructions in ~/.opt/$PROGRAM/remove. Confirmation is required (Y or N, default is Y):

[sudo] appman -r $PROGRAM

-s, sync Updates "AppMan" to a more recent version:

appman -s

-t, template This option allows you to generate a custom script for "AM" from a list of different templates that may be vary according to the kind of $PROGRAM you want to create/install/update. Once you choose a number, the script will download the template by renaming it using the argument "$PROGRAM" you provided above:

appman -t $PROGRAM

-u, update Update all the installed programs:

appman -u

To update just one program and read the shell's output:

appman -u $PROGRAM

-v, --version, version Shows the version of "AppMan":

appman -v

-w, web Shows the URLs of the sites/sources of $PROGRAM:

appman -w $PROGRAM

--disable-completion Disable bash completion (see the next option):

appman --disable-completion

--enable-completion Enable bash completion (this will add two lines in your ~/.bash_completion file) to complete a keyword with the TAB key using the names of all installable applications:

appman --enable-completion

lock Lock the selected $PROGRAM to the current installed version, this only works if a dedicated "AM-updater" script exists:

appman lock $PROGRAM

unlock Unlock updates for the selected $PROGRAM. This option nulls "lock", the update file is renamed as "AM-updater" again, so that it can be intercepted when executing the "appman -u" command (see "-u"):

appman unlock $PROGRAM

Features


How to enable bash completion

"AppMan" has its inbuilt bash completion script that can be enabled using the following command:

appman --enable-completion

This will create (if it not exists) a ~/.bash_completion script in your $HOME, needed to complete a keyword with the TAB key using the names of all the main options and the name of the scripts of all the applications available in the "AM" repository. To disable bash completion:

appman --disable-completion

Snapshots: backup your app and restore to a previous version

"AppMan" supports snapshots of all installed applications. A selected program can be copied locally into your home folder.

  • option -b or backup creates the snapshot, usage:

    appman -b $PROGRAM
    
  • option -o or overwrite allows you to roll back to a previous version of the program. Usage:

    appman -o $PROGRAM
    

All the snapshots are stored into an hidden /home/$USER/.am-snapshots folder containing other subfolders, each one has the name of the programs you've done a backup before. Each snapshot is named with the date and time you have done the backup. To restore the application to a previous version, copy/paste the name of the snapshot when the -o option will prompt it.


Uninstall

To uninstall "AppMan" just remove it. To uninstall all the apps installed instead it is necessary to execute the remove script available into the main directory of each application you've installed (with "AppMan" it is easier with the appman -r $PROGRAM1 $PROGRAM2 $PROGRAM3 ... command. The configuration's file of "AppMan" (the one containing the name of the directory you've choosen for your apps) is available in ~/.config/appman.


Known issues

"AppMan" itself works well, but there are a few things to consider before, after and during use:

  • The "AppMan" scripts use the basic commands usually found in any GNU / Linux distribution (wget, curl, grep, egrep, find, rm, mkdir, mv, ls, echo...), make sure you have them before performing any operation;
  • The task of "AppMan" is solely to install / remove / update the applications managed by it. Problems related to the failure of an installed program or any related bugs are attributable solely to its developers. You can view the link to each project's repository or official site via the "appman -a $PROGRAM" command;
  • The developer of AM has compiled the application installation scripts based on any links made publicly available by the owners of the affected software (or from official repositories of other progressive release distributions, for example Debian Unstable, Arch Linux, Slackware ...) . These urls (with particular reference to the official ones of the developers) may not work in the future if the developers decide to modify the site, the tags, the repository or any detail that the script refers to to install / update the application. In this case, please report the problem to the "AppMan" team who will modify or (in the worst case) remove the installation script until the problem is resolved;
  • "AppMan" is an open source project, you can read and compile the scripts to your liking, as long as they don't damage your system. All scripts have been tested on Debian Testing / Unstable (64 bit) and Debian 11 (32 bit) and should work on any GNU / Linux distribution, regardless of the initialization process (with or without systemd).

Conclusions

AppMan has a somewhat bizarre history, as it was predecessor of "AM" before, which had to correct its mistakes, and a more efficient tool improved several months later, then, using the same scripts as "AM".

Having encouraged you to visit this page is already a huge achievement for me, being AppMan my really first creation on GitHub. I'm not a developer, but a simple enthusiast who in my spare time tries to learn new things and then convert them into something more useful for the community. If only I had enough time I would devote myself completely to this, but I can't. I love to stay here because I express myself this way, and this means to spend a lot of hours of my free time on the PC trying to write scripts.

If you wish, you can support me, this work and my passion with a small donation, I will gladly appreciate it. Thank you.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].