Opensuse
將 SUSE Tumbleweed 更改為 Leap 後如何修復損壞的 Zypper
我通過將儲存庫列表更改為:
# zypper lr Repository priorities are without effect. All enabled repositories share the same priority. # | Alias | Name | Enabled | GPG Check | Refresh --+-------------------------------------+-----------------------------------+---------+-----------+-------- 1 | http-download.opensuse.org-2fb25ebb | devel:tools:building | Yes | (r ) Yes | Yes 2 | packman | packman | Yes | (r ) Yes | Yes 3 | repo-debug | openSUSE-Leap-42.3-Debug | No | ---- | ---- 4 | repo-non-oss | openSUSE-Leap-42.3-Non-Oss | Yes | (r ) Yes | Yes 5 | repo-oss | openSUSE-Leap-42.3-Oss | Yes | (r ) Yes | Yes 6 | repo-source | openSUSE-Leap-42.3-Source | No | ---- | ---- 7 | repo-source-non-oss | openSUSE-Leap-42.3-Source-Non-Oss | Yes | (r ) Yes | Yes 8 | repo-update | openSUSE-Leap-42.3-Update | Yes | (r ) Yes | Yes 9 | repo-update-non-oss | openSUSE-Leap-42.3-Update-Non-Oss | Yes | (r ) Yes | Yes
接下來我嘗試更新它:
# zypper up Loading repository data... Reading installed packages... The following 119 package updates will NOT be installed: cmake dmraid ffmpeg gettext-runtime gio-branding-openSUSE gstreamer-plugins-bad gtk3-branding-openSUSE java-1_8_0-openjdk java-1_8_0-openjdk-headless libavcodec57 libavdevice57 libavfilter6 libavformat57 libavresample3 libavutil55 libdcerpc0 libdcerpc0-32bit libdcerpc-binding0 libdcerpc-binding0-32bit libgstadaptivedemux-1_0-0 libgstbadaudio-1_0-0 libgstbadbase-1_0-0 libgstbadvideo-1_0-0 libgstbasecamerabinsrc-1_0-0 libgstcodecparsers-1_0-0 libgstgl-1_0-0 libgstmpegts-1_0-0 libgstphotography-1_0-0 libgsturidownloader-1_0-0 libgstwayland-1_0-0 libltdl7 libmjpegutils-2_0-0 libndr0 libndr0-32bit libndr-krb5pac0 libndr-krb5pac0-32bit libndr-nbt0 libndr-nbt0-32bit libndr-standard0 libndr-standard0-32bit libnetapi0 libnetapi0-32bit libpostproc54 libquicktime0 libsamba-credentials0 libsamba-credentials0-32bit libsamba-hostconfig0 libsamba-hostconfig0-32bit libsamba-passdb0 libsamba-passdb0-32bit libsamba-util0 libsamba-util0-32bit libsamdb0 libsamdb0-32bit libsmbclient0 libsmbconf0 libsmbconf0-32bit libsmbldap0 libsmbldap0-32bit libsox3 libswresample2 libswscale4 libwbclient0 libwbclient0-32bit mjpegtools NetworkManager-branding-openSUSE PackageKit-branding-openSUSE perl-Authen-SASL perl-B-Hooks-EndOfScope perl-Class-Data-Inheritable perl-Class-Factory-Util perl-Class-Method-Modifiers perl-Crypt-SmbHash perl-Devel-Caller perl-Devel-LexAlias perl-Digest-HMAC perl-Digest-MD4 perl-Digest-SHA1 perl-Eval-Closure perl-File-Listing perl-HTML-Tagset perl-HTTP-Daemon perl-HTTP-Date perl-HTTP-Negotiate perl-LWP-MediaTypes perl-namespace-autoclean perl-namespace-clean perl-Net-LibIDN perl-Package-DeprecationManager perl-PadWalker perl-Params-Util perl-Pod-Coverage perl-Sub-Install perl-TermReadLine-Gnu perl-Test-Fatal perl-TimeDate perl-WWW-RobotRules perl-X11-Protocol perl-X500-DN perl-XML-SAX python3-cairo qt4-qtscript samba samba-client samba-client-32bit samba-libs samba-libs-32bit samba-winbind samba-winbind-32bit site-config sox subversion-perl xf86-input-vmmouse xf86-input-void xf86-video-fbdev xf86-video-vesa xorg-x11-server yast2-core yast2-perl-bindings The following 2 packages are going to be REMOVED: libzypp libzypp The following 5 packages are going to be upgraded: libicu52_1 libicu52_1-data libzypp zypper-aptitude zypper-log 5 packages to upgrade, 2 to remove. Overall download size: 8.7 MiB. Already cached: 0 B. After the operation, 14.9 MiB will be freed. Continue? [y/n/...? shows all options] (y): y Retrieving package libicu52_1-data-52.1-15.1.x86_64 (1/5), 5.2 MiB ( 22.4 MiB unpacked) Retrieving delta: ./x86_64/libicu52_1-data-52.1-13.3_15.1.x86_64.drpm, 16.7 KiB Retrieving: libicu52_1-data-52.1-13.3_15.1.x86_64.drpm ..................................................................................................................................................................................................................[done] Applying delta: ./libicu52_1-data-52.1-13.3_15.1.x86_64.drpm ............................................................................................................................................................................................................[done] Retrieving package libzypp-16.15.6-12.1.x86_64 (2/5), 2.0 MiB ( 7.4 MiB unpacked) Retrieving: libzypp-16.15.6-12.1.x86_64.rpm ...............................................................................................................................................................................................................[done (356.5 KiB/s)] Retrieving package zypper-aptitude-1.13.32-8.1.noarch (3/5), 60.4 KiB ( 4.0 KiB unpacked) Retrieving: zypper-aptitude-1.13.32-8.1.noarch.rpm .........................................................................................................................................................................................................[done (75.4 KiB/s)] Retrieving package zypper-log-1.13.32-8.1.noarch (4/5), 61.0 KiB ( 6.2 KiB unpacked) Retrieving: zypper-log-1.13.32-8.1.noarch.rpm ...........................................................................................................................................................................................................................[done] Retrieving package libicu52_1-52.1-15.1.x86_64 (5/5), 1.4 MiB ( 4.3 MiB unpacked) Retrieving delta: ./x86_64/libicu52_1-52.1-13.3_15.1.x86_64.drpm, 21.8 KiB Retrieving: libicu52_1-52.1-13.3_15.1.x86_64.drpm .......................................................................................................................................................................................................................[done] Applying delta: ./libicu52_1-52.1-13.3_15.1.x86_64.drpm .................................................................................................................................................................................................................[done] Checking for file conflicts: ............................................................................................................................................................................................................................................[done] (1/5) Installing: libicu52_1-data-52.1-15.1.x86_64 ......................................................................................................................................................................................................................[done] (2/5) Installing: libzypp-16.15.6-12.1.x86_64 ...........................................................................................................................................................................................................................[done] (3/5) Installing: zypper-aptitude-1.13.32-8.1.noarch ....................................................................................................................................................................................................................[done] (4/5) Installing: zypper-log-1.13.32-8.1.noarch .........................................................................................................................................................................................................................[done] (5/5) Installing: libicu52_1-52.1-15.1.x86_64 ...........................................................................................................................................................................................................................[done] There are some running programs that might use files deleted by recent upgrade. You may wish to check and restart some of them. Run 'zypper ps -s' to list these programs.
在那個 zypper 被破壞之後:
# zypper zypper: relocation error: zypper: symbol _ZN4zypp13KeyRingReport10infoVerifyERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_13PublicKeyDataERKNS_10KeyContextE, version ZYPP_plain not defined in file libzypp.so.1600 with link time reference
我試圖從 Tumbleweed 中找到與 zypper 相關的軟體包的版本並安裝了它們:
# rpm --force -hiv libmodman1-2.0.1-24.25.x86_64.rpm libproxy1-0.4.14-164.14.x86_64.rpm python-zypp-0.7.3-3.27.x86_64.rpm zypper-1.13.32-9.1.x86_64.rpm zypper-aptitude-1.13.14-1.1.noarch.rpm zypper-log-1.13.14-1.1.noarch.rpm warning: libmodman1-2.0.1-24.25.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 629ff0c2: NOKEY warning: python-zypp-0.7.3-3.27.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID f3ef3328: NOKEY warning: zypper-aptitude-1.13.14-1.1.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID f6ab3975: NOKEY Preparing... ################################# [100%] Updating / installing... 1:zypper-1.13.32-9.1 ################################# [ 17%] 2:libmodman1-2.0.1-24.25 ################################# [ 33%] 3:libproxy1-0.4.14-164.14 ################################# [ 50%] 4:zypper-aptitude-1.13.14-1.1 ################################# [ 67%] 5:zypper-log-1.13.14-1.1 ################################# [ 83%] 6:python-zypp-0.7.3-3.27 ################################# [100%]
但是它不修復 zypper:
# zypper zypper: relocation error: zypper: symbol _ZN4zypp13KeyRingReport10infoVerifyERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_13PublicKeyDataERKNS_10KeyContextE, version ZYPP_plain not defined in file libzypp.so.1600 with link time reference
我可以做些什麼來避免重新安裝我的系統?我可以下載 zypper 的原始碼並編譯並執行嗎?
我從 software.opensuse.org 為 openSuse 42.3 下載了 zyppper 和 libzypp
之後我執行
rpm --force -hiv *rpm
(對於這些 rpm)並且在此操作之後 zypper 被修復。