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.
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.
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.Try AppImageLauncher
you can set a directory to store all appimages,and it also creates desktop files
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.
...or
{some_mountpoint}/Applications
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:
Or, some set up a heirarchy directly within their home directory like:
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:
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
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.