Website-Suche

So finden Sie Abhängigkeiten für ein bestimmtes Paket in CentOS


In diesem Tutorial wird erklärt, wie Sie herausfinden, welches Paket eine bestimmte Abhängigkeit in CentOS, RHEL, Fedora und wissenschaftlichem Linux erfordert. Sie fragen sich vielleicht, warum wir die Abhängigkeiten finden müssen. Es kann viele Gründe geben. Wenn Sie ein RPM-Paketbetreuer sind, müssen Sie die erforderlichen Abhängigkeiten für ein bestimmtes Paket kennen. Außerdem können wir ein bestimmtes Paket weglassen, während wir eine Vielzahl von X-Paketen installieren. Sagen wir zum Beispiel neulich, ich habe versucht, root zu installieren, eine Sammlung von Paketen, die von EPEL bereitgestellt werden. Das gesamte Root-System ist leider in eine Vielzahl von 40 Paketen aufgeteilt. Um sie zu installieren, habe ich einfach Folgendes ausgeführt:

yum install root-*

Das Problem besteht jedoch darin, dass bei keinem der 40 Pakete ein bestimmtes Paket texlive als Abhängigkeit erfordert und etwa 3 GB Speicherplatz verbraucht. Ich möchte also nur herausfinden, welche Pakete textalive als Abhängigkeit benötigen, sodass ich sie einfach weglassen kann, um Speicherplatz zu sparen. Jetzt haben Sie die Antwort erhalten, warum wir die Abhängigkeiten für ein bestimmtes Paket herausfinden müssen. Lassen Sie uns anhand einiger einfacher Beispiele sehen, wie das geht.

Suchen Sie nach Abhängigkeiten für ein bestimmtes Paket in RHEL, CentOS, Fedora

Um Abhängigkeiten für ein beliebiges Paket zu finden, können Sie den folgenden Befehl verwenden.

yum deplist <package name>

Um beispielsweise die Abhängigkeiten für sqlite zu finden, führen Sie Folgendes aus:

yum deplist sqlite

Beispielausgabe:

Loaded plugins: fastestmirror
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
Loading mirror speeds from cached hostfile
 * base: centos.excellmedia.net
 * epel: ftp.riken.jp
 * extras: centos.excellmedia.net
 * updates: centos.excellmedia.net
package: sqlite.i686 3.7.17-8.el7
 dependency: /sbin/ldconfig
 provider: glibc.x86_64 2.17-106.el7_2.6
 provider: glibc.i686 2.17-106.el7_2.6
 dependency: libc.so.6(GLIBC_2.4)
 provider: glibc.i686 2.17-106.el7_2.6
 dependency: libdl.so.2
 provider: glibc.i686 2.17-106.el7_2.6
 dependency: libdl.so.2(GLIBC_2.0)
 provider: glibc.i686 2.17-106.el7_2.6
 dependency: libdl.so.2(GLIBC_2.1)
 provider: glibc.i686 2.17-106.el7_2.6
 dependency: libncurses.so.5
 provider: ncurses-libs.i686 5.9-13.20130511.el7
 dependency: libpthread.so.0
 provider: glibc.i686 2.17-106.el7_2.6
 dependency: libpthread.so.0(GLIBC_2.0)
 provider: glibc.i686 2.17-106.el7_2.6
 dependency: libpthread.so.0(GLIBC_2.1)
 provider: glibc.i686 2.17-106.el7_2.6
 dependency: libpthread.so.0(GLIBC_2.2)
 provider: glibc.i686 2.17-106.el7_2.6
 dependency: libreadline.so.6
 provider: readline.i686 6.2-9.el7
 dependency: libtinfo.so.5
 provider: ncurses-libs.i686 5.9-13.20130511.el7
 dependency: rtld(GNU_HASH)
 provider: glibc.x86_64 2.17-106.el7_2.6
 provider: glibc.i686 2.17-106.el7_2.6
package: sqlite.x86_64 3.7.17-8.el7
 dependency: /sbin/ldconfig
 provider: glibc.x86_64 2.17-106.el7_2.6
 provider: glibc.i686 2.17-106.el7_2.6
 dependency: libc.so.6(GLIBC_2.14)(64bit)
 provider: glibc.x86_64 2.17-106.el7_2.6
 dependency: libdl.so.2()(64bit)
 provider: glibc.x86_64 2.17-106.el7_2.6
 dependency: libdl.so.2(GLIBC_2.2.5)(64bit)
 provider: glibc.x86_64 2.17-106.el7_2.6
 dependency: libncurses.so.5()(64bit)
 provider: ncurses-libs.x86_64 5.9-13.20130511.el7
 dependency: libpthread.so.0()(64bit)
 provider: glibc.x86_64 2.17-106.el7_2.6
 dependency: libpthread.so.0(GLIBC_2.2.5)(64bit)
 provider: glibc.x86_64 2.17-106.el7_2.6
 dependency: libreadline.so.6()(64bit)
 provider: readline.x86_64 6.2-9.el7
 dependency: libtinfo.so.5()(64bit)
 provider: ncurses-libs.x86_64 5.9-13.20130511.el7
 dependency: rtld(GNU_HASH)
 provider: glibc.x86_64 2.17-106.el7_2.6
 provider: glibc.i686 2.17-106.el7_2.6

Wie Sie in der obigen Ausgabe sehen können, erfordert SQLlite viele Abhängigkeiten wie Glibc, Libreadline, Ncurses usw.

Falls der obige Befehl zufällig nicht funktioniert, können Sie den Befehl repoquery verwenden:

Um diesen Befehl verwenden zu können, müssen Sie das Paket yum-utils installieren.

Führen Sie den folgenden Befehl aus, um es zu installieren.

sudo yum install yum-utils

Oder,

sudo dnf install yum-utils

Listen Sie dann die Abhängigkeiten für ein Paket auf, wie unten gezeigt.

repoquery --requires --resolve <package>

Beispiel:

repoquery --requires --resolve sqlite

Beispielausgabe:

glibc-0:2.17-157.el7.i686
readline-0:6.2-9.el7.i686
ncurses-libs-0:5.9-13.20130511.el7.i686
glibc-0:2.17-157.el7_3.1.x86_64

Dieser Befehl funktioniert unabhängig davon, ob das Paket auf Ihrem System installiert ist oder nicht.

Wenn Sie wissen möchten, woher ein bestimmtes Paket kommt, führen Sie einfach Folgendes aus:

yum provides sqlite

Beispielausgabe:

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: centos.excellmedia.net
 * epel: kodeterbuka.beritagar.id
 * extras: centos.excellmedia.net
 * updates: centos.excellmedia.net
sqlite-3.7.17-8.el7.i686 : Library that implements an embeddable SQL database
 : engine
Repo : base

sqlite-3.7.17-8.el7.x86_64 : Library that implements an embeddable SQL database
 : engine
Repo : base

sqlite-3.7.17-8.el7.x86_64 : Library that implements an embeddable SQL database
 : engine
Repo : @base

Wie Sie oben sehen, stammt das SQLite-Paket aus dem Basis-Repository.

Hoffe das hilft.

Verwandte Artikel