Do you know Repology.org? It is a brilliant package search engine for all GNU/Linux distros. For us, we can find out software packages --in binary and source forms-- across various distros' repositories, even those which do not have package search facilities, and then quickly compare package version with versions available in another distros. In short, we using Ubuntu, Fedora, openSUSE and whatever distros can search for packages centrally here. For individual software developers, Repology is useful to discover which distros have not yet packaged your software, and to contact the maintainers quickly. For distro maintainers, of course it's useful to compare your repository against another distros' repositories. Repology can generate informative badge of package availability (see examples below) we can display onto any website that accept HTML code. This overview covers what Repology is with examples and how to use it for users across GNU/Linux distros in easy ways. I didn't find any other source on the net that covers it yet so I decided to write this article. I hope this helps you a lot in finding packages and researching more about GNU/Linux. Enjoy!

Subscribe to UbuntuBuzz Telegram Channel to get article updates directly.



Index


  1. Understanding Repository Concept
  2. Individual Distro's Package Search
  3. Distros that Do Not Have Package Search
  4. Repology.org
  5. How it works
  6. Purposes
  7. Hard Days before Repology.org
  8. How to use Repology
 

1. Understanding Repository Concept


Talking about it is talking about several terminology, those are repository itself, source code, binary code, distribution, and package. A repository is a special thing every GNU/Linux distro has.  Ubuntu has repository, so does openSUSE, so does Fedora, and on and on.

A repository is the cause why a distro called distro. It is a distribution of a lot of software, that is compiled solely for the distro, and the repository is stored in a certain place on the internet. Every software in a repository is packaged for us in 2 format, source code package and binary code package, for example source code package filename is ended with .tar.gz; and binary code package filename for Ubuntu is always ended with .deb, while binary code package filename for Fedora / openSUSE is always ended with .rpm.

User gets software by downloading & installing the binary package, for example LibreOffice.deb in Ubuntu; LibreOffice.rpm in Fedora / openSUSE. User has the right to access the source code of every software in distribution, regardless they are software expert or not, and they can have it for example LibreOffice.tar.gz by downloading the source code package from source code repository. To sum it up, every distro has a repository of software that is very big we need search solution to find out a package, a version, a source code, or everything related to packages in it.

2. Individual Distro's Package Search Engine



and many more.

3. Distros That Do Not Have Package Search


Yes, there are so many major distros that packages in their repo cannot be easily searched or do not have a search engine. They are:
  • CentOS
  • Slackware
  • Red Hat
  • SUSE
  • Deepin 
  • Solus
  • Manjaro, only has mirror list
  • MX and antiX join, only has package list
  • GuixSD, only has package list
  • elementary OS
  • Zorin OS
  • OpenMandriva
  • ROSA
  • PCLinuxOS
  • Trisquel 
  • PureOS

This data is noted as per Monday, 3 February 2020. In the future, distros may change.

4. Repology.org - A Package Search Engine for All


Now what do you think if there is a repository search engine that is able to find you packages from all distros? Not only that, it is able to compare version numbers of a software between different distros. Not to mention, that means easy for us to figure out package availability, which distro has a package and which distro has not. More than that, Repology can display graphical statistics of them. From software freedom perspective, it helps you to find packages in source code forms. That is awesome, right? That is Repology.org!




Picture 4.1
(Repology.org displaying gimp and inkscape packages availability across distros)

5. How It Works


Repology.org monitors multiple repositories and adds new repositories day by day. It presents us search facility we can use to find out a package in multiple distros, its versions, its availability, its naming, and its relationship with other packages. If you want to know more or even contribute to, then join Repology developers at GitHub webapp, updater, and ruleset. Founder of Repology is Dmitry Marakasov from Russia and the search engine itself free software licensed under GNU GPLv3+.

6. Purpose


Repology's purpose can be divided into 3 categories:
  • For user: to figure out packages in multiple distros.
  • For software developer: to figure out distros that have made your software available, and which ones have not.
  • For distro maintainer: to compare your distro with another distros.
Example 1:

User wants to compare LibreOffice versions available in Ubuntu, Fedora, and openSUSE. User types "libreoffice" in search box and instantly finds out version 6.3.2 in Ubuntu 19.10, version 6.3.3.2 in Fedora Rawhide, and version 6.4.0.3 in openSUSE Tumbleweed. This comparison I find out as per Monday, 3 February 2020. One more amazing thing, user can post in their website a colorful list of versions like below.

Picture 6.1
(Badge of package versions list generated automatically by Repology.org in SVG format that is displayable on any website)
(Picture above is PNG from the original SVG I edited with Inkscape to reduce the length)


Example 2:

User wants to know which distros do not have Zotero Bibliography Manager. User types "libreoffice" and then scroll down the resulting page to see Absent in repositories section. There, we see majority of distros do not have Zotero, for example Ubuntu, Fedora, and openSUSE. Once again amazing, user can create a colorful list badge too.


Example 3:

There is sK1 Project, a developer team of sK1 CMYK-colored Vector Editor, wants to know which distros already have their software. Developer types "sk1" and find out a few distros like PCLinuxOS, Mageia, Fedora, and openSUSE made their software available. On the other hand, developer knows from that that Ubuntu, Mint, Deepin, even Debian do not have their software yet.


Example 4: 

User who want to search for package in non-searchable distros --like GuixSD, OpenMandriva, Manjaro-- can do it easily.
 

7. Before Repology, We Used To Be Working Hard


Before doing search in Repology as explained in next section, it is very good if we look once again at individual distro's search engine. It is with and without.

Without a search engine, we have only 2 options:
  • figuring out manually one directory by one directory within repository web pages (and this is very tiresome)
  • using that distro to run package manager's search command (and this constitutes installing it on our computer, how if we don't want to?)
With one, we solve those problems:
  • we do not need to crawl manually one by one, as we can quickly find one by search page
  • we are not required to use that distro, as we do not need install it on our computer
However, this solves only problems in one specific distro. For example, Ubuntu package search is for Ubuntu only, Fedora's for Fedora, openSUSE's for openSUSE, as I said, those are individuals. If we work with multiple distros, it means a hard work, as we need to do multiple search manually in multiple search pages.

More than that, how if a distro does not have a search engine? Like OpenMandriva, for example? Or GuixSD, that is not easy to find a package with such A-Z paging? That makes everything more difficult.

Fortunately, thanks to Repology now we solve all those problems with one solution.

8. How to use Repology?


To search for package:
  1. Go to https://repology.org
  2. See section 'search packages' with a search box
  3. Type a package name for example gimp
  4. Click Go button
  5. Page reloads
  6. Page displays list of packages containing gimp in their names
  7. Select the simplest name displayed in this example gimp*
  8. Page reloads
  9. Page displays list of package gimp versions in multiple distros
  10. Click a package gimp name on the list for example Ubuntu 18.04's
  11. Page changed onto that distro's official info of that package, here it is Ubuntu 18.04's repository page of gimp version

Picture 8.1
(Left: search box you want | Middle: search box for maintainers, distro developers | Right: useful links to Repositories' Statistics)

 
Picture 8.2
(Search result for gimp keyword showing various packages with gimp in their names)
  
Picture 8.3
(1st column: distro versions | 2nd column: package name | 3rd column: package version numbers | 4th column: repository section where that package stored / package category | 5th column: contacts (emails) of the maintainers behind that package)

Picture 8.4
(Search result of package gimp displays multiple distros (often more than one versions) their respective gimp versions)
(Left: from Alpine to Arch repositories ... | Middle: from Astra to CRUX repositories ... | Right: from Debian to Deepin repositories)

Picture 8.5
(An official Ubuntu's repository web page for gimp package)
(Top: title says it is a source code package of gimp software version 2.8.22 | Left: links to download the binary package gimp | Right: links to developmental stuffs and bug report)

By this example you can explore more by yourselves, o dear readers. Enjoy researching!


This article is licensed under CC BY-SA 3.0.


, , , , , , , , ,