일부 Centos VM에는 yum을 통해 제거한 다음 rpm을 통해 MariaDB를 설치하는 몇 가지 MySQL 패키지가 모두 쉘 스크립트에 있습니다. 제거를 위해 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"
연결 실패의 원인이 FireWall 등 때문인 것으로 알고 있습니다.
내 질문은:
누락된 패키지를 무시하라고 yum에게 지시할 수 있습니까?
아니면 적어도 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 패키지를 설치하는 데 사용해야 합니다 .