Hi, this post is an overview of how to install software ('apps'/'programs'/'packages') on Linux Mint. I am mostly making this post for someone who is new to using Mint, and aim to make it as simple as possible while hopefully explaining everything necessary. These instructions should work the same across the three desktops offered by Mint (Cinnamon, Xfce, MATE).
Sections
Software Centre
Always start here, it is the easiest and most hassle-free way of installing software. It works similarly to an app store on a phone/tablet, where you can just search for what you want to install by software name or function. The software centre will provide for automatic updates, as well as add an icon/launcher to the start menu. The software centre is found in the start menu, usually under the 'System' category (it is also pinned on the side of the menu in the Cinnamon desktop, you can right-click and add it to your 'Favourite Applications' sub-menu or to your panel to access it quicker).
The Software Centre is made by the Linux Mint team, and pulls 'system packages' from the distro it is based on (Ubuntu for mainline Linux Mint, Debian for LMDE), and 'Flatpaks' from Flathub (a multi-distro software hub). Some software may offer both a system package and a Flatpak, the differences between the two are explained below, and the choice of either one is personal to your needs.
System Packages tend to be a bit older, and may be a few versions behind the latest release of the software. The software will still work fine, it just may be missing new features, optimizations, and bugfixes in from newer releases. If an app has all the features you need and functions, then the system package may be sufficient. System packages also generally play better with your hardware, and may be a better/more reliable option for software that will be accessing second harddrives (gaming/mass storage), or using your video card (gaming/streaming/recording).
Flatpaks are generally up to date with the latest versions of software, and are a good option if you need that (bug fixes/new features/security updates). They are 'sandboxed' from your system, which is a good security feature preventing apps from accessing hardware and files that they shouldn't, but can create functionality problems. Most of these problems cam be solved by installing 'Flatseal' from the software centre, which is a permissions manager for Flatpaks. Think of how an app on a phone/tablet will ask permission before it uses the camera for the first time, Flatseal manages that manually. It will load a list of all installed Flatpaks and allow you to turn on or off specific permissions like; giving a browser access to your 'home' directory as opposed to just the 'downloads' folder, allowing an app to use your video card (gaming/rendering), or allow an app to use your laptop webcam. Unfortunately, some Flatpaks are just missing certain functionality that the main version of a software has, an example being the OBS Flatpak not allowing usage of a video card (can't hardware encode).
Direct Downloads
If you can't find the software/version you need via the above (much easier) method, then you may need to directly download it from a developer's website. These may be available in three forms that will be functional on a Linux Mint system; .deb packages, AppImages, and 'tarballs' (.tar).
.deb packages and 'GDebi'
This is the basic file type for packages (apps) on Debian based systems, and derivitives like Ubuntu and Linux Mint. Think of them like a .apk file on Android, or more analogously like a .exe on Windows (actually more of a UWP app, but who cares). These should function just fine in any Debian deirivitive system, but will need to be manually installed and updated. The easiest way on Mint is to install 'GDebi' from the software centre, once that is done there will be an option when you right-click on downloaded .deb packages that allows you to open it with GDebi. GDebi will extract and install the .deb package, and add an icon/launcher to the menu automatically.
When there is an update to the software (you will need to monitor this yourself), you can download the new .deb and install again with GDebi, which will automatically replace the current installed version without you having to delete the old one manually. This is a fine option for a static/stable software you just want installed and are okay to leave alone, like art programs. It is not a good option for software that requires regular security updates like web browsers, as you may leave your system vulnerable when running behind on updates.
AppImages
These are like something in between a package file and a .zip file. They are fully self contained apps, that have all dependencies included, and should run on any distro. After downloading one on Mint, you can right-click to access 'Permissions' and check on 'Allow this file to run as a program'. After this you should just be able to double-click to run the AppImage like any executable app/launcher.
AppImages are not installed on your system like other packages, and do not automatically add icons/launchers to your start menu. If you want a menu icon, you can add it manually by right-clicking the menu button (LM) and choosing 'Edit Applications', this will launch an applet that allows you to make your own menu icons. You can navigate through the file manager browse option to pick the AppImage as the executable, and add a custom icon if needed (it should pull one from the appimage automatically). You will need to keep AppImages in the same place for menu icons to work, it may be a good idea to make a separate AppImages storage folder in your home directory, but they will launch from wherever you leave them and if you are unbothered they can just sit in your downloads folder or on your desktop. AppImages are always the most up to date/latest version of a software when downloaded, but new versions will need to be manually downloaded, and depending on the name of the file they may need to be re-added to the menu system manually. Good option for when you need the absolute latest software, and are okay with a bit of manual setup. Some potentially usefull links:
- How to create launcher for AppImage program? - Linux Mint Forums
- (solved) How to get AppImageLauncher - Linux Mint Forums
Tarballs (.tar/.tar.gz/.tar.xz etc.)
These are compressed folders with all the stuff needed for a package to install/run, similar to AppImages but a bit more on the .zip side. These need to be extracted (like a zip) and then you need to follow the software's instructions. Most will allow you to just open the folder and run a file with the software name as an executable (give that file 'run as program' permission by right-click>Permissions). Most will also allow you to install it to your system, and come with a 'install' readme file telling you how to do this and where to install it to (may require a few simple terminal commands).
These can be added to menu manually in the same way as AppImages, by right-clicking the menu button (LM) and choosing 'Edit Applications', this will launch an applet that allows you to make your own menu icons. You can navigate through the file manager browse option to pick the executable file (usually named after the software), and add a custom icon if needed (it may pull one from the extracted .tar folder automatically). I think AppImages are a bit easier to manage compared to tarballs and really recommend them instead, but on occasion some software will only offer a tarball direct download. Some potentially useful links:
- Installation from tar [Solved] - Linux Mint Forums
- How do I install a tar.gz file? - Linux Mint Forums
Extra Methods
These methods may not work with everything :(
Wine & Virtualization
If you can't find the software you are looking for via any of the above methods, but it is available on Windows, you may need to attempt running that version. This can be done with compatibility software like Wine/Proton, or inside a Windows virtual machine. These are more technically involved tasks that aren't always beginner friendly, but I have made posts about them before that may be of some use; 'Running Windows Apps on Linux (My Experiences So Far)', and 'Virtualization as Easily as Possible'. Full functionality is not guaranteed with either of these options, and intermediate level configuration may be required.
Web Apps
Linux Mint comes with an inbuilt webapp creator, you should see this in the menu under 'Internet', listed as 'Web Apps'. This allows you to make a launcher for one specific website, with a custom icon and custom browser settings. Many messaging apps and social media sites will function out of a browser, so this can be an easy drop in replacement if there is no equivalent app on Linux. With the icons, it will usually pull a logo from the website that you add, but you can use a custom one themed to your desktop (maybe a purple logo, or an old aero style logo). Once set up with the browser of your choice, that webapp will be in the default browser settings without add ons.
This can be useful for sites that are broken by strict adblockers and privacy add ons like some streaming services, or sites that only have full functionality in a specific browser type (e.g. using a chromium-based webapp when your default firefox-based browser lacks a function). Login cookies and data don't carry over between webapps and the base browser, so this can be a clean way to separate a privacy invasive service you may need to use (social media/messaging) while preventing/reducing cross-site tracking. It can also be a helpful workflow thing, like having 'a button for neocities' or another site you use frequently. The webapps hide the URL and toolbar so that you can 'just' use the one website, but if you move your cursor to the top of the page they will drop down and you can apply settings and add-ons as you normally would. There may be more useful info on the webapp-manager github page.