yum (여러 리포지토리가 구성된 상태)으로 패키지를 설치 한 후 설치된 리포지토리에서 어떻게 찾을 수 있습니까?
yum info package-name
(또는 yum list package-name
)을 실행 하면 패키지가 "설치된"것만 볼 수 있습니다.
rpm -qa|grep NAME
다음을 수행 할 수 있습니다 할 yum list installed|grep NAME
RPM을가에서 무엇 REPO 찾을 .
yum (여러 리포지토리가 구성된 상태)으로 패키지를 설치 한 후 설치된 리포지토리에서 어떻게 찾을 수 있습니까?
yum info package-name
(또는 yum list package-name
)을 실행 하면 패키지가 "설치된"것만 볼 수 있습니다.
rpm -qa|grep NAME
다음을 수행 할 수 있습니다 할 yum list installed|grep NAME
RPM을가에서 무엇 REPO 찾을 .
답변:
yum-utils가 설치되어 있으면 repoquery는 원하는 정보를 제공합니다 (여기서 'epel'은 저장 소임).
└─[$]> repoquery -i cherokee
Name : cherokee
Version : 0.99.49
Release : 1.el5
Architecture: i386
Size : 8495964
Packager : Fedora Project
Group : Applications/Internet
URL : http://www.cherokee-project.com/
Repository : epel
Summary : Flexible and Fast Webserver
Description :
Cherokee is a very fast, flexible and easy to configure Web Server. It supports
the widespread technologies nowadays: FastCGI, SCGI, PHP, CGI, TLS and SSL
encrypted connections, Virtual hosts, Authentication, on the fly encoding,
Apache compatible log files, and much more.
yum info package_name
yum과 동일한 순서로 리포지토리를 쿼리하지 않는 것 같습니다.
yum info package_name
분명히 repoquery보다 많은 결과를 반환합니다. 이것이 스택 교환이 투표에서 잠기지 않아야하는 이유입니다.
repoquery -i $pkg
를 설치 한 저장소 $pkg
가 아니라 사용 가능한 저장소를 제공합니다 $pkg
. 나는 그 명령을 rpm -qi $pkg
했고 다른 버전 번호를 얻었다. rpm
의 버전 번호보다 이전 버전 번호가 발생했습니다 repoquery
.
--use-mirror
있습니다. 나는 항상 정답을 얻는 것이 가능하다고 생각하지 않습니다 .
어떤 버전의 m?
설치된 패키지가 사용 가능한 최신 패키지와 동일한 버전 인 경우 현재 버전에서 설치된 리포지토리가 표시됩니다.
$ yum info irssi
Installed Packages
Name : irssi
Arch : i586
Version : 0.8.14
Release : 1.fc11
Size : 2.3 M
Repo : installed
From repo : updates
Summary : Modular text mode IRC client with Perl scripting
URL : http://irssi.org/
License : GPLv2+
Description: Irssi is a modular IRC client with Perl scripting. Only text-mode
: frontend is currently supported. The GTK/GNOME frontend is no
: longer being maintained.
$ yum --version
3.2.23
사용 가능한 최신 패키지가있는 경우 새 패키지가 사용 가능한 리포지토리와 함께 별도로 표시됩니다.
다른 모든 방법이 실패하면 yumdb를 수동으로 검사 할 수 있습니다. 이 /var/lib/yum/yumdb
패키지는 설치된 모든 패키지에 대한 자세한 정보를 제공합니다. 에 관심이있을 것입니다 from_repo
. 예를 들어, bind-utils
패키지의 경우 :
# for i in /var/lib/yum/yumdb/b/*bind-utils*/*; do echo $i: `cat $i`; done
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/checksum_data: 39f7840f93d3d76825a9e8da79cfe0366f7fad68f018a273477aee62cccfa3f4
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/checksum_type: sha256
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/command_line: install bind-utils
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/from_repo: updates
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/from_repo_revision: 1397654451
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/from_repo_timestamp: 1397654759
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/installed_by: 0
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/reason: user
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/releasever: 6
원하는 정보 만 얻으려면 :
# cat /var/lib/yum/yumdb/b/*bind-utils*/from_repo
updates
최신 버전은 더 많은 데이터를 제공합니다. 예를 들어 EL 7에서는 패키지를 다운로드 한 정확한 미러 및 URL이 여기에 저장됩니다.
for i in /var/lib/yum/yumdb/b/*bind-utils*/*; do echo $i: `cat $i` | grep -oP 'from_repo:\ \K.*'; done
위의 예제에서 다음과 같이 반환하는 것이 더 좋습니다 : updates
-훨씬 더 읽기 쉽습니다!
grep
여기 에 아무것도 필요하지 않으며 루프를 삭제할 수도 있습니다. 아주 간단한 것만 cat /var/lib/yum/yumdb/b/*bind-utils*/from_repo
으로 충분합니다.
저장소에서 설치된 항목을 보려면 : (Centos 5.5에서 작동해야 함) 참고로, epel이라는 저장소가 없으면 설치된 모든 항목을 뱉어냅니다.
repoquery --repoid = epel -a | xargs yum 목록 설치
패키지가 최근에 설치 되었다면 / var / cache / yum에서 찾을 수 있습니다.
해당 디렉토리에는 각 리포지토리의 디렉토리와 그 패키지 디렉토리가 있습니다. 따라서 다음과 같은 작업을 수행합니다.
find /var/cache/yum -name [package-name]*
그러나 /etc/yum.conf 파일에서 캐시를 활성화해야합니다.
cachedir=/var/cache/yum
keepcache=1
A가 있습니다 yum clean [packages|all]
캐시 디렉토리를 지 웁니다.
캐시 디렉토리가 비어 있으면 다른 방법이 있습니다. 읽은 정보는 yum info [package]
/var/cache/yum/[repo]/primary.xml.gz에서 가져옵니다.
다음을 입력하여 파일을 살펴볼 수 있습니다.
gunzip -d -c /var/cache/yum/[repo]/primary.xml.gz | grep '<name>[package]'
그러나 yum info [package]
'theotherreceive'로 표시된대로 "From repo :"가 표시되지 않는 시스템에서는 primary.xml 파일에 없기 때문에 해당 정보를 검색 할 방법이 없습니다. 따라서 패키지가 둘 이상의 primary.xml 파일에 있으면 시스템의 저장소 우선 순위를 결정해야합니다.
훌륭한 해결책은 아니지만 사용 가능한 yum 목록에 각 패키지의 최신 버전이 제공되는 위치가 표시됩니다.
m 목록 사용 가능 | grep gstreamer
PackageKit-gstreamer-plugin.x86_64 0.3.16-1.fc10 updates
bluez-gstreamer.i386 4.30-2.fc10 업데이트
gstreamer.i386 0.10.21-2.fc10 fedora
gstreamer-devel.i386 0.10.21-2.fc10 fedora
gstreamer-devel.x86_64 0.10.21-2.fc10 fedora
gstreamer- plugins-bad-devel.i386 0.10.9-1.fc10 rpmfusion-free
gstreamer-plugins-bad-devel.x86_64 0.10.9-1.fc10 rpmfusion-free 무료 플러그인
따라서 패키지에서 사용 가능한 yum 목록을 수행 한 다음 설치된 yum list를 사용하여 설치된 버전을 비교하고 버전이 일치하는 경우 어떤 리포지토리를 사용했는지 잘 알 수 있습니다.
verbose 플래그를 "yum info"에 추가 할 수 있습니다 :
yum info -v <package_name>
설치 저장소는 "Repo에서"출력 아래에 있습니다.
위의 명령 중 어느 것도 나를 위해 일하지 않았습니다. 이것이 내가해야 할 일입니다.
yum provides "*compat-libstdc*"
좋은 참조가 여기 있습니다.
https://access.redhat.com/sites/default/files/attachments/rh_yum_cheatsheet_1214_jcs_print-1.pdf
가장 쉬운 방법은 다음과 같습니다.
rpm -qa --qf '%{NAME} %{VENDOR}\n'
더 많은 팁과 요령이 여기에 있습니다 : http://wiki.centos.org/TipsAndTricks/YumAndRPM