The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Раздел полезных советов: Скрипт для создания всех пакетов, т..."
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Разговоры, обсуждение новостей (Public)
Изначальное сообщение [Проследить за развитием треда]

"Раздел полезных советов: Скрипт для создания всех пакетов, т..."  
Сообщение от auto_tips (??) on 04-Июн-06, 17:57 
По сути, выполняет действия, аналогичные pkg_create с ключём -R, который появился только в FreeBSD 6.x.
Однако данный скрипт позволяет указывать короткое имя порта и каталог,
в котором создавать пакеты. А главное, он работает и на тех системах,
где pkg_create не поддерживает ключ -R.

#!/bin/sh
#
# pkg_depend
# Create all packages (with dependence) needed by some port for FreeBSD 5.x+
#
# Version: 1.4
# Copyright (c) 2005,2006 Alexey Tsvetnov, vorakl@fbsd.kiev.ua
#

# Path to packages directory
pkgpath="/usr/ports/packages/All"

# Command for get package's version
pkgvercmd="pkg_version -v"
#pkgvercmd="portversion -v"              # more faster than pkg_version

getdepend()
{
    [ ! -d $2 ] && echo -n "Creating directory ($2)..." && mkdir -p $2 && echo "Done."

    cd ${pkgpath}
    if [ ! -f ${pkgpath}/$1.tbz ]; then
        echo -n "Creating package ($1)..."
        pkg_create -yb $1
        echo "Done."
    fi

    echo -n "Copying package ($1)..."
    cp -f ${pkgpath}/$1.tbz $2
    echo "Done."

    for LINE in `pkg_info -r $1 | grep Dependency\: | awk '{print $2}'`
    do
        if [ ! -f ${pkgpath}/${LINE}.tbz ]; then
            echo -n "Creating package (${LINE})..."
            pkg_create -yb ${LINE}
            echo "Done."
        fi
        echo -n "Copying package (${LINE})..."
        cp -f ${pkgpath}/${LINE}.tbz $2
        echo "Done."
    done
}

gethelp()
{
    echo ""
    echo "Usage: `basename $0` <Full/Short pkg_name> <Directory>"
    echo ""
    echo "If specify short package name script will get first find entry"
    echo ""
    echo "Example: `basename $0` dia-gnome-0.94_4,1 /tmp/pkg/"
    echo "         `basename $0` dia-gnome /tmp/pkg/"
    echo ""
    exit 1
}

main()
{
if [ "$2" = "" ]; then gethelp
else
    echo -n "Checking package name ($1)..."
    if [ "`echo $1 | grep '\-[0-9]'`" = "" ]; then
        pkgname=`${pkgvercmd} | grep -E '^'$1'-[0-9].*' | awk '{print $1}' | head -1`
    else
        pkgname=`${pkgvercmd} | grep $1 | awk '{print $1}' | head -1`
    fi
    echo "Done."

    if [ "${pkgname}" = "" ]; then
        echo "Package '$1' not found! Exit."
        exit 2
    else
        getdepend ${pkgname} $2
    fi
fi
}

main $1 $2

exit 0

URL:
Обсуждается: https://www.opennet.ru/tips/info/1030.shtml

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "Скрипт для создания всех пакетов, требуемых по зависимостям,..."  
Сообщение от grayich email(??) on 04-Июн-06, 17:57 
http://wiki.bsdportal.ru/doc:sh_scripts
кое что в дополнение (это скрипт там тоже есть)

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

2. "Скрипт для создания всех пакетов, требуемых по зависимостям,..."  
Сообщение от butcher (ok) on 08-Июн-06, 18:36 
а make package-recursive чем плох?
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

3. "Скрипт для создания всех пакетов, требуемых по зависимостям,..."  
Сообщение от vorakl email(??) on 09-Июн-06, 11:14 
Потому что перед тем, как make начнёт создавать пакет, произведётся сборка порта.

Если после сборки порта ранее было выполнено 'make clean', то для 'make package' придётся снова выполнить 'make install'. Надо либо никогда не делать 'make clean' и держать в ветке портов не нужный work, либо пересобирать ВСЕ порты каждый раз... 8)

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

4. "Скрипт для создания всех пакетов, требуемых по зависимостям,..."  
Сообщение от Павел email(??) on 21-Июн-06, 18:38 
расскажите плиз, как мне собрать порт в пакадж с нужными мне опциями? не теми что по дефолту, а с нужными...
спасибо
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

5. "Скрипт для создания всех пакетов, требуемых по зависимостям,..."  
Сообщение от Сергей (??) on 22-Июн-06, 13:43 
cd /usr/ports/<каталог>/<имя>
make КЛЮЧ1=yes КЛЮЧ2=yes -DWITH_КЛЮЧ3 package clean
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

6. "Скрипт для создания всех пакетов, требуемых по зависимостям,..."  
Сообщение от basil (??) on 23-Июн-06, 14:14 
а нафига ?
есть пакет в портах - называется portupgrade
/usr/ports/sysutils/portupgrade
make install

[13:14] ffu:/usr/ports ]#portinstall -pir databases/phpmyadmin/

и получишь в /usr/ports/packages/ все зависимые  тарболы.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

7. "Скрипт для создания всех пакетов, требуемых по зависимостям,..."  
Сообщение от Павел email(??) on 28-Июл-06, 12:20 
> а нафига ?
хочу свой дистриб создать... чтоб в нем сразу нужные мне пакаджи были ;)
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Спонсоры:
Слёрм
Inferno Solutions
Hosting by Ihor
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2019 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру