Portál AbcLinuxu, 7. května 2025 05:27
Hodí se, pokud potřebujete soubor XY, ale nevíte, který balík nainstalovat. Příklad:
$ yum-file bin/gnome-help yelp-2.10.0-1 $ yum-file freetype2.pc freetype-devel-2.1.9-2 $ yum-file /usr/bin/perlcc perl-5.8.6-15
Update: To samé umí i yum whatprovides
, takže ani dál nečtěte.
$ cat ~/bin/yum-file #!/bin/bash if test "x$1" = "x-v"; then shift verbose="echo" else verbose=":" fi if test "$#" != 1; then echo "Usage: $0 [-v] FILENAME" >&2 exit 1 fi dir="`dirname "$1"`" file="`basename "$1"`" case "$dir" in .) dir_query="";; /*) dir_query="dirname=\"$dir\" AND ";; *) dir_query="dirname LIKE \"%$dir\" AND";; esac for db in /var/cache/yum/*/filelists.xml.gz.sqlite; do $verbose "Searching in $db" primary="${db/filelists/primary}" sqlite3 -separator - "$db" " ATTACH \"$primary\" AS \"primary\"; SELECT name, version, release FROM \"primary\".packages WHERE pkgKey IN (SELECT pkgKey FROM filelist WHERE $dir_query filenames LIKE \"%$file%\");" done
PS: Vím, že to neošetřuje speciální znaky ve vstupu.
PPS: Nevíte, jak yum donutit, aby vygeneroval ty filelisty? Asi to dělá, jenom když je potřebuje.
Tiskni
Sdílej:
man yum
provides or whatprovides
Is used to find out which package provides some feature or file.
Just use a specific name or a file-glob-syntax wildcards to list
the packages available or installed that provide that feature or
file.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.