Как составить список пакетов RPM, зависящих от конкретной библиотеки?

Второй и третий

editor ()

должны быть просто

editor

. Скобки нужны только для определения функции.

Синтаксический анализатор bash жалуется на отсутствие ';' после () , но это только часть проблемы.

4
28.02.2017, 15:37
2 ответа

Вы можете использовать dnf repoquery , чтобы найти это. Например:

dnf repoquery --whatrequires libLLVM-3.8.so

однако в системе x86_64 это может сделать не совсем то, что вам нужно; чтобы указать версию библиотеки x86_64 (которая, вероятно, является тем, что вы хотите), используйте () (64bit) , например:

dnf repoquery --whatrequires 'libLLVM-3.8.so()(64bit)' 

' теперь необходимо, чтобы скобки не сбивали с толку bash.)

По умолчанию здесь перечислены как доступные, так и установленные пакеты; чтобы ограничиться теми, которые в настоящее время установлены, добавьте флаг - установлен , например:

dnf repoquery --whatrequires 'libLLVM-3.8.so()(64bit)'  --installed

который в моей системе возвращает:

llvm-libs-0:3.8.0-1.fc25.x86_64
mesa-dri-drivers-0:13.0.2-2.fc25.x86_64
mesa-libxatracker-0:13.0.2-2.fc25.x86_64

Если вам нужны только имена пакетов, добавьте --queryformat '% {name} \ n' . (Используйте dnf repoquery --querytags , чтобы получить другие параметры форматирования.)

5
27.01.2020, 20:53
$ locate libLLVM-3.8.so
/usr/lib/libLLVM-3.8.so
/usr/lib64/libLLVM-3.8.so
$ rpm -qf /usr/lib64/libLLVM-3.8.so
llvm-libs-3.8.0-1.fc25.x86_64
$ sudo rpm -e --test llvm-libs-3.8.0-1.fc25.x86_64
error: Failed dependencies:
        libLLVM-3.8.so()(64bit) is needed by (installed) clang-libs-3.8.0-2.fc25.x86_64
        libLLVM-3.8.so()(64bit) is needed by (installed) mesa-dri-drivers-13.0.2-2.fc25.x86_64
        libLLVM-3.8.so()(64bit) is needed by (installed) mesa-libOpenCL-13.0.2-2.fc25.x86_64
        libLLVM-3.8.so()(64bit) is needed by (installed) mesa-libxatracker-13.0.2-2.fc25.x86_64

Аналогично другому файлу. Или любой файл.

0
27.01.2020, 20:53

Теги

Похожие вопросы