Cdn.opensuse.org vs. download.opensuse.org

“In openSUSE, cdn.opensuse.org and download.opensuse.org are both authoritative entry points for software repositories, but they use different delivery infrastructure”

Manage via openSUSE-repos: Avoid editing repository files manually. Use the openSUSE-repos service to automatically manage these definitions:

1. Installation

Old repository definitions are saved in repo.rpmsave files.

n150:~ # zypper in openSUSE-repos-Tumbleweed
Retrieving repository 'Packman' metadata .............................................................................................................................................................................................[done]
Building repository 'Packman' cache ..................................................................................................................................................................................................[done]
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following package is suggested, but will not be installed:
  openSUSE-repos-Tumbleweed-NVIDIA

The following NEW package is going to be installed:
  openSUSE-repos-Tumbleweed

1 new package to install.

Package download size:    18.9 KiB

Package install size change:
              |       1.4 KiB  required by packages that will be installed
     1.4 KiB  |  -      0 B    released by packages that will be removed

Backend:  classic_rpmtrans
Continue? [y/n/v/...? shows all options] (y): 
Preloading: openSUSE-repos-Tumbleweed-20250728.9adc675-1.1.x86_64.rpm [done]
Preload finished. [success (6.8 KiB/s) ] .............................................................................................................................................................................................[done]
Retrieving: openSUSE-repos-Tumbleweed-20250728.9adc675-1.1.x86_64 (Haupt-Repository (OSS))                                                                                                                              (1/1),  18.9 KiB    

Checking for file conflicts: .........................................................................................................................................................................................................[done]
Content of repo-debug.repo will be newly managed by zypp-services.
Storing old copy as /etc/zypp/repos.d/repo-debug.repo.rpmsave
Content of repo-source.repo will be newly managed by zypp-services.
Storing old copy as /etc/zypp/repos.d/repo-source.repo.rpmsave
Content of download.opensuse.org-oss.repo will be newly managed by zypp-services.
Storing old copy as /etc/zypp/repos.d/download.opensuse.org-oss.repo.rpmsave
Content of download.opensuse.org-non-oss.repo will be newly managed by zypp-services.
Storing old copy as /etc/zypp/repos.d/download.opensuse.org-non-oss.repo.rpmsave
Content of download.opensuse.org-tumbleweed.repo will be newly managed by zypp-services.
Storing old copy as /etc/zypp/repos.d/download.opensuse.org-tumbleweed.repo.rpmsave
Content of repo-openh264.repo will be newly managed by zypp-services.
Storing old copy as /etc/zypp/repos.d/repo-openh264.repo.rpmsave
Content of openSUSE-*-0.repo will be newly managed by zypp-services.
Storing old copy as /etc/zypp/repos.d/openSUSE-*-0.repo.rpmsave
(1/1) Installing: openSUSE-repos-Tumbleweed-20250728.9adc675-1.1.x86_64 ..............................................................................................................................................................[done]
%posttrans(openSUSE-repos-Tumbleweed-20250728.9adc675-1.1.x86_64) script output:
Adding service 'openSUSE'...
Service 'openSUSE' has been successfully added.
URI         : dir:/usr/share/zypp/local/service/openSUSE
Enabled     : Yes
Autorefresh : Yes
Refreshing service 'openSUSE'.
All services have been refreshed.
Running post-transaction scripts .....................................................................................................................................................................................................[done]
n150:~ # 

2. Repo List

Show what matters:

n150:~ # alias repos
alias repos='zypper repos --alias --refresh --show-enabled-only --sort-by-priority --uri'
n150:~ # 
n150:~ # repos
# | Alias                      | Enabled | GPG Check | Refresh | Priority | URI
--+----------------------------+---------+-----------+---------+----------+-----------------------------------------------------------------------
1 | Packman                    | Yes     | (r ) Yes  | Yes     |   80     | https://ftp.fau.de/packman/suse/openSUSE_Tumbleweed/
4 | openSUSE:repo-non-oss      | Yes     | (r ) Yes  | Yes     |   99     | http://cdn.opensuse.org/tumbleweed/repo/non-oss
5 | openSUSE:repo-openh264     | Yes     | (r ) Yes  | Yes     |   99     | https://codecs.opensuse.org/openh264/openSUSE_Tumbleweed
6 | openSUSE:repo-oss          | Yes     | (r ) Yes  | Yes     |   99     | http://cdn.opensuse.org/tumbleweed/repo/oss
9 | openSUSE:update-tumbleweed | Yes     | (r ) Yes  | Yes     |   99     | http://cdn.opensuse.org/update/tumbleweed
2 | brave-browser              | Yes     | (r ) Yes  | Yes     |  100     | https://brave-browser-rpm-release.s3.brave.com/x86_64/
3 | filesystems                | Yes     | (r ) Yes  | Yes     |  100     | https://cdn.opensuse.org/repositories/filesystems/openSUSE_Tumbleweed/
n150:~ #
n150:~ # grep repoListColumns /etc/zypp/zypper.conf
repoListColumns = auP
n150:~ # 
n150:~ # zypper repos
# | Alias                      | Enabled | GPG Check | Priority | URI
--+----------------------------+---------+-----------+----------+-----------------------------------------------------------------------
1 | Packman                    | Yes     | (r ) Yes  |   80     | https://ftp.fau.de/packman/suse/openSUSE_Tumbleweed/
4 | openSUSE:repo-non-oss      | Yes     | (r ) Yes  |   99     | http://cdn.opensuse.org/tumbleweed/repo/non-oss
5 | openSUSE:repo-openh264     | Yes     | (r ) Yes  |   99     | https://codecs.opensuse.org/openh264/openSUSE_Tumbleweed
6 | openSUSE:repo-oss          | Yes     | (r ) Yes  |   99     | http://cdn.opensuse.org/tumbleweed/repo/oss
7 | openSUSE:repo-oss-debug    | No      | ----      |   99     | http://cdn.opensuse.org/debug/tumbleweed/repo/oss
8 | openSUSE:repo-oss-source   | No      | ----      |   99     | http://cdn.opensuse.org/source/tumbleweed/repo/oss
9 | openSUSE:update-tumbleweed | Yes     | (r ) Yes  |   99     | http://cdn.opensuse.org/update/tumbleweed
2 | brave-browser              | Yes     | (r ) Yes  |  100     | https://brave-browser-rpm-release.s3.brave.com/x86_64/
3 | filesystems                | Yes     | (r ) Yes  |  100     | https://cdn.opensuse.org/repositories/filesystems/openSUSE_Tumbleweed/
n150:~ # 
1 Like

You forget to mention the priorities are yours. None changed here:

knurpht@Lenovo-P16:~> zypper lr -d
# | Alias                      | Name              | Enabled | GPG Check | Refresh | Keep | Priority | Type   | URI                                                                  | Service
--+----------------------------+-------------------+---------+-----------+---------+------+----------+--------+----------------------------------------------------------------------+---------
1 | google-chrome              | google-chrome     | Ja      | (r ) Ja   | Nee     | -    |   99     | rpm-md | https://dl.google.com/linux/chrome/rpm/stable/x86_64                 | 
2 | openSUSE:repo-non-oss      | repo-non-oss      | Ja      | (r ) Ja   | Ja      | -    |   99     | rpm-md | http://cdn.opensuse.org/tumbleweed/repo/non-oss                      | openSUSE
3 | openSUSE:repo-openh264     | repo-openh264     | Ja      | (r ) Ja   | Ja      | -    |   99     | rpm-md | https://codecs.opensuse.org/openh264/openSUSE_Tumbleweed             | openSUSE
4 | openSUSE:repo-oss          | repo-oss          | Ja      | (r ) Ja   | Ja      | -    |   99     | rpm-md | http://cdn.opensuse.org/tumbleweed/repo/oss                          | openSUSE
5 | openSUSE:repo-oss-debug    | repo-oss-debug    | Nee     | ----      | ----    | -    |   99     | N/A    | http://cdn.opensuse.org/debug/tumbleweed/repo/oss                    | openSUSE
6 | openSUSE:repo-oss-source   | repo-oss-source   | Nee     | ----      | ----    | -    |   99     | N/A    | http://cdn.opensuse.org/source/tumbleweed/repo/oss                   | openSUSE
7 | openSUSE:update-tumbleweed | update-tumbleweed | Ja      | (r ) Ja   | Ja      | -    |   99     | rpm-md | http://cdn.opensuse.org/update/tumbleweed                            | openSUSE
8 | packman                    | Packman           | Ja      | (r ) Ja   | Ja      | -    |   90     | rpm-md | https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Tumbleweed/ | 
9 | tailscale-stable           | Tailscale stable  | Ja      | (r ) Ja   | Nee     | -    |   99     | rpm-md | https://pkgs.tailscale.com/stable/opensuse/tumbleweed/x86_64         | 
knurpht@Lenovo-P16:~> 
1 Like

I would like to politely point out that the priorities of the openSUSE repositories were set during the installation of the package openSUSE-repos-Tumbleweed.

I did not change any of these priorities. I ask you to refrain from continuing to make factoid statements.

1 Like

It’s about the added repos. f.e. 80 for Packman.

And why does one need to change priorities, zypper respects vendor changes by default these days?

Likewise why the full repository rather than refining to essentials and the unfortunate folks that use AMD requiring Extra to ensure one doesn’t pull in uneccessary cruft?

cdn.opensuse.org & download.opensuse.org

So which one i need to choose? what is the best option, traditional approach? or just defining and using cdn? Btw, as far as i using http://download.opensuse.org , it feel’s like normal mirror and automaticly fallback to cdn when the closest mirror unreachable/down

hightower-i5-6600k:~> zypper repos --alias --refresh --show-enabled-only --sort-by-priority --uri
#  | Alias                                      | Name                                       | Enabled | GPG Check | Refresh | Priority | URI
---+--------------------------------------------+--------------------------------------------+---------+-----------+---------+----------+-------------------------------------------------------------------------------
15 | packman-essentials                         | packman-essentials                         | Yes     | (r ) Yes  | Yes     |   98     | https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Tumbleweed/Essentials
 1 | Games                                      | Games                                      | Yes     | (r ) Yes  | Yes     |   99     | https://cdn.opensuse.org/repositories/games/openSUSE_Tumbleweed/
 3 | Kernel_builds_for_branch_stable_standard_1 | Kernel builds for branch stable (standard) | Yes     | (r ) Yes  | Yes     |   99     | https://cdn.opensuse.org/repositories/Kernel:/stable/standard/
 9 | openSUSE:repo-non-oss                      | repo-non-oss                               | Yes     | (r ) Yes  | Yes     |   99     | http://cdn.opensuse.org/tumbleweed/repo/non-oss
10 | openSUSE:repo-openh264                     | repo-openh264                              | Yes     | (r ) Yes  | Yes     |   99     | https://codecs.opensuse.org/openh264/openSUSE_Tumbleweed
11 | openSUSE:repo-oss                          | repo-oss                                   | Yes     | (r ) Yes  | Yes     |   99     | http://cdn.opensuse.org/tumbleweed/repo/oss
12 | openSUSE:repo-oss-debug                    | repo-oss-debug                             | Yes     | (r ) Yes  | Yes     |   99     | http://cdn.opensuse.org/debug/tumbleweed/repo/oss
14 | openSUSE:update-tumbleweed                 | update-tumbleweed                          | Yes     | (r ) Yes  | Yes     |   99     | http://cdn.opensuse.org/update/tumbleweed
hightower-i5-6600k:~>

Cdn is used on a machine here with great success.