Совсем недавно мне удалось найти волшебную строку для решения проблем со сборкой мира:
% emerge -1av $(equery depends| sed 's/-[0-9]\{1,\}.*$//')
Но при всём волшебстве данного решения у него есть минус — оно пересобирает все зависимосити от данного пакета, даже если они они уже были собраны и не требуют обновления. Что иногда ОЧЕНЬ РАЗДРАЖАЕТ. Например , когда нужно пересобрать хромиум и либреофис пару лишних раз.
Но есть элегантное решение!
#!/bin/bash PACKAGE="$1" if [ "$PACKAGE" == "" ]; then echo 'Pass package name as param' exit fi emerge -1av $(emerge -pv --color n $(equery depends $1 | sed 's/-[0-9]\{1,\}.*$//') | grep --color=none '\[ebuild' | awk '!/\[ebuild.*?R.*?\]/' | sed 's/\[[^/]*\]//g' | sed 's/-[0-9]\{1,\}.*$//')
Я не могу только понять почему чего-то подобного (и нормально сделанного) нет в базовой поставке — это же самое важное из того что нужно при обновлении этого проклятого мира.
(И давайте обойдёмся без оскорблений в комментариях в этот раз — я сам всё прекрасно про себя понимаю)
2021.02.16 12:55