친애하는 친구와 대학 여러분,
저는 여기 일부 대학에서 중요하다고 생각하는 다음 질문을 여러분과 공유하고 싶습니다.
내 Linux 상자에 있는 모든 저장소가 괜찮은지 확인하고 싶습니다.
그래서 우리는 명령을 실행합니다 -냠 재처리 중다음과 같이
저장소 중 하나에 대한 오류를 볼 수 있습니다
yum repolist
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
file:///var/repoha/bility/h5th5th54/repodata/repomd.xml: [Errno 14] curl#37 - "Couldn't open file /var/repoha/bility/h5th5th54/repodata/repomd.xml"
Trying other mirror.
file:///var/repoha/bility/h5th5th54/repodata/repomd.xml: [Errno 14] curl#37 - "Couldn't open file /var/repoha/bility/h5th5th54/repodata/repomd.xml"
Trying other mirror.
Storage | 4.1 kB 00:00:00
Storage/group_gz | 4.9 kB 00:00:00
Storage/primary_db | 29 kB 00:00:00
local | 4.1 kB 00:00:00
local/group_gz | 136 kB 00:00:00
local/primary_db | 3.6 MB 00:00:00
repo id repo name status
bility Red Hat Enterprise Linux Server release 7.2 (Maipo) - bility 0
Storage Red Hat Enterprise Linux Server release 7.2 (Maipo) - Storage 37
local Red Hat Enterprise Linux Server release 7.2 (Maipo) - Local 4,620
repolist: 4,657
따라서 Repo가 정상인지 확인하기 위해서는 $?
[root@trump yum.repos.d]# echo $?
0
하지만 우리는 0을 얻습니다
왜 "0"이 나오나요? 저장소가 올바르지 않지만?
내 질문은 내 Linux 시스템에서 잘못된/잘못된 저장소를 식별하는 방법입니다.
답변1
check-update --refresh
내 Ansible 역할에서는 명령에 대한 옵션으로 -를 사용 dnf
하지만 동일한 아이디어가 에도 적용되어야 합니다 yum
.
yum
이는 옵션이 아닐 수도 있습니다 --refresh
. 대신 yum clean expire-cache
then 을 실행하세요 yum check-update
.
업데이트가 가능한 경우 종료 상태( $?
) 는 성공 check-update
입니다 0
. 100
다른 값은 실패를 나타냅니다. 일반적으로 항상 그런 것은 아니지만 이는 저장소를 읽는 데 문제가 있음을 나타냅니다. 내 목적으로는 그것으로 충분합니다. 예를 들어, 네트워크 연결을 끊고 즉시 명령을 실행하면 종료 상태가 반환됩니다 1
.
보다 구체적으로 내 Ansible 역할은 새 저장소를 설치하고 저장소를 검증하려고 합니다. 예를 들어 저장소가 bility
제대로 실행되고 있는지, 메타데이터를 읽을 수 있는지 확인하기 위해 비슷한 명령을 사용합니다 dnf --disablerepo="*" --enablerepo=bility --refresh check-update
.