73

What is the best practices to leave this kind of file? I dont want to leave it on /Downloads folder

muru
  • 197,895
  • 55
  • 485
  • 740

6 Answers6

84

You can put AppImages anywhere you want and run them from there -- even USB thumbdrives or network shares.

However, the official recommendation by the AppImage developers is to create an extra directory, ${HOME}/Applications/ (or ${HOME}/.local/bin/ or ${HOME}/bin/) and store all AppImages there.

Kurt Pfeifle
  • 4,495
12

Try AppImageLauncher

you can set a directory to store all appimages,and it also creates desktop files

Shriraj Hegde
  • 541
  • 6
  • 8
  • 1
    How on earth is this not the standard and included in the system? I love Linux but why can't I just double click to install an AppImage... – Paul Spiesberger May 12 '21 at 20:40
  • 2
    @PaulSpiesberger probably still being experimented on... But it would be great to include this in distros since the size is negligible (less than 3 MB).

    This solves a huge problem with appimages - File associations

    Also, install is a misnomer probably, better terminology would be integrate. This is especially great for trying out applications because a single file can't leave files behind (which is rare in Linux anyway)

    – Shriraj Hegde May 13 '21 at 04:30
  • 1
    @PaulSpiesberger, the appimage is not an installer. It is an application that runs without the need for installing its files on your computer. Similar executables exist in Windows and other OSes. For example, Audacity comes in versions that can be run on drives. In fact, you can run Ubuntu from a drive without installing it on a machine. – Mark Lee May 14 '21 at 19:54
  • @MarkLee I know but my point is that ordinary users don't really care. I do not want to think about where I should keep my AppImages. I want to double click on the AppImage and get it "installed" => copied to a managed place on my computer and a launcher icon gets added to my OS menu. It should be as easy as on MacOS: I download the .app file, I double click and get prompted to move the app into my "programs folder" and the OS automatically adds a starter icon to my menu. My grandmother needs to be able to install AppImages and AppImageLauncher is coming damn close. – Paul Spiesberger May 15 '21 at 19:55
  • @PaulSpiesberger, then it will be a full-fledged installed app also requiring an uninstaller. Granny can have the image on her desktop. – Mark Lee May 16 '21 at 22:11
  • @MarkLee yes a uninstaller would be great, simply put: I want to see full integration of AppImages in a Linux desktop - because the problem is that the second time granny wants to start the program she will not find it in the menu nor will she remember where she downloaded the program... – Paul Spiesberger May 18 '21 at 18:02
  • 1
    @MarkLee

    It is not "installation", it's merely integration. Adding desktop file into ./local/share/applications isn't installation. Also, AppImage launcher creates an option to "de-integrate" appimage from system.

    – Shriraj Hegde May 18 '21 at 19:51
8

Appimage files are applications which does not need any installation to use.

You just need to click on them to run/start the application and then close it when done. So, you can keep them in any directory you want.

I myself keep them in a directory called 'Apps' on the desktop so that they are handy when ever I quickly want to use them.

MVSR
  • 307
4

While the answer "literally anywhere you want" is technically correct, I can identify with the desire to know the most sensible location for them.

For use by one user only

Put them in your home directory somewhere. Since it's only for you, and your home directory is entirely yours to decide how it's best organised, the choice is up to you, but a popular suggestion is:

~/.local/bin

Or, some set up a heirarchy directly within their home directory like:

~/bin

The disadvantage to the latter is that it visibly litters your home directory more.

Why a plain "bin" directory and not something AppImage specific? Well, there's no reason you can't name a directory "appimages" or something and put them in there. But the established meaning of "bin" associates it with any file that is directly executable, which an AppImage is. So it can share its place with other binary executables that are not AppImages should you want.

For use by any user

You essentially need somewhere outside your home directory.

But, it's important you don't use some directory that your operating system uses for its own software installation (like /bin, /usr, etc).

A suggestion:

/usr/local/bin

Unlike the rest of /usr the convention of the /usr/local tree is that it's a tree of software installation done manually by the administrator as opposed to by the operating system. So it kind of fits.

The alternative is to make up your own directory completely. You could even have it at root, like

/appimages

Or replace this with any sensible term you can think of. "applications" seems ok too.

Notes

Don't alter the file permissions. A Linux novice may assume that in order to make an app available to all users it needs to have its ownership changed or be given write/"777" permission to all users. It doesn't. It only needs to be readable and executable to whoever is running it, and can be owned by anyone - that is, "755" is appropriate.

Configuration for and files created by the AppImage aren't stored in the AppImage. They tend to be stored in the home directory of the user that's running it. It can essentially be treated like a binary executable running as the user who executed it.

Also, technically you don't need to move the executable outside of your home directory at all in order for others to be able to execute it, except that I like the modern convention that home directories are hidden to other users by default.

thomasrutter
  • 36,774
  • Re: "Don't alter the file permissions", most or all of the AppImages I've downloaded so far are non-executable and thus need to be given extra permissions to run, so I think that this is misleading. – drkvogel Mar 03 '22 at 10:18
  • 1
    Yeah, I did clarify that it needed to be executable, but I can see if I can make that clearer. – thomasrutter Mar 03 '22 at 23:08
2

...or {some_mountpoint}/Applications

probono
  • 1,139
0

~/.local/share/appimage is where i put them

to further have them integrated into the desktop i create wrapperscripts in ~/.local/bin/ like this: (i.e. ~/.local/bin/plover)

#!/bin/bash
appimage plover

which uses this despicable approach at ~/.local/bin/appimage:

#!/bin/bash
[[ $# -lt 1 ]]&&echo "usage: ${FUNCNAME[0]} PROGRAM_NAME"&&return
(1>/dev/null nohup "$(eval "$(find ~/.local/share/appimage -maxdepth 1 -type f -name "${1}*")")"&) \
    &&(killall "$1"||:)
sjas
  • 351
  • 3
  • 11