Fedora (Linux)에 설치된 패키지를 어떻게 추적합니까?


11

(이 질문은 6338 과 매우 유사합니다 . Fedora와 Ubuntu / Debian이 다른 답변을 보증 할만큼 충분히 다르기 때문에이 질문과 분리 된 것이 좋습니다.)

Fedora 설정을 사용함에 따라 기본 설치 이상으로 여러 패키지를 점차 설치합니다. 다시 설치하거나 새 컴퓨터를 설치해야하는 경우 일반적으로 해당 특정 패키지 를 다시 설치 하고 싶습니다. 최소한의 번거 로움을 느끼기 위해 빠르게 작업하고 싶습니다. 내가 본 한 모든 패키지 관리자 ( yumpirut)는 어떤 패키지가 설치되어 있는지 알려주고 모든 패키지에는 로그가 있습니다 (각 도구마다 다른 패키지이지만 번거 롭습니다). 그러나 그들 중 누구도 패키지를 말해 줄 수 없다 내가했습니다종속성 또는 시스템 업데이트와 반대로 설치됩니다. 로그에서 추출해야 할 내용 또는 통합 방법 (다양한 적절한 제품군 도구의 경우)을 확실하지 않다는 점에서 로그조차 까다 롭습니다. 다시 설치하거나 백업 할 때마다 해당 목록을 다시 만드는 방법을 잘 모르겠다는 의미입니다.

필자가이 작업을 수행하기위한 도구를 반드시 기대할 필요는 없지만, 그렇지 않은 경우 해결 방법을 찾고 있습니다. 잡을 패턴, 좋은 경험 법칙, 또는 정확히 기록되고있는 것에 대한 명확한 아이디어조차도 유용 할 것입니다. 여기에 "최고의 답변"이 없을 수도 있지만 좋은 답변이 도움이 될 것입니다.

답변:


3

yum list installed그리고 yum.log설치되어 있는지 보여줄 것이다, 그러나 나는 의존성으로 설치 한 자들을 선택한 패키지의 시스템 차별화에 아무것도 설치 생각하지 않는다


2

/root/install.log원래 설치 의 파일 이 여전히 있다고 가정하면 rpm.origrpm.curr 파일을 다음 과 같이 작성할 수 있습니다 .

cd /root
rpm -qa --qf '%{NAME}\n' | sort -u > rpm.curr
awk '($1=="Installing"){print $2}' install.log | sort -u > rpm.orig

그런 다음 패키지가 추가되었는지 확인하십시오.

comm -13 rpm.orig rpm.curr

그리고 그것들이 제거되었습니다.

comm -23 rpm.orig rpm.curr

당신이있는 경우주의 x86_64에의 설치, 그것은 32 비트 및 64 비트 패키지 사이의 차이를 구별하지 않습니다.


2

사용해보십시오 sudo yum history packages-list \*

명시 적으로 설치된 것과 종속성으로 설치된 것을 보여줍니다.

ID | Action(s)      | Package                                              
-------------------------------------------------------------------------------
47 | Dep-Install    | cairomm-1.8.0-2.1.el6.x86_64                         
47 | Dep-Install    | glibmm24-2.22.1-1.el6.x86_64                         
47 | Install        | gnome-system-monitor-2.28.0-11.el6.x86_64

0

이것은 쉬운 일입니다.

선호하는 쉘에서 아래 명령을 실행하십시오. 이것에 대해 더 깊이 익힐 필요가 있다면 RPM에 대한 맨 페이지는 고통 스럽습니다.

rpm -qa


3
여기에는 모든 패키지가 나열되어 있지만 추가 한 패키지와 이미 시스템에있는 패키지는 구분하지 않습니다. 명시 적으로 설치 한 패키지를 구체적으로 추적하고 싶습니다.
quark

모든 패키지는 귀하가 명시 적으로 설치했습니다. 의미있는 도움을 받으려면 무엇을하고 싶은지에 대해 더 구체적이어야합니다.
vonbrand

0

/root/install.log 파일은 초기 설치에 포함 된 패키지를 알려줍니다. 다음은이 파일의 내용과 출력을 비교하는 빠른 스크립트입니다 rpm -qa.

rpm -qa | sort > /root/postinstall.list
for P in `sed -n 's/Installing \(.*\)/\1/p' </root/install.log`
do
  sed -ie "/$P/d" /root/postinstall.list
done

/root/postinstall.list 파일에는 원하는 내용이 포함되어 있습니다. 원래 설치된 패키지의 업그레이드 버전 인 패키지가 파일에 나타납니다. 이것이 원하는 것이 아니라면 sed 문에서보다 정교한 패턴이 필요합니다.


0

rpm -qa --last

매뉴얼 페이지에서 :

--last Orders the package listing by install time such that the latest packages are at the top.

샘플 출력 :

mdadm-3.2.2-9.el6                             Mon 12 Dec 2011 10:06:17 AM EST
libdrm-2.4.25-2.el6                           Mon 12 Dec 2011 09:54:51 AM EST
tcp_wrappers-libs-7.6-57.el6                  Mon 12 Dec 2011 09:54:50 AM EST

0

항상 "yum"을 사용하여 할 수있는 모든 것을 설치한다고 가정합니다.

sudo yum history info \* | grep "^Command Line   : install"

설치 후 시스템에서 수행 된 모든 "yum install"명령이 표시됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.