FreeBSD: сборка пакетов из портов с зависимостями

Как собрать пакеты со всеми зависимостями?

В комментариях у меня прозвучал вопрос - а как собрать пакеты, с зависимостями, да так, чтоб не пересобирались бы уже готовые пакеты. (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: сборка пакетов из портов с зависимостями”


  1. No Comments

Leave a Reply