[opensuse-support] package database corruption
After having run a routine YaST Online Update, somehow my package database appears to have gotten corrupted. Specifically, I have ~30 packages where YaST/zypper thinks that the older (replaced) version is still installed and therefore should be deleted. The new version was installed in the update, and YaST Software shows that as the installed version. However, when YaST/zypper attempts to delete that older version, it fails because that version is no longer found on the system. Yet when I run "zypper se -s", it reports that both versions are installed. If I tell zypper to rm the older version with the -f (force) option, it errors on being unable to find it. If I tell zypper to delete the entire package (so I can just reinstall the new version), it again returns an error saying that it cannot find it, displaying the old version number. Forcing a reinstall again installs the newest version, but the problem still exists. I've checked the dates on a sampling of files from these packages, and they are the newest, so the initial updates were done correctly. The old package versions and the old files indeed do not exist - except in the mind of libzypp. I assume that the package database is somehow corrupted. What can I do to correct this problem? TIA, --dg -- To unsubscribe, e-mail: opensuse-support+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-support+owner@opensuse.org
Op dinsdag 19 maart 2019 23:44:47 CET schreef DennisG:
After having run a routine YaST Online Update, somehow my package database appears to have gotten corrupted.
Specifically, I have ~30 packages where YaST/zypper thinks that the older (replaced) version is still installed and therefore should be deleted. The new version was installed in the update, and YaST Software shows that as the installed version. However, when YaST/zypper attempts to delete that older version, it fails because that version is no longer found on the system.
Yet when I run "zypper se -s", it reports that both versions are installed. If I tell zypper to rm the older version with the -f (force) option, it errors on being unable to find it. If I tell zypper to delete the entire package (so I can just reinstall the new version), it again returns an error saying that it cannot find it, displaying the old version number. Forcing a reinstall again installs the newest version, but the problem still exists.
I've checked the dates on a sampling of files from these packages, and they are the newest, so the initial updates were done correctly. The old package versions and the old files indeed do not exist - except in the mind of libzypp.
I assume that the package database is somehow corrupted. What can I do to correct this problem?
If it's the rpmdb: rpm --rebuilddb
TIA,
--dg
-- Gertjan Lettink a.k.a. Knurpht openSUSE Board Member openSUSE Forums Team -- To unsubscribe, e-mail: opensuse-support+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-support+owner@opensuse.org
* Knurpht-openSUSE
Op dinsdag 19 maart 2019 23:44:47 CET schreef DennisG:
After having run a routine YaST Online Update, somehow my package database appears to have gotten corrupted.
Specifically, I have ~30 packages where YaST/zypper thinks that the older (replaced) version is still installed and therefore should be deleted. The new version was installed in the update, and YaST Software shows that as the installed version. However, when YaST/zypper attempts to delete that older version, it fails because that version is no longer found on the system.
Yet when I run "zypper se -s", it reports that both versions are installed. If I tell zypper to rm the older version with the -f (force) option, it errors on being unable to find it. If I tell zypper to delete the entire package (so I can just reinstall the new version), it again returns an error saying that it cannot find it, displaying the old version number. Forcing a reinstall again installs the newest version, but the problem still exists.
I've checked the dates on a sampling of files from these packages, and they are the newest, so the initial updates were done correctly. The old package versions and the old files indeed do not exist - except in the mind of libzypp.
I assume that the package database is somehow corrupted. What can I do to correct this problem?
If it's the rpmdb: rpm --rebuilddb
also you might try to remove the old-replaced packages: rpm -e <package-with version> ex: rpm -e bash-doc-5.0-5.1.noarch do for every errant package. sometimes that will be enough -- (paka)Patrick Shanahan Plainfield, Indiana, USA @ptilopteri http://en.opensuse.org openSUSE Community Member facebook/ptilopteri Registered Linux User #207535 @ http://linuxcounter.net Photos: http://wahoo.no-ip.org/piwigo paka @ IRCnet freenode -- To unsubscribe, e-mail: opensuse-support+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-support+owner@opensuse.org
DennisG composed on 2019-03-19 18:44 (UTC-0400):
when I run "zypper se -s", it reports that both versions are installed.
rpm -e --justdb packagename-<phantomVersion> -- Evolution as taught in public schools is religion, not science. Team OS/2 ** Reg. Linux User #211409 ** a11y rocks! Felix Miata *** http://fm.no-ip.com/ -- To unsubscribe, e-mail: opensuse-support+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-support+owner@opensuse.org
20.03.2019 1:44, DennisG пишет:
After having run a routine YaST Online Update, somehow my package database appears to have gotten corrupted.
Specifically, I have ~30 packages where YaST/zypper thinks that the older (replaced) version is still installed and therefore should be deleted. The new version was installed in the update, and YaST Software shows that as the installed version. However, when YaST/zypper attempts to delete that older version, it fails because that version is no longer found on the system.
Yet when I run "zypper se -s", it reports that both versions are installed. If I tell zypper to rm the older version with the -f (force) option, it errors on being unable to find it. If I tell zypper to delete the entire package (so I can just reinstall the new version), it again returns an error saying that it cannot find it, displaying the old version number. Forcing a reinstall again installs the newest version, but the problem still exists.
I've checked the dates on a sampling of files from these packages, and they are the newest, so the initial updates were done correctly. The old package versions and the old files indeed do not exist - except in the mind of libzypp.
I assume that the package database is somehow corrupted.
Unlikely. This can happen in case post remove script fails. Then package remains listed in database. It cannot be removed "normally" in case uninstallation continues to return error.
What can I do to correct this problem?
TIA,
--dg
-- To unsubscribe, e-mail: opensuse-support+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-support+owner@opensuse.org
participants (5)
-
Andrei Borzenkov
-
DennisG
-
Felix Miata
-
Knurpht-openSUSE
-
Patrick Shanahan