APT, Synaptic & Bodhi App Center all use the same repositories; apt and synaptic are tools for searching, downloading, and installing deb packages from repositories directly. The Bodhi App Center is a website with links that trigger applications to install from repos. Installing software by any of those methods are reliable ways to install anything from Ubuntu or Bodhi maintained repositories, which offer thousands and thousands of software packages.
When software is not in official Ubuntu or Bodhi repositories, or you want to run a different version, there are a number of alternatives that work with Bodhi.
1. Snap / Flatpak / AppImage
2. PPA / "unofficial" repositories
- 4. script
5. generic binary, or tar.gz/xz/zip/etc containing a binary
6. source code
I recommend using Timeshift to set a restore point before installing something sketchy. You probably will not have to use it, but after your first snapshot, its only takes a minute to create another, and will make you feel more confident to experiment and try installing stuff knowing you can easily revert.
1. AppImages are specially packed portable binary files you just download and run, everything needed is supposed to be built in, no installation required or offered. Snap and Flatpak are container formats with required overhead and built in dependencies, and all these formats are not as integrated as a traditionally installed application; maybe the app wont be able to see other apps files or it wont use your theme or something like that. I personally avoid these type formats because I'd rather have traditionally installed software, but they work fine, just not necessarily as light or well integrated. Some of the software they offer is proprietary, crippled, requires registration, or is closed source, as it is provided directly by the software developer, similar for example to the google play store. Ubuntu's company runs the only snap store and usage requires installation of snapd and for GUI store the snap version of gnome-software. Flatpak is a similar format from xdg, with flathub being the most popular app store. After installing your very first flatpak, you must restart one last time before flatpak apps will show in Moksha menu. 2.
Installing a flathub appstore GUI:
sudo apt install --no-install-recommends gnome-software-plugin-flatpak
sudo flatpak remote-add flathub https://flathub.org/repo/flathub.flatpakrepo
reboot # or just logout and login again
Personal Package Archives (PPA
s) are repositories meant to work for most Ubuntu based users. Sometimes they contain newer versions of software than in Ubuntu main repos, sometimes maintained by app developer, sometimes volunteer/porter/builder, etc. Of course pay attention to what you're adding, cuz bodhi/ubuntu hasn't officially blessed them, so use common sense, but in general if I want a newer version of software or want software that the author provides or recommends a PPA or repository for, this is my preferred method
. There are also projects that don't use Ubuntu's launchpad PPA method but provide instructions to add keys and repositories directly, often hosted by opensuse build system. These are basically the same idea, often providing repositories for non-ubuntu based users as well. In either case, follow the instructions recommended for your specific ubuntu release version to add ppa or repository. Once added, you can install and update with apt or synaptic like official repos.
Adding PPA and installing current smtube:
sudo add-apt-repository ppa:rvm/smplayer
sudo apt install smtube
Checking Ubuntu Release Version with lsb_release -a:
3. deb is the debian package format that are used for all software packages hosted in repositories used by apt. It is a zipfile with the files and installation info and scripts in it. Sometimes you may obtain these directly from a software company because they are commercial proprietary software, i.e. Microsoft Teams or Google Chrome. Sometimes you might want to try something from a compatible distribution's repository (i.e. Linux Mint, Kylin, Elementary OS,etc). Common sense also applies, if you trust the source, and apt is happy to install it, it's probably fine. Apt will not tell you about updates to software installed directly from deb, but their dependencies will be managed automatically when you install them with apt. Sometimes a debfile's install script will add repositories for you so you will in fact get apt updates, i.e. Microsoft VScode. Sometimes if you try to install something too new or too old or meant for another distro, you may not be immediately successful due to unavailable dependencies in repository. In some cases you may be able to resolve that. In some cases you may not (at least not without breaking other things.)
Downloading current Google Chrome then installing debfile with apt
sudo apt install ./google-chrome-stable_current_amd64.deb
4.Sometimes something will be offered as a build or install script, which you run and it's supposed to build and/or install for you. Nvidia and brother printer drivers from their website are like that. Again common sense, and you can look at the script and see what commands it's going to do. 5.Generic linux files
you just unzip and run. If you don't have the dependencies installed already, they'll give you errors, and they don't necessarily include an installer; if you want to install you may need to do some stuff as root, or setup your own menu entries and icons, etc. Sometimes they're zipped in such a way you can just extract them into /usr for installation. Common sense applies when you grab some random program and run it... I heard someone once wrote malware for linux somewhere, you're probably not running an anti-virus.... anything is possible...
6. Some programs provide very clear instructions on how to build from source yourself on Debian/Ubuntu based Linux than even an inexperienced user can copy and paste. If you follow the steps correctly, you'll probably obtain source code (perhaps clone a github source repository), install some packages (build tools, development libraries), run make or cmake or configure or whatever the instructions say and you'll make your own generic Linux files that will most likely run cuz you had to install more dependencies to build than you'll need to run it. Sometimes the instructions will not be so clear, or expect more experienced users so skip "obvious" details, or you'll follow them and something still wont work because something changed somewhere since the day the instructions were written.7.
I didn't list it above, but if you read this far and want another method, how about packages from non-debian based Linux, like redhat's rpm
packages? Well, you are welcome to try but this is a last-resort method but it is does not qualify as a reliable method at all, high chance of installation failure for anything with complicated dependencies:
sudo apt install alien
sudo alien install /path/to/whatever.rpm