냠/rpm 불일치

냠/rpm 불일치

RHEL 5(64비트)를 사용하고 있는데 rpm/yum 불일치가 발생합니다. 32비트 RPM을 설치하려고 하면 디스크에 64비트 버전만 있는데 RPM이 이미 설치되어 있다는 메시지가 나타납니다.

$ rpm -Uvh ./libsysfs-2.1.0-1.el5.i386.rpm
Preparing...                ########################### [100%]
        package libsysfs-2.1.0-1.el5.i386 is already installed

$ rpm -q libsysfs --qf '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n
libsysfs-2.1.0-1.el5.x86_64

데이터베이스 재구축을 시도했지만 동일한 오류가 발생했습니다.

실제로 RPM이 설치되지 않은 것을 확인했습니다. 실행하면 rpm -qp ./libsysfs-2.1.0-1.el5.i386.rpm나열된 파일이 시스템에 존재하지 않는 것을 확인할 수 있습니다.

내가 무엇을 놓치고 있나요? RPM이 RPM이 설치되어 있는지 확인하기 위해 다른 것을 찾나요?

편집 1

이것이 RPM 자체와 관련이 있는지 확실하지 않습니다. 를 실행하고 updatedbRPM 삭제를 사용하여 rpm -e libsysfs둘 다 설치하려고 하면 패키지가 추가되었다는 오류 메시지가 나타납니다.

$ rpm -e libsysfs
$ rpm -Uvh ./libsysfs-2.1.0-1.el5.i386.rpm ./libsysfs-2.1.0-1.el5.x86_64.rpm
warning: package libsysfs = 2.1.0-1.el5 was already added, skipping libsysfs < 2.1.0-1.el5
Preparing...                ########################### [100%]
   1:libsysfs               ########################### [100%]

동일한 작업을 수행하는 다른 RPM이 19개 있습니다.

편집 2

32비트 패키지가 여전히 설치되지 않습니다. 무슨 일이 일어나고 있는지 알아보는 과정에서 강제로 rpm install 을 할 수 있었고 rpm -Uvh --force libsysfs-2.1.0-1.el5.i386.rpm성공적으로 설치되었습니다. 32비트로 나열된 파일을 확인할 수 있습니다.그리고이제 파일 시스템에 64비트 RPM이 존재합니다. 그러나 양측은 rpm이제 yum믿습니다.오직32비트 버전은 디스크에 있습니다:

$ rpm -q libsysfs --qf '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n
libsysfs-2.1.0-1.el5.i386

32비트 RPM을 성공적으로 지울 수 있지만 rpm이제 모든 파일이 제자리에 있어도 명령이 더 이상 64비트 변형을 인식하지 못합니다.

$ rpm -e libsysfs.i386
$ rpm -q libsysfs --qf '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n
package libsysfs is not installed
$ rpm -qpl ./libsysfs-2.1.0-1.el5.x86_64.rpm
/usr/lib64/libsysfs.so.2
/usr/lib64/libsysfs.so.2.0.1
...
/usr/share/doc/libsysfs-2.1.0/libsysfs.txt

$ ls /usr/lib64/libsysfs.so.2
/usr/lib64/libsysfs.so.2

RPM 데이터베이스를 재구축했지만 여전히 libsysfs RPM을 찾을 수 없습니다.

$ cd /var/lib/rpm
$ rm -f __db*
$ /usr/lib/rpm/rpmdb_verify Packages
$ mv Packages Packages.orig
$ /usr/lib/rpm/rpmdb_dump Packages.orig | /usr/lib/rpm/rpmdb_load Packages
$ /usr/lib/rpm/rpmdb_verify Packages
$ rpm -v --rebuilddb

일종의 RPM 데이터베이스 손상이 있는 것이 틀림없다는 결론에 도달했지만 어떻게 해야 할지 모르겠습니다.

편집 3

무슨 일이 일어나고 있는지 더 잘 이해하기 위해 libsysfs를 제거하고 yum localinstall옵션을 시도했지만 설치 프로그램은 여전히 ​​32비트 옵션과 64비트 옵션을 같은 것으로 취급하는 것 같습니다.

$ yum localinstall ./libsysfs-2.1.0-1.el5.x86_64.rpm ./libsysfs-2.1.0-1.el5.i386.rpm
...
Resolving Dependencies
--> Running transaction check
---> Package libsysfs.i386 0:2.1.0-1.el5 set to be updated
---> Package libsysfs.x86_64 0:2.1.0-1.el5 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

===============================================================================
Packages      Arch       Version         Repository                      Size 
===============================================================================
Installing:
 libsysfs     i386       2.1.0-1.el5     /libsysfs-2.1.0-1.el5.i386      140 k
 libsysfs     x86_64     2.1.0-1.el5     /libsysfs-2.1.0-1.el5.x86_64    141 k

Transaction Summary
===============================================================================
Install      2 Package(s)
Upgrade      0 Package(s)

Total Size: 281 k
...
Running Transaction:
  Installing     : libsysfs                      1/1
Installed products updated.

Installed:
  libsysfs.i386 0:2.1.0-1.el5           libsysfs.x86_64 0:2.1.0-1.el5

Complete!

실제로 설치가 발생한 곳을 제외한 모든 곳에서 두 아키텍처가 모두 언급되었지만 설치는 여전히 하나만 이루어졌습니다.

답변1

모든 32비트 RPM이 동일하게 생성되는 것은 아닌 것 같습니다. 이 문제가 있는 유일한 RPM은 RHN에서 직접 다운로드한 RPM입니다. yum을 통해 rhel-5-server-rpms 저장소에 있는 RPM을 사용하면 모든 것이 잘 작동합니다. rhn.redhat.com에서 다운로드한 50개 정도의 누락된 RPM이 문제의 원인이었습니다.

우리 설정에서는 다운로드한 RPM이 아나콘다를 통해 시스템에 강제로 로드됩니다.

편집하다

문제를 최소화하기 위해 각 32비트 RPM을 제거하고 64비트/noarch RPM을 다시 설치한 다음 32비트 RPM을 설치하면 문제가 해결되는 것으로 보입니다.

yum erase '*.i386'
yum reinstall '*.x86_64' --exclude=filesystem
yum install '<rpm>.i386'

어떤 이유에서인지 이것은 내가 본 8RPM을 제외하고는 해결되었습니다.

답변2

아치 지지대를 확인해 보세요. x86_64 패키지를 사용하고 있거나 필요하다고 말했지만 i386 패키지를 가지고 있습니다.

문제는 "/etc/yum.conf" 파일의 아치 지원과 관련이 있을 수 있습니다. 바꿔보세요 ->

multilib_policy=all

받는 사람->

multilib_policy=best

이것을 실행하세요:

yum clean all

그런 다음 패키지 업데이트를 실행하고 필요한 패키지를 설치/업그레이드하세요.

또한 다음 공식 링크를 확인하세요.

Yum 캐시 정보:https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/sec-Working_with_Yum_Cache.html

Yum 기본 리소스: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/System_Administrators_Guide/sec-Working_with_Packages.html

관련 정보