Warning: Some posts on this platform may contain adult material intended for mature audiences only. Viewer discretion is advised. By clicking ‘Continue’, you confirm that you are 18 years or older and consent to viewing explicit content.
Then that site is completely wrong. I’m not even sure where the 38k number comes from.
If you go to https://packages.debian.org/stable/, at the bottom of each branch page (selectable from the top list) is a link to a txt list of all packages for that branch.
If you run a quick wc -l through them you get 234k packages for sid (unstable), 130k for testing and 121k for bookworm (stable).
The wierd thing is that’s also what repology links to, but I don’t understand what they parse to arrive at that number.
The numbers are different because the site doesn’t naively count every line but merges some as a single package. For example, at the very top of the Debian list we have 0ad, 0ad-data, 0ad-data-common. These are all counted as one single “package.”
One might argue that doing the comparison in that way is more useful to an average user asking “which distribution has more software available.”
I guess it depends how aggressively they merge packages… Some software has different versions which are all useful. Some software has multiple packages which are different things, for example a theming engine can have packages for various widget libraries and various versions (GTK3, GTK4, QT5, QT6) as well as an icon theme.
On the other hand, repos like the AUR (probably nix too) have outright duplicated packages, made by independent contributors.
The packages of Debian are split into different subpackages (dev, lib, doc and its base). This happens for Nix as well, but packages there just have different outputs. For instance, openssl has as outputs: bin debug dev doc man out. I don’t think repology counts those outputs, so it shouldn’t count subpackages as well. I guess these rules are merging these together: https://github.com/repology/repology-rules/blob/master/800.renames-and-merges/openssl.yaml.
Then that site is completely wrong. I’m not even sure where the 38k number comes from.
If you go to https://packages.debian.org/stable/, at the bottom of each branch page (selectable from the top list) is a link to a txt list of all packages for that branch.
If you run a quick
wc -l
through them you get 234k packages for sid (unstable), 130k for testing and 121k for bookworm (stable).The wierd thing is that’s also what repology links to, but I don’t understand what they parse to arrive at that number.
The numbers are different because the site doesn’t naively count every line but merges some as a single package. For example, at the very top of the Debian list we have 0ad, 0ad-data, 0ad-data-common. These are all counted as one single “package.”
One might argue that doing the comparison in that way is more useful to an average user asking “which distribution has more software available.”
I guess it depends how aggressively they merge packages… Some software has different versions which are all useful. Some software has multiple packages which are different things, for example a theming engine can have packages for various widget libraries and various versions (GTK3, GTK4, QT5, QT6) as well as an icon theme.
On the other hand, repos like the AUR (probably nix too) have outright duplicated packages, made by independent contributors.
Right, and the stable and unstable versions of the same package don’t get counted twice.
I don’t know exactly how Repology works, but I was interested as well.
This holds what sources are being used for repology in Debian: https://github.com/repology/repology-updater/blob/master/repos.d/deb/debian.yaml This repository seems to be used to merge/split package names: https://github.com/repology/repology-rules
The packages of Debian are split into different subpackages (dev, lib, doc and its base). This happens for Nix as well, but packages there just have different outputs. For instance, openssl has as outputs: bin debug dev doc man out. I don’t think repology counts those outputs, so it shouldn’t count subpackages as well. I guess these rules are merging these together: https://github.com/repology/repology-rules/blob/master/800.renames-and-merges/openssl.yaml.