23 Eylül 2013 Pazartesi

Dosyanın Hangi RPM Paketinde Yer Aldığını Bulmak

Sisteminizde kurulu bir pakete ait bir dosyanın tam path'ini biliyorsanız bu dosyanın hangi pakete ait olduğunu aşağıdaki komutla bulabilirsiniz.

rpm -qf [dosya_adı]

Örneğin:
rpm -qf /usr/bin/xmllint

Paket, sisteminizde kurulu değilse adını bildiğiniz dosyanın hangi pakette yer aldığını aşağıdaki betik ile bulabilirsiniz.
Bu betik, repoquery komutundan faydalanır ve yum repository'lerinde arama yapar.

#!/bin/bash

if [ $# -ne 1 ]
then
echo -e "Usage: $0 [file_name]"
exit 1
fi

FILE_NAME=$1
ALL_PACKAGES=$(repoquery -a)

for PACKAGE in $ALL_PACKAGES
do

#echo package = $PACKAGE
FILES=$(repoquery --list $PACKAGE)
for file in $FILES
do
if [[ "$file" =~ "$FILE_NAME" ]]
then
echo Package $PACKAGE contains the file $FILE_NAME
break
fi
done

done 

Hiç yorum yok:

Yorum Gönder