냠 libstdc++ 다운그레이드

냠 libstdc++ 다운그레이드

libstdc++-4.4.4-13.el6.i686.rpm을 설치하려고 하는데 이 패키지의 최신 버전이 이미 설치되어 있다고 나옵니다.

[root@isoft Downloads]# rpm -ivh libstdc++-4.4.4-13.el6.i686.rpm
warning: libstdc++-4.4.4-13.el6.i686.rpm: Header V4 DSA/SHA1 Signature, key ID 192a7d7d: NOKEY
Preparing...                ########################################### [100%]
package libstdc++-4.4.7-17.el6.x86_64 (which is newer than libstdc++-4.4.4-13.el6.i686) is already installed*

심지어 libstdc++-4.4.7-17.el6.x86_64를 제거할 수도 없습니다.

[root@isoft yum.repos.d]# yum install libstdc++-4.4.6-4.el6.i686
Loaded plugins: refresh-packagekit, security, ulninfo
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package libstdc++.i686 0:4.4.6-4.el6 will be installed
--> Finished Dependency Resolution
Error:  Multilib version problems found. This often means that the root
       cause is something else and multilib version checking is just
       pointing out that there is a problem. Eg.:

         1. You have an upgrade for libstdc++ which is missing some
            dependency that another package requires. Yum is trying to
            solve this by installing an older version of libstdc++ of the
            different architecture. If you exclude the bad architecture
            yum will tell you what the root cause is (which package
            requires what). You can try redoing the upgrade with
            --exclude libstdc++.otherarch ... this should give you an error
            message showing the root cause of the problem.

         2. You have multiple architectures of libstdc++ installed, but
            yum can only see an upgrade for one of those arcitectures.
            If you don't want/need both architectures anymore then you
            can remove the one with the missing update and everything
            will work.

         3. You have duplicate versions of libstdc++ installed already.
            You can use "yum check" to get yum show these errors.

       ...you can also use --setopt=protected_multilib=false to remove
       this checking, however this is almost never the correct thing to
       do as something else is very likely to go wrong (often causing
       much more problems).

       Protected multilib versions: libstdc++-4.4.6-4.el6.i686 != libstdc++-4.4.7-17.el6.x86_64

누구나 이 오류를 해결할 수 있는 아이디어가 있습니다.

답변1

너는 달려야 해

냠 libstdc++ 다운그레이드

종속성을 해결했습니다. 저장소에 여전히 원하는 libstdc++ 4.4.4-13이 있기를 바랍니다. @anthon과 @sam은 읽기 능력을 향상시켜야 합니다. 그의 문제는 libstdc++의 상위 버전을 제거하지 않고 libstdc++의 하위 버전을 설치하는 것입니다. 나는 그에게 설치된 패키지를 설치하고 제거하는 방법을 보여주었습니다. 심지어 그는 종속성 문제로 인해 yum을 통해 낮은 버전의 libstdc++를 설치할 수도 없었습니다. 내 대답에 문제가 있나요?

답변2

이러한 문제가 발생하면 다음 명령을 입력할 수 있습니다.

package-cleanup --dupes

이는 리포지토리가 설치하려는 아키텍처를 사용하여 패키지를 설치할 수 있도록 시스템의 패키지(중복 및 이전 버전)를 제거한 다음 설치를 다시 시작해야 함을 나타냅니다.

참고: 이 문제는 다른 스키마와 동일한 이전 패키지가 있기 때문에 시스템이 스키마에 대한 특정 패키지를 설치할 수 없음을 나타냅니다. 이는 중복되고 오래된 패킷을 폐기해야 함을 의미합니다.

관련 정보