서버 업그레이드(yum 업데이트)로 psql 로컬 설치 제거

서버 업그레이드(yum 업데이트)로 psql 로컬 설치 제거

얼마 전에 다음 명령을 사용하여 AWS Centos 서버에 PostgreSQL 서버 9.6.2를 로컬로 설치했습니다.

rpm -i https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-6-x86_64/pgdg-ami201503-96-9.6-2.noarch.rpm 
yum install postgresql96-server -y

며칠 전 yum update를 사용하여 서버를 업그레이드했습니다. 이 프로세스가 완료되면 내 응용 프로그램이 작동하지 않는 것을 발견했습니다. 업그레이드 프로세스가 기존 psql 설치와 충돌하는 것을 발견하고 현재 psql 서버를 제거했습니다. (다행히 이건 그냥 개발서버인데...)

내 질문은: 왜 이런 일이 발생합니까? 이것은 버그입니까, 아니면 제가 어리석게 수동으로 설치하고 yum update 명령에서 제외하지 않은 것입니까? 누구든지 이 문제를 설명할 수 있나요?

제가 수집한 세부정보는 다음과 같습니다.

uname -a 출력:

Linux 4.9.85-37.55.amzn1.x86_64

냠로그

Mar 11 13:49:17 Updated: postgresql96-libs-9.6.6-1.79.amzn1.x86_64 
Mar 11 13:49:20 Updated: postgresql96-9.6.6-1.79.amzn1.x86_64 
Mar 11 13:49:26 Updated: postgresql96-server-9.6.6-1.79.amzn1.x86_64

error in yum history info 97 warning: %postun(postgresql96-server-9.6.5-1PGDG.rhel6.x86_64) scriptlet failed, exit status 1


Updated     postgresql96-9.6.5-1PGDG.rhel6.x86_64 @pgdg96
Update                   9.6.6-1.79.amzn1.x86_64 @amzn-updates
Updated     postgresql96-libs-9.6.5-1PGDG.rhel6.x86_64 @pgdg96
Update                        9.6.6-1.79.amzn1.x86_64  @amzn-updates
Updated     postgresql96-server-9.6.5-1PGDG.rhel6.x86_64 @pgdg96
Update                          9.6.6-1.79.amzn1.x86_64  @amzn-updates

대안:

[user@ip alternatives]# alternatives --config psql

There is 1 program that provides 'psql'.
Selection Command

*+ 1 /usr/bin/psql96

답변1

pgdg96저장소의 postgres 버전을 amzn-updates저장소의 postgres 버전 으로 교체한 것 같습니다 . 두 패키지 모두 호출되므로 postgresql96yum/RPM은 하나를 다른 패키지에 대한 직접 교체로 간주합니다.

alternatives게다가 이전 패키지를 사용하여 기본 바이너리를 선택할 수도 있지만 그룹 이름이 다른 것 같습니다 psql. 아마도 pgsql-psql새 패키지가 이 그룹을 사용하는 위치와 같은 것일 수 있습니다 psql. 따라서 업그레이드할 때 시스템은 이를 기존 그룹의 업그레이드가 아닌 구성해야 하는 새 그룹으로 간주합니다. 그리고 패키지에는 amzn-updates기본값이 설정되어 있지 않은 것 같으며 alternatives이를 설정하려면 명시적으로 실행해야 합니다.

2개의 저장소 중 하나에서 패키지를 블랙리스트에 추가하지 않으면 이런 일이 다시 발생할 가능성이 높습니다. 비활성화하려는 저장소의 파일 exclude=postgresql96*에 추가하기만 하면 됩니다 ./etc/yum.repos.d/

관련 정보