/ README.md
README.md
1 # "AM" Application Manager 2 ### Database & solutions for all AppImages and portable apps for GNU/Linux! 3 4 <div align="center"> 5 6 | <img src="https://raw.githubusercontent.com/ivan-hc/AM/main/sample/sandbox.gif"> | <img src="https://raw.githubusercontent.com/ivan-hc/AM/main/sample/list.gif"> | <img src="https://raw.githubusercontent.com/ivan-hc/AM/main/sample/about.gif"> | 7 | - | - | - | 8 | *sandbox AppImages* | *list available apps* | *info about the apps* | 9 | <img src="https://raw.githubusercontent.com/ivan-hc/AM/main/sample/install.gif"> | <img src="https://raw.githubusercontent.com/ivan-hc/AM/main/sample/query.gif"> | <img src="https://raw.githubusercontent.com/ivan-hc/AM/main/sample/files.gif"> | 10 | *install applications* | *query lists using keywords* | *show the installed apps* | 11 | <img src="https://raw.githubusercontent.com/ivan-hc/AM/main/sample/backup-overwrite.gif"> | <img src="https://raw.githubusercontent.com/ivan-hc/AM/main/sample/update.gif"> | <img src="https://raw.githubusercontent.com/ivan-hc/AM/main/sample/nolibfuse.gif"> | 12 | *create and restore snapshots* | *update everything* | *get rid of libfuse2* | 13 14 </div> 15 16 "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. 17 18 "AM"/"AppMan" aims to be the default package manager for all AppImage packages, giving them a home to stay. 19 20 You can consult the entire **list of managed apps** at [**portable-linux-apps.github.io/apps**](https://portable-linux-apps.github.io/apps). 21 22 ------------------------------------------------------------------------ 23 ## What does it do? 24 25 "AM" easily integrates portable programs and AppImages system-wide (by default) or locally (using the `--user` flag), allows for their updates and management from the command line, integrates them into the application menu and can even assemble them on the fly as an AUR helper. 26 27 "AM" 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: 28 1. creation of the base directories and the removal script 29 2. download of the package 30 3. creation of the version file and the update script 31 4. possibly, extraction of the icons and .desktop files 32 33 ## What doesn't it do! 34 **"AM" is NOT responsible for the malfunction of individual apps!** This is a problem of those who develop or package them upstream. 35 36 You can use the command `am -a {PROGRAM}` to view the description and get the sources **to contact the program maintainers**, or `am -d {PROGRAM}` to **download and read the script on your desktop to trace and reach the source safely**. 37 38 ------------------------------------------------------------------------ 39 # Main index 40 ------------------------------------------------------------------------ 41 42 [Installation](#installation) 43 44 - [AM installation structure](#am-installation-structure) 45 - [Uninstall](#uninstall) 46 - [How are apps installed](#how-are-apps-installed) 47 - [How to set the path to local apps](#how-to-set-the-path-to-local-apps) 48 - [What programs can be installed](#what-programs-can-be-installed) 49 - [Supported third-party databases](#supported-third-party-databases) 50 - [How to replace AM database](#how-to-replace-am-database) 51 52 [How to update all programs, for real!](#how-to-update-all-programs-for-real) 53 - [How to update all installed apps](#how-to-update-all-installed-apps) 54 - [How to update everything using Topgrade](#how-to-update-everything-using-topgrade) 55 56 [Options](#options) 57 58 [Guides and tutorials](#guides-and-tutorials) 59 60 [Instructions for Linux Distro Maintainers](#instructions-for-linux-distro-maintainers) 61 62 [Troubleshooting](#troubleshooting) 63 64 [Related projects](#related-projects) 65 66 ------------------------------------------------------------------------ 67 # Installation 68 To install "AM" you must first install the "core" dependencies from your package manager: 69 - "`coreutils`" (contains "`cat`", "`chmod`", "`chown`"...); 70 - "`curl`", to check URLs; 71 - "`grep`", to check files; 72 - "`sed`", to edit/adapt installed files; 73 - "`wget`" to download all programs and update "AM" itself. 74 - "`sudo`" or "`doas`", for installing and removing programs at the system level. 75 76 <details> 77 <summary>Additionally, you may need these optional dependencies, click here.</summary> 78 79 - "`binutils`", contains a series of basic commands, including "`ar`" which extracts .deb packages; 80 - "`less`", to read the ever-longer lists; 81 - "`unzip`", to extract .zip packages; 82 - "`tar`", to extract .tar* packages; 83 - "`torsocks`", to connect to the TOR network; 84 - "`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). 85 86 </details> 87 88 ------------------------------------------------------------------------ 89 ### Quick installation 90 The "AM-INSTALLER" script allows you to choose "[AppMan](#what-is-appman)" instead of "AM", briefly explaining the differences between the two. 91 92 Copy/paste the following one line command to download and run the "[AM-INSTALLER](https://github.com/ivan-hc/AM/blob/main/AM-INSTALLER)" script 93 ``` 94 wget -q https://raw.githubusercontent.com/ivan-hc/AM/main/AM-INSTALLER && chmod a+x ./AM-INSTALLER && ./AM-INSTALLER 95 ``` 96 ...below, the screenshot of what will appear. 97 98  99 100 Type "1" to install "AM", "2" to install "[AppMan](#what-is-appman)". Any other key will abort the installation. 101 102 **Installation is complete!** 103 104 Run `am -h` or jump to "**[Usage](#usage)**" to see all the available options. 105 106 ------------------------------------------------------------------------ 107 ### Other installation methods 108 As already said, the "AM-INSTALLER" script in the previous paragraph helps you choosing between "[AppMan](#what-is-appman)" and "AM", briefly explaining the differences. However, installing "AM" can be much simpler than that. All "AM-INSTALLER" does when you select "1" is to download and run another script, named "[INSTALL](https://github.com/ivan-hc/AM/blob/main/INSTALL)". That said, you can easily install "AM" without "intermediaries". 109 110 #### Using "GIT" 111 Copy/paste the following commands 112 ``` 113 git clone https://github.com/ivan-hc/AM.git 114 cd AM 115 chmod a+x INSTALL 116 sudo ./INSTALL 117 ``` 118 119 #### Using "Wget" 120 Copy/paste the following one line command command 121 ``` 122 wget https://raw.githubusercontent.com/ivan-hc/AM/main/INSTALL && chmod a+x ./INSTALL && sudo ./INSTALL 123 ``` 124 This is definitely the quickest method of all! 125 126 **NOTE, the reason why I gave priority to the "AM-INSTALLER" script in this guide is because "AM" can be used in different forms. In fact, not all users can afford to install "AM" with root privileges. That's why "[AppMan](#what-is-appman)" also exists.** 127 128 ------------------------------------------------------------------------ 129 ### What is AppMan? 130 AppMan is a portable version of "AM", limited to installing and managing apps only locally and without root privileges. 131 132 The command name changes, from `am` to `appman`, but the script is the same. 133 134 "AM" on the contrary, provides a "fixed" installation, but can install and manage apps both locally and at the system level. 135 136 - "AM" is for privileged users who want to install and manage apps at multiple levels 137 - "AppMan" is the way to go for non-privileged users or those who don't have great needs 138 139 If you want to know more about "AppMan", visit https://github.com/ivan-hc/AppMan 140 141 ------------------------------------------------------------------------ 142 ### AM installation structure 143 The classic "AM" installation has the following structure: 144 ``` 145 /opt/am/APP-MANAGER ==> /usr/local/bin/am 146 /opt/am/modules 147 /opt/am/remove 148 ``` 149 Where the command `/usr/local/bin/am` is just a symbolic link to `/opt/am/APP-MANAGER`. The directory `/opt/am/modules` contains the modules "not vital" for "AM" but necessary for managing the apps. The script `/opt/am/remove` is instead necessary for removing "AM". 150 151 ------------------------------------------------------------------------ 152 ### Uninstall 153 To uninstall "AM" simply run this command: 154 ``` 155 sudo /opt/am/remove 156 ``` 157 or from the CLI directly 158 ``` 159 am -R am 160 ``` 161 NOTE, it is recommended to remove apps first using the `-R` option, and then "AM", since locally installed apps may have a different path than `/opt`, see "[How are apps installed](#how-are-apps-installed)", below. 162 163 **If you are an AppMan user**, `appman` is a portable script, you can simply remove it manually. **If you used AM-INSTALLER**, you simply need to remove the `$HOME/.local/bin/appman` script. To remove applications, the same rule as AM, above, applies. Their location is the one you indicated in the `$HOME/.config/appman/appman-config` file. 164 165 ------------------------------------------------------------------------ 166 ### How are apps installed 167 The system-wide AppImage integration has the following structure: 168 ``` 169 /opt/$PROGRAM/ 170 /opt/$PROGRAM/$PROGRAM 171 /opt/$PROGRAM/AM-updater 172 /opt/$PROGRAM/remove 173 /opt/$PROGRAM/icons/$ICON-NAME 174 /usr/local/bin/$PROGRAM 175 /usr/local/share/applications/$PROGRAM-AM.desktop 176 ``` 177 Locally installed apps can have a directory of your choice, depending on what you decided when you first started `am -i --user {PROGRAM}` or when you started `appman` (if you chose [AppMan](#what-is-appman)) or by using the `am --user` command. 178 179 In fact, the `--user` command can be used as a "flag" for application installation options, allowing you to integrate them locally and without root permissions, as AppMan does. 180 181 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: 182 ``` 183 ~/Applicazioni/$PROGRAM/ 184 ~/Applicazioni/$PROGRAM/$PROGRAM 185 ~/Applicazioni/$PROGRAM/AM-updater 186 ~/Applicazioni/$PROGRAM/remove 187 ~/Applicazioni/$PROGRAM/icons/$ICON-NAME 188 ~/.local/bin/$PROGRAM 189 ~/.local/share/applications/$PROGRAM-AM.desktop 190 ``` 191 192 ------------------------------------------------------------------------ 193 ### How to set the path to local apps 194 195 The configuration file for the path to locally installed applications is located in `~/.config/appman` and contains the path you specified when you first launched an option to install applications using the `--user` flag, for example: 196 ``` 197 am -i --user {PROGRAM} 198 ``` 199 If you are an AppMan user, you can simply launch any option. 200 201 When you first launch it, you will be asked to specify a path to the applications. You can specify any directory or subdirectory you want, **even outside of $HOME**, as long as it is not privileged. Even a USB stick. 202 203 NOTE: by modifying the contents of `~/.config/appman`, you will only change the paths for any subsequent operation, while apps and modules stored in the old path will not be manageable. It is recommended to remove the apps first. 204 205 ------------------------------------------------------------------------ 206 ### What programs can be installed 207 "AM" installs, removes, updates and manages only standalone programs, ie those programs that can be run from a single directory in which they are contained. 208 209 1. **PORTABLE PROGRAMS** from official sources (see Firefox, Thunderbird, Blender, NodeJS, Chromium Latest, Platform Tools...), extracted from official .deb/tar/zip packages. 210 2. **APPIMAGES**, from both official and unofficial sources (I also create unofficial AppImages), or compiled on-the-fly with [pkg2appimage](https://github.com/AppImage/pkg2appimage) and [appimagetool](https://github.com/AppImage/AppImageKit), like an AUR helper, from official archives. 211 3. **FIREFOX PROFILES** to run as webapps, the ones with suffix "ffwa-" in the apps list. 212 4. **THIRD-PARTY LIBRARIES** if they are missing in your repositories. 213 214 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](https://github.com/ivan-hc/AM/tree/main/programs), divided by architecture. 215 216 You can view basic information, site links and sources using the related command `am -a {PROGRAM}`, or visit [**portable-linux-apps.github.io/apps**](https://portable-linux-apps.github.io/apps). 217 218 #### Supported third-party databases 219 Another feature of "AM" is extensibility, thanks to the management of applications from external databases through the use of dedicated "flags" to be used during the installation process (option `-i` or `install`), the creation of lists (`-l` or `list`) and searches (`-q` or `query`) 220 ``` 221 am -i --{FLAG} {PROGRAM} 222 am -i --{FLAG} --user {PROGRAM} 223 am -l --{FLAG} 224 am -q --{FLAG} {KEYWORD} 225 ``` 226 These databases have the task of supporting and enriching the list of applications that can be installed via "AM". Here are the ones currently supported: 227 - "[Toolpacks](https://github.com/Azathothas/Toolpacks)", the flag to use is `--toolpack` 228 229 Third-party databases can show basic information normally with the option `-a` or `about`, no flag is needed here. However, the name of the package will be shown with an extension equivalent to the flag used to install it. For example `{PROGRAM}` will be `{PROGRAM}.toolpack` if coming from the "Toolpacks" database. 230 231 Same thing, you can use `am -i {PROGRAM}.toolpack` or `am -i --user {PROGRAM}.toolpack` to install the program without using the flag. 232 233 #### How to replace AM database 234 One thing I care a lot about is **continuity**, and as I have seen over the years, not all open source developers are able to maintain a project. This could happen to me in the future. I don't want it to be that way. 235 236 Because of this, I have made some essential variables "customizable": 237 - `APPSDB`, i.e. the "raw" directory of the architecture in use, containing the installation scripts (default value *https://raw.githubusercontent.com/ivan-hc/AM/main/programs/$ARCH*), this is mainly used in `-i`, `-d` and `-s`/`-u` 238 - `APPSDBLIST`, i.e. the list of applications available for that architecture (default value *https://raw.githubusercontent.com/ivan-hc/AM/main/programs/$ARCH-apps*), this is used every time lists are updated, for example in `-l`, `-q` and `-s`/`-u` 239 - `APPIMAGES_LIST`, i.e. the list of AppImages available in the database (default value *https://raw.githubusercontent.com/Portable-Linux-Apps/Portable-Linux-Apps.github.io/main/x86_64-appimages*), used in `-ia` and `-l`/`-q` with the `--appimages` flag 240 - `AMCATALOGUEMARKDOWNS`, i.e. the pages in .md format from the catalog of applications available in this database (default value *https://portable-linux-apps.github.io/apps*, add an appname with extension .md to see the content of one file), this is used in `-a` 241 - `AMCATALOGUEICONS`, i.e. the icons in .png format available in the catalog of applications available in this database (default value *https://portable-linux-apps.github.io/icons*, add an appname with extension .png to see one file), this is used in `-i`, in case the installation script fails to get an icon for the application 242 - `AMSYNC`, if set to "1" prevents AM from updating itself and updating modules when running `-s` or `-u` 243 244 it is enough to `export` the variables above and respect the destination file format (follow the URLs in parentheses) in case you decide to open a new community-driven database that can make up for the lack of support in this repository. 245 246 I did this to not tie users to this database and to allow them to use AM and all its features if I, Ivan, am unable to intervene for any reason. 247 248 There are many discontinuous projects. Should this become one too, it will not be obsolete. 249 250 ------------------------------------------------------------------------ 251 252 | [Back to "Main Index"](#main-index) | 253 | - | 254 255 ------------------------------------------------------------------------ 256 ## How to update all programs, for real! 257 Most of the apps managed by "AM" have a script called `AM-updater`. It tells how updates are checked when running the `am -u` command. 258 259 In most cases, the "version comparison" is used between the installed one (file `version`) and an online source (official or not, depending on how hard or easy it is to find a download URL or just a number, using the terminal). In other cases, AppImages can rely on "`appimageupdatetool`" if they support "delta updates" (install it with the command `am -i appimageupdatetool`). However, there are some programs that update themselves (and among these the most famous is certainly Firefox, all official development builds). 260 261 ### How to update all installed apps 262 Option `-u` or `update` updates all the installed apps and keeps "AM"/"AppMan" in sync with the latest version and all latest bug fixes. 263 264 1. To update only the programs, use `am -u --apps` / `appman -u --apps` 265 2. To update just one program, use `am -u $PROGRAM` / `appman -u $PROGRAM` 266 3. To update all the programs and "AM"/"AppMan" itself, just run the command`am -u` / `appman -u` 267 4. To update only "AM"/"AppMan" and the modules use the option `-s` instead, `am -s` / `appman -s` 268 269 The `-u` option can also be combined with the `--debug` flag to show the output of installed application updates. 270 271 ### How to update everything using Topgrade 272 Keeping your system up to date usually involves invoking multiple package managers. This results in big, non-portable shell one-liners saved in your shell. To remedy this, Topgrade detects which tools you use and runs the appropriate commands to update them. 273 274 Install the "`topgrade`" package using the command 275 ``` 276 am -i topgrade 277 ``` 278 or 279 ``` 280 am -i --user topgrade 281 ``` 282 Visit [github.com/topgrade-rs/topgrade](https://github.com/topgrade-rs/topgrade) to learn more. 283 284 ------------------------------------------------------------------------ 285 286 | [Back to "Main Index"](#main-index) | 287 | - | 288 289 ------------------------------------------------------------------------ 290 # OPTIONS 291 292 <details> 293 <summary>Click here to see the full list of options</summary> 294 295 ------------------------------------------------------------------------ 296 ## USAGE: 297 298 am {OPTION} 299 am {OPTION} {PROGRAM} 300 301 ------------------------------------------------------------------------ 302 ### `about`, `-a` 303 304 am -a {PROGRAM} 305 306 **Description**: 307 308 Shows more info about one or more apps. 309 310 ------------------------------------------------------------------------ 311 ### `apikey` 312 313 am apikey {Github Token} 314 am apikey delete 315 316 **Description**: 317 318 Accede to github APIs using your personal access tokens. The file named "ghapikey.txt" will be saved in ~/.local/share/AM. Use "`del`" to remove it. 319 320 ------------------------------------------------------------------------ 321 ### `backup`, `-b` 322 323 am -b {PROGRAM} 324 325 **Description**: 326 327 Create a snapshot of the current version of an installed program. 328 329 ------------------------------------------------------------------------ 330 ### `clean`, `-c` 331 332 am -c 333 334 **Description**: 335 336 Removes all the unnecessary files and folders. 337 338 ------------------------------------------------------------------------ 339 ### `config`, `-C`, `--config` 340 341 am -C {PROGRAM} 342 343 **Description**: 344 345 Set a dedicated `$XDD_CONFIG_HOME` for one or more AppImages. 346 347 ------------------------------------------------------------------------ 348 ### `downgrade`, `--rollback` 349 350 am --rollback {PROGRAM} 351 352 **Description**: 353 354 Download an older or specific app version. 355 356 ------------------------------------------------------------------------ 357 ### `download`, `-d` 358 359 am -d {PROGRAM} 360 am -d --convert {PROGRAM} 361 362 **Description**: 363 364 Download one or more installation scripts to your desktop or convert them to local installers for "AppMan". To test the scripts, use the "`am -i '/path/to/script'`" command or enter the directory of the script and run the "`am -i ./script`" command, even using dedicated flags, if necessary (see "`-i`"). 365 366 ------------------------------------------------------------------------ 367 ### `extra`, `-e` 368 369 am -e user/project {APPNAME} 370 am -e user/project {APPNAME} {KEYWORD} 371 372 **Description**: 373 374 Install AppImages from github.com, outside the database. This allows you to install, update and manage them all like the others. Where "`user/project`" can be the whole URL to the github repository, give a name to the program so that it can be used from the command line. Optionally, add an "univoque" keyword if multiple AppImages are listed. 375 376 NOTE: Since this is an "install" option, you can add the "`--user`" flag (before "`user/project`") to install apps locally. See "`--user`" at the bottom to learn more. 377 378 ------------------------------------------------------------------------ 379 ### `files`, `-f`, `-fi` 380 381 am -f 382 am -f --byname 383 am -f --less 384 385 **Description**: 386 387 Shows the list of all installed programs, with sizes. By default apps are sorted by size, use "`--byname`" to sort by name. With the option "`--less`" it shows only the number of installed apps. Option "`-fi`" only shows installed apps, not the AppImages integrated with the "`--launcher`" option. 388 389 ------------------------------------------------------------------------ 390 ### `help`, `-h` 391 392 am -h 393 394 **Description**: 395 396 Prints this message. 397 398 ------------------------------------------------------------------------ 399 ### `home`, `-H`, `--home` 400 401 am -H {PROGRAM} 402 403 **Description**: 404 405 Set a dedicated $HOME directory for one or more AppImages. 406 407 ------------------------------------------------------------------------ 408 ### `icons`, `--icons` 409 410 am --icons {PROGRAM} 411 am --icons --all 412 413 **Description**: 414 415 Allow installed apps to use system icon themes. You can specify the name of the apps to change or use the "`--all`" flag to change all of them at once. This will remove the icon path from the .desktop file and add the symbolic link of all available icons in the `~/.local/share/icons/hicolor/scalable/apps` directory. The "`--icons`" 416 option can be used as "flag" in the "`-i`" and "`-ia`" options. 417 418 ------------------------------------------------------------------------ 419 ### `install`, `-i` 420 421 am -i {PROGRAM} 422 am -i --debug {PROGRAM} 423 am -i --force-latest {PROGRAM} 424 am -i --icons {PROGRAM} 425 am -i --sandbox {PROGRAM} 426 427 **Description**: 428 429 Install one or more programs or libraries from the list. With the "`--debug`" option you can see log messages to debug the script. For more details on "`--force-latest`", see the dedicated option, below. Use the "`--icons`" flag to allow the program to use icon themes. It can also be extended with additional flags (see "`--toolpack`"). The "`--sandbox`" flag allows you to set sandboxes for AppImage packages. 430 431 NOTE: Since this is an "install" option, you can add the "`--user`" flag to install apps locally. See "`--user`" at the bottom to learn more. 432 433 ------------------------------------------------------------------------ 434 ### `install-appimage`, `-ia`, `-ias` 435 436 am -ia {PROGRAM} 437 am -ia --debug {PROGRAM} 438 am -ia --force-latest {PROGRAM} 439 am -ia --icons {PROGRAM} 440 am -ia --sandbox {PROGRAM} 441 am -ias {PROGRAM} 442 443 **Description**: 444 445 Same as "install" (see above) but for AppImages only. Option "`-ias`" (aka Install AppImage & Sandox) is equivalent to "`-ia --sandbox`", to set sandboxes for AppImage packages. 446 447 ------------------------------------------------------------------------ 448 ### `lock` 449 450 am lock {PROGRAM} 451 452 **Description**: 453 454 Prevent an application being updated, if it has an"AM-updater" script. 455 456 ------------------------------------------------------------------------ 457 ### `list`, `-l` 458 459 am -l 460 am -l --all 461 am -l --appimages 462 463 **Description**: 464 465 Shows the list of all the apps available, or just the AppImages. It can also be extended with additional flags, the "`--all`" flag allows you to consult the set of all supported databases (see "`--toolpack`"). 466 467 ------------------------------------------------------------------------ 468 ### `newrepo`, `neodb` 469 470 am newrepo add {URL}\{PATH} 471 am newrepo select 472 am newrepo on\off 473 am newrepo purge 474 am newrepo info 475 476 **Description**: 477 478 Set a new default repo, use "`add`" to append the path to a local directory or an online URL, then use "`select`" to use it by default, a message will warn you about the usage of this repo instead of the default one. Use "`on`"/"`off`" to enable/disable it. Use "`purge`" to remove all 3rd party repos. Use "`info`" to see the source from where installation scripts and lists are taken. 479 480 ------------------------------------------------------------------------ 481 ### `nolibfuse` 482 483 am nolibfuse {PROGRAM} 484 485 **Description**: 486 487 Convert old AppImages and get rid of "libfuse2" dependence. 488 489 ------------------------------------------------------------------------ 490 ### `overwrite`, `-o` 491 492 am -o {PROGRAM} 493 494 **Description**: 495 496 Overwrite apps with snapshots saved previously (see "-b"). 497 498 ------------------------------------------------------------------------ 499 ### `query`, `-q` 500 501 am -q {KEYWORD} 502 am -q --all {KEYWORD} 503 am -q --appimages {KEYWORD} 504 am -q --pkg {PROGRAM1} {PROGRAM2} 505 506 **Description**: 507 508 Search for keywords in the list of available applications, add the "`--appimages`" option to list only the AppImages or add "`--pkg`" to list multiple programs at once. It can also be extended with additional flags, the "`--all`" flag allows you to consult the set of all supported databases (see "`--toolpack`"). 509 510 ------------------------------------------------------------------------ 511 ### `remove`, `-r` 512 513 am -r {PROGRAM} 514 515 **Description**: 516 517 Removes one or more apps, requires confirmation. 518 519 ------------------------------------------------------------------------ 520 ### `-R` 521 522 am -R {PROGRAM} 523 524 **Description**: 525 526 Removes one or more apps without asking. 527 528 ------------------------------------------------------------------------ 529 ### `sandbox`, `--sandbox` 530 531 am sandbox {PROGRAM} 532 533 **Description**: 534 535 Run an AppImage in a sandbox using Aisap. 536 537 NOTE, "`--sandbox`" can be used as a flag in "`-i`" and "`-ia`" or can be replaced using the option "`-ias`" (aka Install AppImage & Sandox). 538 539 ------------------------------------------------------------------------ 540 ### `sync`, `-s` 541 542 am -s 543 544 **Description**: 545 546 Updates this script to the latest version hosted. 547 548 ------------------------------------------------------------------------ 549 ### `template`, `-t` 550 551 am -t {PROGRAM} 552 553 **Description**: 554 555 Generate a custom installation script. To test the scripts, use the "`am -i '/path/to/script'`" command or enter the directory of the script and run the "`am -i ./script`" command, even using dedicated flags, if necessary (see "`-i`"). 556 557 ------------------------------------------------------------------------ 558 ### `unlock` 559 560 am unlock {PROGRAM} 561 562 **Description**: 563 564 Unlock updates for the selected program (nulls "`lock`"). 565 566 ------------------------------------------------------------------------ 567 ### `update`, `-u`, `-U` 568 569 am -u 570 am -u --apps 571 am -u --debug 572 am -u --apps --debug 573 am -u {PROGRAM} 574 am -u --debug {PROGRAM} 575 am -u --launcher 576 577 **Description**: 578 579 Update everything. Add "`--apps`" to update only the apps or write only the apps you want to update by adding their names. Add the "`--debug`" flag to view the output of AM-updater scripts. Add the "`--launcher`" flag to try to update only local AppImages integrated with the "`--launcher`" option (see "`--launcher`"). 580 581 ------------------------------------------------------------------------ 582 ### `version`, `-v` 583 584 am -v 585 586 **Description**: 587 588 Shows the version. 589 590 ------------------------------------------------------------------------ 591 ### `--devmode-disable` 592 593 am --devmode-disable 594 595 **Description**: 596 597 Undo "`--devmode-enable`" (see below). 598 599 ------------------------------------------------------------------------ 600 ### `--devmode-enable` 601 602 am --devmode-enable 603 604 **Description**: 605 606 Use the development branch (at your own risk). 607 608 ------------------------------------------------------------------------ 609 ### `--disable-notifications` 610 611 am --disable-notifications 612 613 **Description**: 614 615 Disable notifications during apps update. 616 617 ------------------------------------------------------------------------ 618 ### `--disable-sandbox` 619 620 am --disable-sandbox {PROGRAM} 621 622 **Description**: 623 624 Disable the sandbox for the selected app. 625 626 ------------------------------------------------------------------------ 627 ### `--enable-notifications` 628 629 am --enable-notifications 630 631 **Description**: 632 633 Enable notifications during apps update (nulls "`--disable-notifications`"). 634 635 ------------------------------------------------------------------------ 636 ### `--force-latest` 637 638 am --force-latest {PROGRAM} 639 640 **Description**: 641 642 Downgrades an installed app from pre-release to "latest". 643 644 ------------------------------------------------------------------------ 645 ### `--launcher` 646 647 am --launcher /path/to/${APPIMAGE} 648 649 **Description**: 650 651 Drag/drop one or more AppImages in the terminal and embed them in the apps menu and customize a command to use from the CLI. 652 653 NOTE that "`--launcher`" can be used as a flag in "`-u`" to try to update the integrated AppImages (see "`-u`"). This works only if "appimageupdatetool" is installed and delta updates are supported. This flag does not work miracles, I strongly suggest to use options "`-ia`" and "`-e`" instead. 654 655 ------------------------------------------------------------------------ 656 ### `--system` 657 658 am --system 659 660 **Description**: 661 662 Switch "AM" back to "AM" from "AppMan Mode" (see "`--user`"). 663 664 ------------------------------------------------------------------------ 665 ### `--toolpack` 666 667 am -i --toolpack {PROGRAM} 668 am -i --toolpack --user {PROGRAM} 669 am -l --toolpack 670 am -q --toolpack {KEYWORD} 671 672 **Description**: 673 674 This is a flag to use in "`-i`" to install Toolpack programs, in "`-l`" to list all available Toolpacks, and "`-q`" to search the Toolpack list. Toolpack is a collection of programs external to the "AM" database. Visit https://github.com/Azathothas/Toolpacks to learn more. 675 676 NOTE, for installations you can use "`.toolpack`" as the package extension instead of using the flag. 677 678 ------------------------------------------------------------------------ 679 ### `--user`, `appman` 680 681 am --user 682 683 **Description**: 684 685 Made "AM" run in "AppMan Mode", locally, useful for unprivileged users. This option only works with "AM". 686 687 The "`--user`" option can also be used just as a "flag" for installation options. For example: 688 689 - Use it to install applications locally, option "`-i`" or "`install`": 690 691 am -i --user {PROGRAM} 692 693 - Also suboptions of "`-i`" can work with this flag: 694 695 am -i --user --debug {PROGRAM} 696 am -i --user --force-latest {PROGRAM} 697 am -i --user --icons {PROGRAM} 698 am -i --user --debug --force-latest {PROGRAM} 699 am -i --user --debug --force-latest --icons {PROGRAM} 700 701 - Same for AppImages only, option "`-ia`" or "`install-appimage`": 702 703 am -ia --user {PROGRAM} 704 am -ia --user --debug {PROGRAM} 705 am -ia --user --force-latest {PROGRAM} 706 am -ia --user --icons {PROGRAM} 707 am -ia --user --debug --force-latest {PROGRAM} 708 am -ia --user --debug --force-latest --icons {PROGRAM} 709 710 - External AppImages can be installed like this as well, option "`-e`" or "`extra`": 711 712 am -e --user user/project {APPNAME} 713 am -e --user user/project {APPNAME} {KEYWORD} 714 715 NOTE, "AM" 9 or higher is also able to, update and manage apps locally, by default, and without having to switch to "AppMan Mode". 716 717 </details> 718 719 ------------------------------------------------------------------------ 720 721 | [Back to "Main Index"](#main-index) | 722 | - | 723 724 ------------------------------------------------------------------------ 725 # Guides and tutorials 726 Below you can access the documentation pages related to the use of "AM", complete with tutorials and demonstration videos, depending on the topic you are interested in: 727 728 ------------------------------------------------------------------------ 729 - [Install applications](docs/guides-and-tutorials/install.md) 730 - [Install only AppImages](docs/guides-and-tutorials/install-appimage.md) 731 - [Install and sandbox AppImages in one go](docs/guides-and-tutorials/install-appimage.md#install-and-sandbox-appimages-in-one-go) 732 - [Install AppImages not listed in this database but available in other github repos](docs/guides-and-tutorials/extra.md) 733 - [List the installed applications](docs/guides-and-tutorials/files.md) 734 - [List and query all the applications available on the database](docs/guides-and-tutorials/list-and-query.md) 735 - [Update all](docs/guides-and-tutorials/update.md) 736 - [Backup and restore installed apps using snapshots](docs/guides-and-tutorials/backup-and-overwrite.md) 737 - [Remove one or more applications](docs/guides-and-tutorials/remove.md) 738 - [Convert Type2 AppImages requiring libfuse2 to New Generation AppImages](docs/guides-and-tutorials/nolibfuse.md) 739 - [Integrate local AppImages into the menu by dragging and dropping them](docs/guides-and-tutorials/launcher.md) 740 - [How to create a launcher for a local AppImage](docs/guides-and-tutorials/launcher.md#how-to-create-a-launcher-for-a-local-appimage) 741 - [How to remove the orphan launchers](docs/guides-and-tutorials/launcher.md#how-to-remove-the-orphan-launchers) 742 - [AppImages from external media](docs/guides-and-tutorials/launcher.md#appimages-from-external-media) 743 - [Update scattered AppImages](docs/guides-and-tutorials/launcher.md#update-scattered-appimages) 744 - [Sandbox an AppImage](docs/guides-and-tutorials/sandbox.md) 745 - [How to enable a sandbox](docs/guides-and-tutorials/sandbox.md#how-to-enable-a-sandbox) 746 - [How to disable a sandbox](docs/guides-and-tutorials/sandbox.md#how-to-disable-a-sandbox) 747 - [Sandboxing example](docs/guides-and-tutorials/sandbox.md#sandboxing-example) 748 - [About Aisap sandboxing](docs/guides-and-tutorials/sandbox.md#about-aisap-sandboxing) 749 - [How to update or remove apps manually](docs/guides-and-tutorials/remove.md#how-to-update-or-remove-apps-manually) 750 - [Downgrade an installed app to a previous version](docs/guides-and-tutorials/downgrade.md) 751 - [How to use multiple versions of the same application](docs/guides-and-tutorials/backup-and-overwrite.md#how-to-use-multiple-versions-of-the-same-application) 752 - [Create and test your own installation script](docs/guides-and-tutorials/template.md) 753 - [Option Zero: "AppImages"](docs/guides-and-tutorials/template.md#option-zero-appimages) 754 - [Option One: "build AppImages on-the-fly"](docs/guides-and-tutorials/template.md#option-one-build-appimages-on-the-fly) 755 - [Option Two: "Archives and other programs"](docs/guides-and-tutorials/template.md#option-two-archives-and-other-programs) 756 - [Option Three: "Firefox profiles"](docs/guides-and-tutorials/template.md#option-three-firefox-profiles) 757 - [How an installation script works](docs/guides-and-tutorials/template.md#how-an-installation-script-works) 758 - [How to test an installation script](docs/guides-and-tutorials/template.md#how-to-test-an-installation-script) 759 - [How to submit a Pull Request](docs/guides-and-tutorials/template.md#how-to-submit-a-pull-request) 760 - [Third-party databases for applications (NeoDB)](docs/guides-and-tutorials/newrepo.md) 761 - [BSD, freeBSD and derivative systems: configuration and troubleshooting](docs/guides-and-tutorials/bsd.md) 762 763 ------------------------------------------------------------------------ 764 765 | [Back to "Main Index"](#main-index) | 766 | - | 767 768 ------------------------------------------------------------------------ 769 # Instructions for Linux Distro Maintainers 770 You can package "AM" for Debian, Fedora, Arch Linux, Gentoo and many more GNU/Linux distros using the following configuration: 771 ``` 772 /usr/bin/am 773 /usr/lib/am/modules 774 ``` 775 where "`/usr/bin/am`" is the script "[APP-MANAGER](https://github.com/ivan-hc/AM/blob/main/APP-MANAGER)" and "`/usr/lib/am/modules`" is the directory "[modules](https://github.com/ivan-hc/AM/tree/main/modules)" with all its content. 776 777 Applications will continue to be installed in /opt, as always. What changes from the normal "AM" installation is the update of the CLI and modules, which will instead be completely managed by the package manager in use (APT, DNF, PacMan/YAY...). 778 779 **As for "AppMan"**, **there is no packaging**, as it is a standalone or self-updating script, and needs to be in a read-write directory without root privileges. 780 781 ------------------------------------------------------------------------ 782 783 | [Back to "Main Index"](#main-index) | 784 | - | 785 786 ------------------------------------------------------------------------ 787 # Troubleshooting 788 Below you can access documentation pages for common issues and frequently asked questions: 789 790 ------------------------------------------------------------------------ 791 - [An application does not work, is old and unsupported](docs/troubleshooting.md#an-application-does-not-work-is-old-and-unsupported) 792 - [Cannot download or update an application](docs/troubleshooting.md#cannot-download-or-update-an-application) 793 - [Cannot mount and run AppImages](docs/troubleshooting.md#cannot-mount-and-run-appimages) 794 - [Failed to open squashfs image](docs/troubleshooting.md#failed-to-open-squashfs-image) 795 - [Spyware, malware and dangerous software](docs/troubleshooting.md#spyware-malware-and-dangerous-software) 796 - [Stop AppImage prompt to create its own launcher, desktop integration and doubled launchers](docs/troubleshooting.md#stop-appimage-prompt-to-create-its-own-launcher-desktop-integration-and-doubled-launchers) 797 - [The script points to "releases" instead of downloading the latest stable](docs/troubleshooting.md#the-script-points-to-releases-instead-of-downloading-the-latest-stable) 798 - [Ubuntu mess](docs/troubleshooting.md#ubuntu-mess) 799 - [Wrong download link](docs/troubleshooting.md#wrong-download-link) 800 801 ------------------------------------------------------------------------ 802 803 | [Back to "Main Index"](#main-index) | 804 | - | 805 806 ------------------------------------------------------------------------ 807 # Related projects 808 #### External tools and forks used in this project 809 - *[aisap](https://github.com/mgord9518/aisap), sandboxing solutions for AppImages* 810 - *[appimagetool](https://github.com/AppImage/appimagetool), get rid of libfuse2 from your AppImages* 811 - *[pkg2appimage](https://github.com/AppImage/pkg2appimage), create AppImages on the fly from existing .deb packages* 812 - *[repology](https://github.com/repology), the encyclopedia of all software versions* 813 814 #### Partner projects, i.e. those that actively contribute to this project 815 - *[Toolpacks](https://github.com/Azathothas/Toolpacks), Largest Collection of Multi-Platform Pre-Compiled Static Binaries* 816 817 #### My other projects 818 - *[AppImaGen](https://github.com/ivan-hc/AppImaGen), easily create AppImages from Ubuntu PPAs or Debian using pkg2appimage and appimagetool* 819 - *[ArchImage](https://github.com/ivan-hc/ArchImage), create AppImages for all distributions using Arch Linux packages. Powered by JuNest* 820 - *[Firefox for Linux scripts](https://github.com/ivan-hc/Firefox-for-Linux-scripts), easily install the official releases of Firefox for Linux* 821 - *[My AppImage packages](https://github.com/ivan-hc#my-appimage-packages) the complete list of packages managed by me and available in this database* 822 - *[Snap2AppImage](https://github.com/ivan-hc/Snap2AppImage), try to convert Snap packages to AppImages* 823 824 ------------------------------------------------------------------------ 825 826 ###### *You can support me and my work on [**ko-fi.com**](https://ko-fi.com/IvanAlexHC) and [**PayPal.me**](https://paypal.me/IvanAlexHC). Thank you!* 827 828 -------- 829 830 *© 2020-present Ivan Alessandro Sala aka 'Ivan-HC'* - I'm here just for fun! 831 832 ------------------------------------------------------------------------ 833 834 | [**ko-fi.com**](https://ko-fi.com/IvanAlexHC) | [**PayPal.me**](https://paypal.me/IvanAlexHC) | [Install "AM"/"AppMan"](#installation) | ["Main Index"](#main-index) | 835 | - | - | - | - | 836 837 ------------------------------------------------------------------------