Как пересобрать все пакеты, зависящие от данного пакета?
Lupo Alberto 29 мая, 2009 - 11:16
Скорее всего, "изобретаю велосипед", но как проще, а, главное, правильнее пересобрать все пакеты, зависящие от данного пакета. У меня пока ничего "красивее" такого (мне надо пересобрать всё, что зависит от x11-libs/qt-gui) не получилось :(
emerge -1 $(for i in $(equery -q d x11-libs/qt-gui | grep -v Searching); do echo =$i; done)
»
- Для комментирования войдите или зарегистрируйтесь
Что же тогда делает команда
Что же тогда делает команда emerge -e _имя_пакета_ ?
Делай, что должен, и будь, что будет.
В предложенном вами решении,
В предложенном вами решении, пересобираются и зависимости зависимостей. При запуске предложенной мною команды пересобираются только пакеты, непосредственно зависящие от исходного.
Я ♥ Gentoo & Funtoo
Тогда получается, что я не
Тогда получается, что я не совсем точно понял преследуемую Вами ЦЕЛЬ. :)
Делай, что должен, и будь, что будет.
если Вы имеете в виду
если Вы имеете в виду --emptytree, то, по-моему, это другое (т.е. имитация дерева, в котором только glibc), или я отстал?
А зачем? Может просто
А зачем? Может просто запустить revdep-rebuild?
revdep-rebuild ничего не
revdep-rebuild ничего не находит.
Вопрос был другой.
Я ♥ Gentoo & Funtoo
emerge -1 $(equery --quiet d
emerge -1 $(equery --quiet d x11-libs/qt-gui | sed "s/^/=/")
Спасибо. Так, разумеется,
Спасибо. Так, разумеется, красивее, но это тот же "велосипед" только полированный :)
Меня больше интересует, есть ли команда, реализующая данную функцию непосредственно.
Я ♥ Gentoo & Funtoo
Не знаю, чем такой велосипед
Не знаю, чем такой велосипед вам не нравится. Как раз в таких случаях проявляется функционал *nix
В любом случае, это решение
В любом случае, это решение мне нравится больше моего, но... все мы стремимся к совершенству :)
Я ♥ Gentoo & Funtoo
лучше уточнить >= emerge -1
лучше уточнить >=
emerge -1 $(equery --quiet d net-libs/gnutls | sed "s/^/\>=/")
grep не нужен, equery умеет
grep не нужен, equery умеет автоматически определять, что работает через пайп и подавлять вывод ненужных сообщений
Спасибо, это я перестраховщик
Спасибо, это я перестраховщик :)
Я ♥ Gentoo & Funtoo
Ещё один вопрос, из него,
Ещё один вопрос, из него, собственно, и появился данный топик: как в выводе команды equery подавить вывод версий пакетов?
Я ♥ Gentoo & Funtoo
поанализировав
поанализировав revdep-rebuild, который ищет сведения в /var/db/pkg, внутри assign_packages_to_ebuilds, вылавливаем нечто похожее на
# Get the slot
PKG="${EXACT_PKG%%-r[[:digit:]]*}"
PKG="${PKG%-*}"
По идее, qdepends -QN
По идее,
должна выводить только имена пакетов, зависимых от x11-libs/qt-gui, но проверить не могу, вываливается http://dpaste.com/48946/
Я ♥ Gentoo & Funtoo
qdepends -QN
qdepends -QN x11-libs/qt-gui
app-admin/system-tools-backends-2.6.0-r1
dev-perl/XML-Simple-2.18
dev-perl/XML-SAX-0.16
dev-perl/PlRPC-0.2020-r1
dev-perl/Net-DNS-0.63
dev-perl/XML-Stream-1.22
dev-perl/Cairo-1.04.1
dev-perl/IO-Socket-SSL-1.12
dev-perl/XML-SAX-Writer-0.50
dev-perl/perl-ldap-0.34
dev-perl/XML-LibXML-1.66-r1
mail-filter/spamassassin-3.2.1-r1
net-im/sendxmpp-0.0.8
штука важная, по-моемуможно
штука важная, по-моему
можно сделать /usr/local/bin/revdep-emerge (см ниже, не сочтите за плагиат постов темы). Первый параметр - пакет от которого перестраивать, остальные - любой набор параметров emerge. Полировать можно в этой теме.
#!/bin/sh
PN="$1"
shift
emerge "$@" $(equery --quiet d "$PN" | sed "s/^/\>=/")