Как собрать пакеты со всеми зависимостями?
В комментариях у меня прозвучал вопрос - а как собрать пакеты, с зависимостями, да так, чтоб не пересобирались бы уже готовые пакеты. (FreeBSD: Создание пакета из порта)
Итак - это потребовало 15 минут времени и вот такого скрипта:
Сохраните этот файл, как pkg_create_recurse - потому что скрипт рекурсивно вызывает сам себя :)
#!/bin/sh
trap “if [ -r .building.name ]; then cat .building.name | sed ’s/.*/&.tgz &.tbz &.tar.gz/’ | xargs rm -f; fi; exit” int
PKGS=$*
for PKG in $PKGS; do
FULLNAME=`pkg_info -xE “^$PKG” | head -n 1`
if [ -r $FULLNAME.tgz -o -r $FULLNAME.tbz -o -r $FULLNAME.tar.gz ]; then
echo “skipping $FULLNAME for $PKG”
else
echo -n $FULLNAME > .building.name
echo “building $FULLNAME for $PKG”
pkg_create -b $FULLNAME
rm .building.name
fi
# rebuild any dependency, even if package exists
DEPEND=`pkg_info -r $FULLNAME | grep ‘Dependency:’ | cut -d’ ‘ -f2`
[ -z "$DEPEND" ] || echo “building dependency ” $DEPEND
[ -z "$DEPEND" ] || ./pkg_create_recurse $DEPEND
done
# vim: ts=4
Приглашаются авторы на Unixmastera.ru. Покажи на что ты способен - напиши совет сам :)
Понравилось? Подпишись на RSS!
Хочешь написать статью? Мы ищем авторов (и не только за красивые глаза, но и за дохлых президентов).

1 Responses to “FreeBSD: сборка пакетов из портов с зависимостями”
Leave a Reply