Package not found on medium - When to use zypper refresh?

Hello dear community,

I recently installed Thunderbird via the manual method on this page:

https://software.opensuse.org/download/package?package=MozillaThunderbird&project=openSUSE%3AFactory

(I don’t know if relevant, but also installed codecs with opi)
and wanted today do a “sudo zypper dup --allow-vendor-change”, but got the following error:

sudo zypper dup --allow-vendor-change
[sudo] password for root: 
Loading repository data...
Reading installed packages...
Warning: You are about to do a distribution upgrade with all enabled repositories. Make sure these repositories are compatible before you continue. See 'man zypper' for more information about this command.
Computing distribution upgrade...

The following 4 packages are going to be upgraded:
  MozillaFirefox-branding-openSUSE mozilla-nspr mozilla-nss-certs mozilla-nss-sysinit

The following 4 packages are going to change vendor:
  MozillaFirefox-branding-openSUSE  openSUSE -> obs://build.opensuse.org/mozilla
  mozilla-nspr                      openSUSE -> obs://build.opensuse.org/mozilla
  mozilla-nss-certs                 openSUSE -> obs://build.opensuse.org/mozilla
  mozilla-nss-sysinit               openSUSE -> obs://build.opensuse.org/mozilla

4 packages to upgrade, 4  to change vendor.
Overall download size: 420.8 KiB. Already cached: 0 B. After the operation, additional 3.4
KiB will be used.

Backend:  classic_rpmtrans
Continue? [y/n/v/...? shows all options] (y): y
Retrieving: MozillaFirefox-branding-openSUSE-68-18.10.x86_64 (Mozilla based projects
(openSUSE_Tumbleweed))
                                                                      (1/4),  12.8 KiB    
Retrieving: MozillaFirefox-branding-openSUSE-68-18.10.x86_64.rpm ...................[done]
Retrieving: mozilla-nspr-4.35-1.56.x86_64 (Mozilla based projects (openSUSE_Tumbleweed))
                                                                      (2/4), 119.5 KiB    
Retrieving: mozilla-nspr-4.35-1.56.x86_64.rpm ..........................[done (2.3 KiB/s)]
Retrieving: mozilla-nss-sysinit-3.101-2.6.x86_64 (Mozilla based projects
(openSUSE_Tumbleweed))
                                                                      (3/4),  55.4 KiB    
Retrieving: mozilla-nss-sysinit-3.101-2.6.x86_64.rpm ..........................[not found]
File './x86_64/mozilla-nss-sysinit-3.101-2.6.x86_64.rpm' not found on medium 'https://download.opensuse.org/repositories/mozilla/openSUSE_Tumbleweed/'
Abort, retry, ignore? [a/r/i/...? shows all options] (a): a
Problem occurred during or after installation or removal of packages:
Installation has been aborted as directed.
Please see the above error message for a hint.

My first guess was, there might be something wrong with the installed package, so I used:

sudo zypper install -f --allow-vendor-change mozilla-nss-sysinit

which lead to the same error message.

Then I removed the package with:

sudo zypper remove mozilla-nss-sysinit 

and wanted to install it again:
sudo zypper install --allow-vendor-change mozilla-nss-sysinit
but this lead also to the same error.

Then I just searched the package online on the repo page:
https://download.opensuse.org/repositories/mozilla/openSUSE_Tumbleweed/
and found out there really is no:
mozilla-nss-sysinit-3.101-2.6.x86_64.rpm
but a never version:
https://download.opensuse.org/repositories/mozilla/openSUSE_Tumbleweed/x86_64/mozilla-nss-sysinit-3.101-2.7.x86_64.rpm

I guessed then, that maybe there is something wrong cached on my system or not up to date with the repo, so I used:

sudo zypper refresh
[sudo] password for root: 
Retrieving repository 'Mozilla based projects (openSUSE_Tumbleweed)' metadata .........................................................................................[done]
Building repository 'Mozilla based projects (openSUSE_Tumbleweed)' cache ..............................................................................................[done]
Repository 'packages-microsoft-com-prod' is up to date.                                                                                                                      
Repository 'Packman' is up to date.                                                                                                                                          
Repository 'openSUSE-Tumbleweed-Non-Oss' is up to date.                                                                                                                      
Repository 'Open H.264 Codec (openSUSE Tumbleweed)' is up to date.                                                                                                           
Repository 'openSUSE-Tumbleweed-Oss' is up to date.                                                                                                                          
Repository 'openSUSE-Tumbleweed-Update' is up to date.                                                                                                                       
All repositories have been refreshed.

After that I could install mozilla-nss-sysinit without problems.

My question now is, when exactly do I need to refresh the repos?
I thought this would be done automatically whenever I do a zypper dup (I used Fedora before so I just assumed this behavior).


On a sidenote, I would also like to mention that the current repo link in the manual installation option of the Thunderbird page:
https://software.opensuse.org/download/package?package=MozillaThunderbird&project=openSUSE%3AFactory
doesn’t seem to work anymore:

zypper addrepo https://download.opensuse.org/repositories/openSUSE:Factory/standard/openSUSE:Factory.repo
zypper refresh
zypper install MozillaThunderbird

In my bash_history from a few days ago I used from the same page:

zypper addrepo https://download.opensuse.org/repositories/mozilla/openSUSE_Tumbleweed/mozilla.repo
zypper refresh
zypper install MozillaThunderbird

You need to refresh repos when you blindly add some arbitrary repos and have auto refresh disabled for them. You can check if auto refresh is enabled via YaST-> Software Repositories or check the output of sudo zypper lr -d. It is easy to enable auto refresh via YaST Software Repositories. If you want the terminal way, read up on man zypper

Instead of using factory repos, why not simply using YaST Software to search if a package is not already availably on your system repos (e.g. Thunderbird is…)?

Now you have a factory repo on your system which leads to problems as you already have seen. Remove it and switch the Thunderbird package back to the OSS repo. Factory repos (and also home and external ones) should be avoided unless you know what you are doing and can handle system instabilities and problems as shown above.

Thank you, I did not know that the refresh function of repos is disabled by default.
Yes, I will remove the repo and use the OSS repo.

I haven’t found Thunderbird, when using the auto-complelte after sudo zypper install, so I assumed it is not shipped with the default repo and found then the online page for it where the mozilla repo gets mentioned.

When you don’t know the full name of a package you can try the zypper search function. As example the package is called MozillaThunderbird. If you search for Thunderbird you already get results with the correct package names and versions which you then can use with zypper install

ich@laptopneu:~> LANG=C zypper se -s thunderbird
Loading repository data...
Reading installed packages...

S | Name                                   | Type    | Version      | Arch   | Repository
--+----------------------------------------+---------+--------------+--------+-----------
  | MozillaThunderbird                     | package | 115.12.0-1.1 | x86_64 | OSS
  | MozillaThunderbird-openpgp-librnp      | package | 115.12.0-1.1 | x86_64 | OSS
  | MozillaThunderbird-translations-common | package | 115.12.0-1.1 | x86_64 | OSS
  | MozillaThunderbird-translations-other  | package | 115.12.0-1.1 | x86_64 | OSS
ich@laptopneu:~> 


1 Like

It is not “the refresh function”, but the “auto-refresh” that can bet set “on” or off".

“Auto-refresh” is done every time zypper or YaST > Software is asked for an action where repos are involved. Thus in “normal life” you do not do a zypper ref at all. However that auto-refresh will not be done at all times. The /etc/zypper/zypper,conf file says:

##
## Amount of time in minutes that must pass before another refresh.
##
## Valid values: Integer
## Default value: 10
##
## If you have autorefresh enabled for a repository, it is checked for
## up-to-date metadata not more often than every <repo.refresh.delay>
## minutes. If an automatic request for refresh comes before <repo.refresh.delay>
## minutes passed since the last check, the request is ignored.
##
## A value of 0 means the repository will always be checked. To get the opposite
## effect, disable autorefresh for your repositories.
##
## This option has no effect for repositories with autorefresh disabled, nor for
## user-requested refresh.
##
# repo.refresh.delay = 10

You can see that when you do e.g. a zypper dup, then all repos (with of course the auto-refresh switched on) will refresh before your eyes before the dup starts. Repeat it within a few minutes and you will see that the refresh is not done.

Thus having the auto-refresh on for all repos (as long as you use standard repos) and then forgetting about zypper ref(except in special situations) is not a bad thing.

About it being disabled by default, I doubt. I did not do a fresh installation just to test this, but as far as I know it is on for the standard repos.

Each repository can individually have automatic refresh disabled.

Wasn’t I clear enough about that? In any case, it is rather well explained in my quote of the zypper.conf file.

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.