Yum을 유지하고 성능을 높이기 위해 'yum-utils'를 설치하고 사용하는 방법
Fedora가 dnf를 새 패키지 관리자 및 기본 패키지 관리 라이브러리로 채택하기 시작 했더라도, 검증 될 때까지 다른 스핀 오프 배포 (예 : Red Hat Enterprise Linux (RHEL) 및 CentOS)에서 좋은 이전 yum 패키지 관리자를 대체하지 않습니다. yum만큼 신뢰할 수 있고 더 견고합니다 (Fedora Project wiki에 따르면 2015 년 11 월 15 일 현재 dnf는 여전히 테스트 가능한 상태입니다). 따라서 귀하의 yum 관리 기술은 여전히 꽤 오랫동안 귀하에게 도움이 될 것입니다.

이러한 이유로이 가이드에서는 yum과 통합하여 여러 가지 방법으로 기본 기능을 확장하여보다 강력하고 사용하기 쉽게 만드는 유틸리티 모음 인 yum-utils를 소개합니다.
RHEL / CentOS에 yum-utils 설치
Yum-utils는 기본 리포지토리 (기본적으로 활성화 됨)에 포함되어 있으므로 Fedora 기반 배포판에 설치하는 것은 다음과 같이 쉽습니다.
# yum update && yum install yum-utils
yum-utils에서 제공하는 모든 유틸리티는 다음 섹션에서 설명 할 기본 패키지와 함께 자동으로 설치됩니다.
yum-utils 패키지에서 제공하는 유틸리티 살펴보기
yum-utils에서 제공하는 도구는 man 페이지에 나열되어 있습니다.
# man yum-utils
관심을 가질만한 yum 유틸리티 10 개는 다음과 같습니다.
debuginfo-install
을 디버그하는 데 필요한 debuginfo 패키지 (및 해당 종속성)를 설치합니다.
패키지 (또는 다른 실행 파일)를 디버깅하려면 gdb (GNU 디버거)를 설치하고이를 사용하여 디버깅 모드에서 프로그램을 시작해야합니다.
예를 들면 :
# gdb $(which postfix)
위의 명령은 실행할 작업을 입력 할 수있는 gdb 셸을 시작합니다. 예를 들어, 실행 (아래 이미지 참조)은 프로그램을 시작하는 반면 bt (표시되지 않음)는 프로그램의 스택 추적 (백 트레이스라고도 함)을 표시합니다. 프로그램 실행의 특정 지점 (이 정보를 사용하여 개발자와 시스템 관리자 모두 충돌시 무엇이 잘못되었는지 파악할 수 있음).
기타 사용 가능한 작업과 예상 결과는 man gdb에 나열되어 있습니다.

다음 명령은 현재 설치된
…
패키지가 설치된 저장소를 보여줍니다.
# find-repos-of-install httpd postfix dovecot

인수없이 실행하면 find-repos-of-install은 현재 설치된 패키지의 전체 목록을 반환합니다.
package-cleanup은 패키지 정리, 중복, 고아 패키지 (현재 구성된 리포지토리가 아닌 소스에서 설치된 프로그램) 및 기타 종속성 불일치를 관리합니다. 여기에는 다음 예와 같이 이전 커널 제거가 포함됩니다.
# package-cleanup --orphans # package-cleanup --oldkernels

커널을 손상시키는 마지막 명령에 대해 걱정할 필요가 없습니다. 더 이상 필요하지 않은 이전 커널 패키지 (현재 실행중인 것보다 오래된 버전)에만 영향을줍니다.
repo-graph는 구성된 저장소에서 사용할 수있는 모든 패키지에 대해 점 형식의 전체 패키지 종속성 목록을 반환합니다. 또는 -repoid =
옵션과 함께 사용하면 repo-graph
가 저장소별로 동일한 정보를 반환 할 수 있습니다.
예를 들어 업데이트 저장소의 각 패키지에 대한 종속성을 살펴 보겠습니다.
# repo-graph --repoid=updates | less

위의 명령에서 우리는 더 쉬운 시각화를 위해 repo-graph의 출력을 less로 보내고 있지만, 나중에 검사하기 위해 로컬 파일로 리디렉션 할 수도 있습니다.
# repo-graph --repoid=updates > updates-dependencies.txt
두 경우 모두 iputils 패키지가 systemd 및 openssl-libs에 종속되어 있음을 알 수 있습니다.
repoclosure는 구성된 리포지토리의 메타 데이터를 읽고, 여기에 포함 된 패키지의 종속성을 확인하고, 각 패키지에 대해 해결되지 않은 종속성 목록을 표시합니다.
# repoclosure

repomanage는 rpm 패키지가있는 디렉토리를 쿼리하고 디렉토리에서 최신 또는 가장 오래된 패키지 목록을 반환합니다. 이 도구는 다른 프로그램의 여러 .rpm 패키지를 저장하는 디렉토리가있는 경우 유용 할 수 있습니다.
인수없이 실행되면 repomanage는 최신 패키지를 반환합니다. -old
플래그와 함께 실행하면 가장 오래된 패키지가 반환됩니다.
# ls -l # cd rpms # ls -l rpms # repomanage rpms

rpm 패키지의 이름을 변경해도 repomanage 작동 방식에는 영향을 미치지 않습니다.
repoquery는 yum 저장소를 쿼리하고 설치 여부에 관계없이 패키지에 대한 추가 정보를 가져옵니다 (종속성, 패키지에 포함 된 파일 등).
예를 들어 아래에서 볼 수 있듯이 htop (Linux Process Monitoring)은 현재이 시스템에 설치되어 있지 않습니다.
# which htop # rpm -qa | grep htop

이제 기본 설치에 포함 된 파일과 함께 htop의 종속성을 나열하려고한다고 가정합니다. 이렇게하려면 다음 두 명령을 각각 실행하십시오.
# repoquery --requires htop # repoquery --list htop

yum-debug-dump를 사용하면 설치 한 모든 패키지, 모든 저장소에서 사용 가능한 모든 패키지, 중요한 구성 및 시스템 정보의 전체 목록을 압축 파일로 덤프 할 수 있습니다.
이것은 발생한 문제를 디버깅하려는 경우에 유용 할 수 있습니다. 편의를 위해 yum-debug-dump는 파일 이름을 yum_debug_dump-
# yum-debug-dump

압축 된 텍스트 파일과 마찬가지로 zless 명령을 사용하여 내용을 볼 수 있습니다.
# zless yum_debug_dump-mail.linuxnewz.com-2015-11-27_08:34:01.txt.gz

yum-debug-dump에서 제공 한 구성 정보를 복원해야하는 경우 yum-debug-restore를 사용하여 수행 할 수 있습니다.
# yum-debug-restore yum_debug_dump-mail.linuxnewz.com-2015-11-27_08:34:01.txt.gz

yumdownloader는 종속성을 포함하여 저장소에서 소스 RPM 파일을 다운로드합니다. 인터넷 액세스가 제한된 다른 컴퓨터에서 액세스 할 네트워크 저장소를 만드는 데 유용합니다.
Yumdownloader를 사용하면 바이너리 RPM뿐만 아니라 소스 RPM도 다운로드 할 수 있습니다 (-source
옵션과 함께 사용하는 경우).
예를 들어, rpm을 사용하여 프로그램을 설치하는 데 필요한 RPM을 저장할 htop-files라는 디렉토리를 생성 해 보겠습니다. 이렇게하려면 yumdownloader와 함께 -resolve
스위치를 사용해야합니다.
# mkdir htop-files # cd htop-files # yumdownloader --resolve htop # rpm -Uvh

reposync는 yumdownloader와 밀접한 관련이 있지만 (실제로 거의 동일한 옵션을 지원함) 상당한 이점을 제공합니다. 바이너리 또는 소스 RPM 파일을 다운로드하는 대신 원격 저장소를 로컬 디렉토리에 동기화합니다.
잘 알려진 EPEL 저장소를 현재 작업 디렉토리 내의 epel-local이라는 하위 디렉토리에 동기화 해 보겠습니다.
# man reposync # mkdir epel-local # reposync --repoid=epel --download_path=epel-local

이 프로세스는 8867 패키지를 다운로드하기 때문에 시간이 많이 걸립니다.

동기화가 완료되면 du 명령을 사용하여 새로 생성 된 EPEL 저장소 미러에서 사용하는 디스크 공간의 양을 확인합니다.
# du -sch epel-local/*

이제이 EPEL 미러를 유지하거나 원격 패키지를 사용하는 대신 패키지를 설치하는 데 사용할지는 사용자에게 달려 있습니다. 첫 번째 경우에는 /etc/yum.repos.d/epel.repo를 적절히 수정해야합니다.
yum-complete-transaction은 시스템에서 완료되지 않았거나 중단 된 yum 트랜잭션을 포착하고이를 완료하는 yum-utils 프로그램의 일부입니다.
예를 들어 yum 패키지 관리자를 통해 Linux 서버를 업데이트하면 다음과 같은 경고 메시지가 표시되는 경우가 있습니다.
완료되지 않은 거래가 남아 있습니다. "이를 완료하기 위해 먼저 yum-complete-transaction을 실행하는 것을 고려할 수 있습니다.
이러한 경고 메시지를 수정하고 이러한 문제를 해결하기 위해 yum-complete-transaction 명령은 완료되지 않은 트랜잭션을 완료하기 위해 그림에 나타나며, /에서 찾을 수있는 transaction-all * 및 transaction-done * 파일에서 불완전하거나 중단 된 yum 트랜잭션을 찾습니다. "var/lib/yum 디렉토리.
yum-complete-transaction 명령을 실행하여 불완전한 yum 트랜잭션을 완료합니다.
# yum-complete-transaction --cleanup-only
이제 yum 명령은 불완전한 트랜잭션 경고없이 실행됩니다.
# yum update
참고 :이 팁은 여기 댓글 섹션에서 일반 독자 인 Mr. Tomas가 제안합니다.
요약
이 기사에서는 yum-utils를 통해 제공되는 가장 유용한 유틸리티 중 일부를 다루었습니다. 전체 목록은 man 페이지 ( man yum-utils
)를 참조하십시오.
또한 이러한 각 도구에는 별도의 man 페이지 (예 : man reposync 참조)가 있으며, 이는 해당 도구에 대해 자세히 알아 보려면 참조해야하는 문서의 주요 소스입니다.
잠시 시간을내어 yum-utils의 man 페이지를 확인하면 별도의 기사에서 더 자세히 다루고 싶은 다른 도구를 찾을 수 있습니다. 그렇다면이 기사에 대한 질문, 의견 또는 제안 사항이있는 경우 아래의 의견 양식을 사용하여 메모를 남겨 주시기 바랍니다.