일부 Centos VM에서는 일부 MySQL 패키지를 제거하고(yum을 통해) MariaDB를 설치해야 합니다(rpm을 통해). 모두 쉘 스크립트에 포함되어 있습니다. 나는 yum을 사용하여 다음을 삭제합니다.
yum remove -y mysql-community-client
yum remove -y mysql-community-release
yum remove -y mysql-community-libs
yum remove -y mysql-community-common
이제 일부 VM에서는 클라이언트 패키지가 설치되지 않을 수 있으므로 yum이 표시됩니다.
No Match for argument: mysql-community-client
Determining fastest mirrors
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=os&infra=stock error was
14: PYCURL ERROR 7 - "couldn't connect to host"
방화벽 같은 것 때문에 연결이 실패한 것으로 알고 있습니다.
제 질문은:
누락된 패킷을 무시하라고 지시할 수 있습니까?
아니면 적어도 No Match for argument
미러 등에 연결하지 않고 단순히 실패합니까?
질문 제목은 yum remove -y mysql-community-client
다음에 나오는 내용이 yum remove -y mysql-community-client
미러에 연결된다는 사실을 나타내는 반면, "패키지 제거됨" 다음에 "패키지 제거됨"이라고 말하고 싶습니다.
질문을 바꿔 말하면 문제는 RPM에 있는 것이 아니며(질문의 완전성을 위해 이것을 언급할 뿐입니다) 문제는 yum에 있습니다. yum remove X
X가 설치되어 있으면 제거됩니다. 설치되어 있지 않으면 피하고 싶은 미러를 검색합니다. yum이 "X가 설치되지 않았습니다"라고 말하고 종료하길 원합니다.
답변1
우리는 yum이 어떻게 행동하고 어떻게 행동해야 하는지에 대해 오랫동안 논의할 수 있지만 간단히 말하면 다음과 같습니다.
yum --cacheonly remove -y mysql-community-client
당신이 원하는 것일 수도 있습니다.
답변2
mysql-community
제가 올바르게 이해했다면 네트워크 액세스를 차단하고 플러그인을 비활성화하며 현재 설치된 패키지 만 제거하고 싶으실 것입니다 . 그래서 뭐?
yum --disablerepo="*" --noplugins remove "*mysql-community*" -y
glob 과 일치하는 설치된 패키지만 일치합니다 "*mysql-community*"
. 일반적으로 나는 개인적 -y
으로 플래그를 사용 하지 않을 것입니다 remove
.
설치된 특정 패키지만 선택적으로 제거하려면 다음을 수행하십시오.토마스의 대답당신에게 꼭 필요한 것.
답변3
yum 저장소에서 패키지를 설치하는 대신 을 사용하면 rpm
참조할 관련 저장소가 없기 때문에 yum은 rpm이 제거된 시점을 확인하는 방법을 알 수 없습니다. 따라서 그 중 한 부분(MariaDB)은 멱등성을 갖게 될 수 없습니다.
스크립트가 멱등성을 가지도록 하려면 rpm -q
주어진 패키지를 사용하여 해당 패키지가 설치되어 있는지 확인하고 그 결과를 사용하여 yum을 실행할지 여부를 결정하는 것이 더 나은 접근 방식입니다.
rpm
패키지를 설치하는 데 사용하면 즉시 알 수 없지만 yum
시스템 업데이트를 요청하면 RPM 데이터베이스가 yum 외부에 설치되어 있다는 경고가 표시됩니다. 따라서 yum install
RPM 세트에서 MariaDB 패키지를 설치해야 합니다.