If you recently got into Linux, a lot of things will be different from your previous platform and you may feel lost. This is normal as Linux has a bit of a learning curve. You’ll get more comfortable as you learn the fundamentals of the new system, one of which is installing and managing packages. Packages are basically a collection of files bundled together to constitute a program. They’re normally installed from repositories, which are locations for storing packages. The official Ubuntu repositories, or repos, rank among the largest with over 60,000 packages. You’ll most commonly use the apt package manager to install .deb packages. But there are other packaging formats and install methods like snap, flatpak, appimages, etc. too. We’ll cover all such topics in this article. Apt Advanced Packaging Tool (APT) is the main package manager on Ubuntu. Before installing packages with apt, you’ll want to update your package index. This will ensure you download the latest version of the package from the official repos. sudo apt update To install packages, all you need to do is specify the package name like so sudo apt install flameshot Some packages will have long/complicated names, or there may be multiple packages with similar names. So, how can you confirm that you’re about to install the correct package? First of all, you’ll want to use keywords to search through the available packages. There are numerous ways to do this, but the easiest is apt search. apt search flameshot After listing the relevant packages, you can get more detailed info on a specific one using apt policy or apt show. apt policy flameshot apt show flameshot The update command mentioned earlier only updates the information regarding which versions of packages are available in the repos. To actually download and install available updates, you have to use the upgrade command. sudo apt upgrade Finally, if you want to uninstall a package, you can use the remove command. sudo apt remove flameshot Note: By default, you can only install packages from the Main repository (Canonical-supported software). But Ubuntu has other repositories with a ton of useful packages too. In order to install packages from these repos, you’ll need to enable them first or you won’t find the packages. sudo add-apt-repository universe sudo add-apt-repository multiverse sudo add-apt-repository restricted Snap While apt is used on pretty much all Debian-based distros, snap is a package management system mostly used on Ubuntu. There are various technical differences between .deb packages and snaps, such as snaps being containerized with all necessary dependencies. These have both good and bad implications for the end user. Some snaps are larger in size, slower to launch at first, and sometimes unstable. On the other hand, some programs are only available as snaps, and snaps also auto-update which is convenient. It’s similar to apt in terms of command-line usage. You can search for packages using keywords like so snap search discord You can get detailed info on a specific snap with the info command. snap info discord You can install a snap by specifying the name. snap install discord You can list installed snaps like so snap list And finally, you can uninstall a specific snap with the remove command. snap remove discord Ubuntu Store Linux may be a command-line-focused platform, but most distros do support GUI-based methods to get things done. The Software Center is the default graphical method for installing and managing packages on Ubuntu. The packages here are generally installed from the Snap Store, but you can also change the source and install deb packages instead. Additionally, you can manage installed packages from the Installed tab, or install available updates from the Updates tab. Bonus Tip: If the Ubuntu Store feels limited, check out Synaptic. It’s a powerful but intuitive graphical package manager that lets you search, filter, install, and remove packages and much more. sudo apt install synaptic Local Install A lot of popular programs are not included in the official repositories. There are various ways to install the programs in such cases, one of which is to get the .deb package directly from the developer. These packages are portable and commonly used for installing programs offline. After downloading a package, you can install it by entering the full path like so sudo apt install /home/anup/Downloads/discord-0.0.25.deb Or, if the file is in the current directory, you can simply enter the filename like so sudo apt install ./discord-0.0.25.deb You can also install the deb file graphically. Simply right-click it and select Open With Another Application > Software Install. If you have any third-party package installers like GDebi installed, you can use those as well. Click on Install in the Software Center and enter your password for authentication. PPA Personal Package Archives (PPAs) are another way to distribute packages not found in the official repos. As the packages in the Ubuntu repos aren’t frequently updated, users also use PPAs to get the latest version of programs. You can use the add-apt-repository script to add the PPA to your sources list first. For instance, let’s add the Mozilla Team PPA. sudo add-apt-repository ppa:mozillateam/ppa Now, update the package index to make the packages from this archive available via apt. sudo apt update Finally, you can install the packages from this PPA. sudo apt install thunderbird The official Mozilla PPA is obviously a reliable source, but sometimes you may want to add PPAs from fairly unknown devs. Just exercise a bit of caution when doing this as not all devs can be trusted equally. AppImages AppImages are a portable packaging format. Rather than installing programs, appimages come as a single file that can be made executable. You can use chmod to do this. chmod a+x filename.AppImage Or, you can right-click the appimage and select Properties. There, you can Allow executing the file as a program from the Permissions tab. Then, you can double-click the appimage to run it, or launch it from the terminal like so ./filename.AppImage Flatpak As Ubuntu already has apt and snap, Flatpak isn’t that popular but it’s still used by a significant amount of users. It uses a central repository called Flathub from where you can install packages. sudo apt install flatpak You can search for these packages with the search command. flatpak search brave Then, you can install the package using the Name or Application ID. flatpak install brave flatpak install com.brave.Browser You can check out further CLI options with the help command. flatpak --help Archived Packages The most popular archiving format on Ubuntu is tarballs, but zip and rar files are also common. In order to install packages distributed in such formats, you’ll need to unarchive them first. This is most easily done from the file explorer. Simply double-click or right-click the file and select Open With Archive Manager. Then, press Extract to extract the files. To do the same from the terminal, you’ll need to use the appropriate command according to the file type. To extract Tarballs, use tar vxf /file/path.tar vxf ~/Desktop/Tor/tor-browser.tar.xz To extract Zip files, use unzip /file/path.unzip newarchive.zip To extract Rar files, use rar x /file/path.rar x ~/Downloads/myarchive.rar After extracting the files, you may find a .deb package, in which case you can install it as covered above. Or you may find an AppImage or a .desktop file. In such cases, you can make it executable and run it directly, which we also covered earlier. Finally, if the package provides an install script, you can go to the directory where it’s located, make it executable, and run it. chmod a+x install.sh ./install.sh Building From Source Compiling a package from source is an advanced way to install packages with the exact build and features that you want. The exact process is highly variable as some packages will have a ton of dependencies and possible config options while others will have minimal requirements or even an install script that handles everything for you. You should refer to the package’s documentation on GitHub or the dev’s official site for instructions on building from source. Typically though, the process goes something like this. You install the required dependencies such as build-essential. sudo apt install build-essential Then you clone or download the source code and navigate to the directory. git clone https://github.com/gitrepo/package.git cd cloned-directory Then, you run the ./configure script to verify that the necessary dependencies are present in the system. ./configure You can also customize your build at this point with the supported options. For instance, when installing PHP, you can enable the FPM module for this install like so. ./configure --enable-fpm Most devs also include a command like ./configure --help for listing all the possible build options. Finally, you’ll invoke the make and make install commands to build the program according to the instructions defined in the makefile. make sudo make install