Форумы
Kalina LUG :: Форумы :: Основной :: General
 
<< Предыдущая тема | Следующая тема >>
Поиск пакета по имени файла
Модераторы: kalina, sanitar, NaTty, COMRADE_ARTYOM, variable, Solaris, az, Andreyf1
Автор Добавил
az
Пнд Янв 18 2010, 16:22

ID пользователя #30
Зарегистрирован: Сбт Мар 01 2008, 13:42

Сообщений: 273
Господа, чтоб долго не гуглить, поделитесь знанием по вашим дистрибутивам.

Нужен сайт/файл/etc для выяснения вопроса: Какому пакету принадлежит некоторый файл.
Естественно, даже вообще не имея установленной систему.

Что-то вроде debian-овского:
http://packages.debian.org
http://packages.debian.org/sid/i386/lilo/filelist
/sbin/lilo

А для вашего дистрибутива?

[ Редактирование Пнд Янв 18 2010, 16:46 ]
Наверх
LuckyStr
Пнд Янв 18 2010, 21:30
ID пользователя #82
Зарегистрирован: Втр Янв 27 2009, 17:08

Сообщений: 161
может поможет кому. вот такой скрипт написал для своей федоры т.к. в yum есть такая штука как provides - показывает какому пакету принадлежит этот файл.
скрипт на руби.
#!/usr/bin/ruby

require 'pathname'

if ARGV.size!=2
    puts "<path dir> <outfile>"
    exit
end

path_dir=ARGV[0]
$outfile=ARGV[1]

def fdir path

    Dir.foreach(path) do |x| 
        if x!='.' and x!='..'
            full_name=path+'/'+x
            #full_name=full_name.reverse.chop.reverse
            p_n=Pathname.new(full_name)
            str="yum provides #{full_name} >> #{$outfile}".gsub("//","/") # В федоре команда yum provides, в другом дистре другая 
            if p_n.directory? then fdir full_name else 
                puts str
                system  str 
            end        
        else 
            sleep(0.1) 
            if x=='.' then puts path end
        end
        
        
    end
end

fdir path_dir


свой пакеты выложу когда доделаеться

[ Редактирование Пнд Янв 18 2010, 22:55 ]
Наверх
az
Пнд Янв 18 2010, 22:18

ID пользователя #30
Зарегистрирован: Сбт Мар 01 2008, 13:42

Сообщений: 273
Отвечаю сам себе. Мне подсказали как минимум ещё:

Arch Linux:
[-link-]
[-link-]
[-link-]

Gentoo Linuх:
[-link-]
Наверх
sanitar
Втр Янв 19 2010, 10:23

ID пользователя #6
Зарегистрирован: Срд Фев 06 2008, 15:27

Сообщений: 156
LuckyStr написал(а) ...

может поможет кому. вот такой скрипт написал для своей федоры т.к. в yum есть такая штука как provides - показывает какому пакету принадлежит этот файл.
скрипт на руби.

Можно подойти с другой стороны...
Получить список файлов из rpm-ки можно командой rpm -qlp *.rpm.
Облагороженный вариант этой команды может выглядеть как
firpm () {
        for f in *.rpm
        do
                echo $f
                rpm --nosignature -qlp $f
                echo -n '\n'
        done
}

Запускается в директории с rpm-ками вот так:
firpm > ~/rpm.list
На выходе получается файлик, содержащий названия пакетов и список файлов, входящих в эти пакеты.

Например, для Fedora Core 6 такой файлик весит 24Мб, а для Extras 6 -- 28Мб.
Наверх
LuckyStr
Втр Янв 26 2010, 17:51
ID пользователя #82
Зарегистрирован: Втр Янв 27 2009, 17:08

Сообщений: 161
вот для fedora 11 [-link-] весит 2M, после распаковки 49,5M
Наверх
o.osovitskiy
Срд Янв 27 2010, 12:23
ID пользователя #168
Зарегистрирован: Чтв Янв 14 2010, 11:50

Сообщений: 8
Для слакваре:

Ищем в каком пакете находится к примеру файл 'xauth'

bash-4.0$ which xauth
/usr/bin/xauth
bash-4.0$ fgrep usr/bin/xauth /var/log/packages/*
/var/log/packages/scripts-1.0.1-noarch-2:usr/bin/xauth_switch_to_sun-des-1
/var/log/packages/xauth-1.0.3-i486-2:usr/bin/xauth


Обратите внимание, что программе 'fgrep' надо давать имя файла без начального '/' !
Наверх
overmind88
Срд Янв 27 2010, 19:16
ID пользователя #25
Зарегистрирован: Чтв Фев 28 2008, 23:58

Сообщений: 221
o.osovitskiy это же только среди установленных пакетов?
Наверх
o.osovitskiy
Чтв Янв 28 2010, 09:28
ID пользователя #168
Зарегистрирован: Чтв Янв 14 2010, 11:50

Сообщений: 8
Сорри, не углядел про неустановленную систему.
Тогда для слаки все равно вариантов много:
1. скачать с любого миррора файлы slackware-current/{slackware,extra,testing,pasture}/MANIFEST.bz2
и посмотреть
2. Пойти на [-link-] и выбрать Distribution Search -> Slackware
3. Поставить slackpkg, сделать 'slackpkg update' а потом 'slackpkg search xauth' но это не всегда удобно, очень много инфы
4. То же самое что и пункт 3, но с программой slapt-get, она полностью аналогична дебиановскому apt

Ну и если задаться целью то можно еще что-нибудь придумать
Наверх
 

Перейти:     Наверх

Транслировать сообщения этой темы: rss 0.92 Транслировать сообщения этой темы: rss 2.0 Транслировать сообщения этой темы: RDF
Powered by e107 Forum System