With a few exceptions, installing a Linux distribution is like checking into an all-inclusive resort. Your hardware works out-of-the-box, and you get an impressive selection of pre-installed software: from photo editing tools and multimedia players to email and chat clients, and even a full-blown office suite.
But what if you want to replace one of the default applications, or try out some new Linux software?
Well, you could always just Google it—and pray you won’t have to venture beyond the tenth page of results to find something usable. Or you could build yourself a list of reliable resources where you can quickly browse applications, search and sort them by various criteria, and easily download the ones you like.
If the latter approach sounds more sensible, you’re at the right place at the right time, because today we’ll show you some tips on how and where to find new Linux applications.
Refresher: How to Install Linux Apps
Newcomers to Linux are sometimes perplexed by the Linux software installation process, but in reality it’s not that different from the approach seen on Windows or OS X.
Generally speaking, there are two ways to install software on Linux: from a binary package (pre-compiled) or from source (which you have to compile yourself). You can download packages as standalone files manually; for example, from the developer’s website, or pull them from a software repository using a package management tool.
Apart from these most common methods of installation, you’ll also find portable apps and applications that come bundled with a self-extracting installer script. Portable apps don’t require installation; you simply unpack them into a folder and start them by double-clicking an executable file or by typing a command in the terminal. Windows users should be familiar with this concept.
You’ll observe another similarity to Windows if you decide to install packages manually: tools like GDebi make it possible to simply double-click a .deb package—just like you’d do with an .exe file—and install the application via a simple dialog. On the other hand, the concept of a repository which you access with a package manager is analogous to the App Store found on OS X, Android, and as of recently, Windows.
The recommended way to install applications is from repositories with a package manager because you don’t have to worry about dependencies, and because they get automatic updates as long as the repository is maintained. However, sometimes repositories don’t have the latest version of an app, or there isn’t a repository for your Linux distribution. In that case you can try looking for unofficial binary packages, or if all else fails, compile the code on your own.
Explore Packages and Managers
As you probably know, one of the biggest differences between Linux distributions is the package management system they use; for example, Debian, Ubuntu, and their derivatives have .deb packages, while Fedora, CentOS, openSUSE, and Mageia use .rpm packages. Arch Linux, Gentoo, and Slackware each do their own thing, but the general idea is similar. It’s even possible to convert between package formats, but this is rarely needed as nowadays most applications provide officially supported packages for many different distributions.
In essence, packages are archive files containing instructions on how and where an application should be installed on your system. Package manager is a tool that reads and executes these instructions, and helps you deal with packages. It lets you control which versions of apps you have installed, shows you what can be updated, and it can usually resolve dependencies automatically, as well as suggest missing packages that you should install. Before you turn to third-party sources to find new Linux apps, you should always consult your package manager first.
Befriending Your Package Manager
Every Linux distro comes with a package manager—without it, you’d have a hard time installing new applications and checking what’s currently installed. Some distros refer to their default package manager as “software manager” or “software center”. Package managers come in all shapes and sizes: some are command-line-only, others are regular GUI tools. Roughly speaking, there are two main visual styles that package managers use: the old-fashioned, with a list of packages on the right and a sidebar with categories, and the app-store style, with app ratings and screenshots as prominent elements.
Get acquainted with your package manager’s interface, tweak its settings, and see what it offers. Depending on the distro and package manager itself, you might be able to configure automatic upgrades, fix broken packages, downgrade or lock packages to a specific version, delete or preserve package cache, color-code packages by status, and more.
Without repositories to scan, a package manager is virtually useless. By default, your distribution should enable some official repositories, and on first run the package manager will fetch the information about currently available software, which you can subsequently browse. Most modern package managers include a module that lets you add and remove repositories; if not, you’ll have to do it by editing a text file, usually with admin privileges.
Aside from official repositories, you can look for apps in the unofficial ones. Arch Linux has a huge collection of apps called AUR (Arch User Repository), and Debian provides links to various unofficial repositories.
Ubuntu users have surely heard about PPAs (Personal Package Archives), unofficial repositories hosted on Launchpad which automatically builds .deb packages from uploaded source code. PPAs can be used on Ubuntu derivatives as well (and even on Debian if need be), but you should be aware that PPAs are fundamentally unsafe, because anyone can create them. By adding PPAs to your system you accept the risk and assume responsibility in case anything goes wrong after installing packages from them. This might sound scary, but in practice it’s easy to spot a shady PPA and stay away from it. If a lot of people use a PPA, if it’s often updated, or if it’s maintained by the developers of the app, there’s no need for excessive paranoia.
Breaking Up With a Package Manager
You tried to love your package manager, but it just didn’t work out—and it’s not you, it’s them. After all, not all package managers are equally powerful, so it’s good to know that you can replace them. Maybe they lack the features you need, or their interface is not intuitive, or as is the case with Ubuntu Software Center, they don’t provide full disclosure on proprietary software. When installing a new package manager, just make sure it supports the package management format of your distribution.
Synaptic is a great choice because it supports both DEB and RPM systems, and has plenty of features without being too complicated for beginners. PackageKit is a distro-agnostic project that can act as a front-end for all popular package management systems, and it comes in two editions: Apper (based on Qt), and GNOME Software (GTK-based).
Arch Linux users can make their life easier by installing a tool like Pamac, which eliminates the need to use two separate tools (pacman and yaourt, or any other AUR helper) because it can install apps from both AUR and the official repositories.
Since our primary goal is discovering Linux apps, the most important criterion when choosing a new package manager is the search feature. Ideally, it will be able to search by both package name and description, accept wildcards in keywords, filter results by package status, and show you which versions of an application are available in which repository. If your favorite package manager is weak in the search department, you can turn to web-based tools.
Find Linux Packages Online
Linux Packages Search (Pkgs.org) indexes several official and unofficial repositories for a number of Linux distributions. You can search for generic keywords like “music”, but this tool is best used when you know the exact name of a package and want to see whether it’s available for your distro, and in which version. Every indexed package has its own page where you can download it and learn more about its dependencies and properties.
If you’re not interested in what other distros offer and just want to check packages for your current one, most of them have searchable online databases with all the information you need, plus direct download links for each package version:
- Debian Packages
- Fedora Packages Search
- AUR – Arch User Repository and Arch Linux Packages
- Ubuntu Packages Search
- Mageia Application Database
- Find openSUSE Software
Replace Windows Apps with Linux Alternatives
A common use-case is that of (former) Windows users who want to find Linux equivalents of their favorite apps, or are searching for apps with similar functionality to the ones they’re used to.
In this case, you know what you’re looking for, but you don’t know the name of the app. The ideal website here is the one that lets you browse and search apps by tags, descriptions, and if possible, similarity.
Another solid option is The Linux Alternative Project, which will appeal to users who like to keep it simple. It’s a list of popular Windows applications with suggested Linux alternatives for each one.
Discover New Linux Apps
It’s not always a sense of urgency that motivates us to look for new Linux apps. Sometimes you’re just curious to see what kinds of apps are out there. You might wish to keep up with new software developments, or join a project as a beta tester to give back to the open source community. Hell, you might just be a writer looking for something to review.
As usual, the Internet has got you covered. Although SourceForge has recently been caught red-handed distributing adware and hijacking project ownership, there are still plenty of other reputable sources – in fact, you can consider them SourceForge alternatives.
Much like package managers, these websites tend to come in two flavors: older, “unattractive” ones that are mostly just lists of links, and new ones that pay more attention to appealing design, screenshots, and user reviews. It’s up to you to pick your favorites; however, note that older websites usually have bigger collections, as some of the new ones are still in development. Conversely, some old projects might be abandoned or refer to old versions of software, though other information about apps can still be relevant.
Free Software Directory organizes apps into various categories alongside regular “search by keywords” functionality. It works and looks very much like a wiki, and each app has its own page with a short description, download links, and a list of related projects.
Linux Links is one of those websites that look stuck in time, but its enormous collection of apps makes it an invaluable resource for every Linux user. You can lose hours browsing through its categories and subcategories, and it also offers curated lists of best Linux apps for different purposes. Some apps have their own mini-review pages with screenshots and details about their features.
openDesktop will look familiar to anyone who’s ever downloaded a theme for their Linux desktop from GNOME-Look.org or KDE-Look.org, since the websites are part of the same project. It’s easy to use, and though not particularly attractive, it has all you need: screenshots, information about the app, and the links to download it. New apps are featured on the home page, making it easy for you to discover them.
Linux App Finder is a rich collection of Linux software which you can explore in different ways; for example, you can click “Alternatives” in the top menu to see Linux alternatives for Windows and OS X software. Of course, you can also search for apps, and go through many categories and subcategories to find something interesting. Most viewed apps in every category are highlighted for improved visibility. Every app has a page with basic info and download links, but if you register and join the community, you can edit app pages and add more information, such as screenshots and links to repositories that contain the app.
Open Source Software Directory sports a different approach: it asks you to define yourself as a type of user (developer, home user, admin, or business user) and serves you apps categorized by purpose. Since it’s a new project, it doesn’t have many apps yet, but it does provide a short paragraph about each one. You can see which apps were recently added to each category, too.
Freshcode is an attempt to resurrect the freecode (formerly freshmeat) project, which is abandoned but still accessible (though no updates have been added since the project closed down). It looks almost identical to freecode, but it doesn’t have as many apps. Every app has a page with detailed information about past releases and links to related websites. You can browse apps by tag, search for keywords in descriptions, and sort results by software license.
Open Hub feels slightly more geared towards developers than other websites on the list because it provides information like lines of code, number of contributors, and amount of commits, that might not necessarily interest an average Linux user. Still, it’s a handy resource because it lets you browse projects by tags, shows similar apps, features user ratings and reviews, and all this in a neat, modern-looking interface. If you’re into statistics, you can compare two or more apps to see which are the most actively developed.
Get Crowdsourced Recommendations
More often than not, you won’t go on a mission to find new Linux apps; rather, you’ll simply stumble upon a link or a recommendation on your social network of choice. If you’re the chatty type who loves to exchange experiences and advice about apps with other users, consider joining a Linux-oriented community or a discussion board. You’ll be able to explain in detail what exactly you expect from an app, and get others to chime in with suggestions and help you find the perfect app.
Redditors can ask for software recommendations in general on /r/Software, or post their Linux-related thoughts on /r/linuxquestions. The CoolGitHubProjects subreddit is a great place to spontaneously discover new open source apps hosted on GitHub. Fancy a different conversation format? Then check out the Software Recommendations channel on StackExchange, where you can narrow down your search by using tags to filter discussions.
Don’t Forget About Games
Although you can find quite a lot of games of all genres in the repositories, you still might want to add some specialized Linux software sources to your collection. They can be apps, websites, or services with their own clients—like Steam, Desura, or GOG Galaxy. The latter are somewhat like package managers, but only for games, as they let you install and update games you’ve purchased from the service.
If you prefer a simple, wiki-style overview that’s actively updated with the latest projects, check out LibreGameWiki, where you can browse games by genre and even read a short review of each game.
What about you—where do you find new Linux apps and games? Do you use any of the sources we’ve recommended? Can you share some other websites that we should add to our list? Let’s have a chat in the comments.
Image Credits: Featured image: Businessman with binoculars by Freepik, Xubuntu Feisty just installed – Add/Remove by Vincent via Flickr, Pamac screenshot, Desura screenshot, GNOME Software screenshot.