URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 79022
[ Назад ]

Исходное сообщение
"FreeBSD ports -> package "

Отправлено RSG , 03-Мрт-08 00:42 
Почему нельзя получить package из порта не установив приложение в систему?

Содержание

Сообщения в этом обсуждении
"FreeBSD ports -> package "
Отправлено angra , 03-Мрт-08 07:06 
А почему вы решили что этого сделать нельзя?


"FreeBSD ports -> package "
Отправлено RSG , 03-Мрт-08 12:13 
>А почему вы решили что этого сделать нельзя?

/usr/ports/Mk/bsd.port.mk:

.....
# Default targets and their behaviors:
......
# package               - Create a package from an _installed_ port.
....

Слово installed особо подчеркнуто.
Да и на практике при использовании цели package из портов, идет сначала установка порта в систему (регестрация в /var/db/pkg) и затем уже сборка пакаджа.


"FreeBSD ports -> package "
Отправлено newser , 03-Мрт-08 15:17 
>[оверквотинг удален]
>......
># package          
>    - Create a package from an _installed_
>port.
>....
>
>Слово installed особо подчеркнуто.
>Да и на практике при использовании цели package из портов, идет сначала
>установка порта в систему (регестрация в /var/db/pkg) и затем уже сборка
>пакаджа.

В общем случае, потому что используется утилита pkg_create, которая берёт необходимые данные из /var/db/pkg.

Чисто технически можно создать package без установки его в основную систему (используя временный каталог) путём определения переменных окружения при make package. Более подробно можно ознакомиться, если поковырять bsd.port.mk.


"FreeBSD ports -> package "
Отправлено RSG , 03-Мрт-08 16:20 
>В общем случае, потому что используется утилита pkg_create, которая берёт необходимые данные
>из /var/db/pkg.

Хм... по всей видимости создание +CONTENTS, +MTREE_DIRS и т.д. неотъемлемый этап цели install. Надо будет детальнее изучть, что делает эта цель.

>Чисто технически можно создать package без установки его в основную систему (используя
>временный каталог) путём определения переменных окружения при make package. Более подробно
>можно ознакомиться, если поковырять bsd.port.mk.

А как же тогда собираются сразу все пакаджы для релиза? Неужели все  бинарные файлы и прочее  устанавливаются сначала пусть даже в "левые"  PREFIX, PKG_DBDIR и т.д.?  Хотя для  релиза теоритически можно собирать и в chroot'е.


"FreeBSD ports -> package "
Отправлено newser , 03-Мрт-08 17:05 
>Хм... по всей видимости создание +CONTENTS, +MTREE_DIRS и т.д. неотъемлемый этап цели
>install. Надо будет детальнее изучть, что делает эта цель.

В bsd.port.mk всё есть, только разбираться нужно. :) Например, в некоторых портах pkg-plist формируется динамически и т.д. и т.п. Поэтому универсальных средств нет.

>А как же тогда собираются сразу все пакаджы для релиза? Неужели все
> бинарные файлы и прочее  устанавливаются сначала пусть даже в
>"левые"  PREFIX, PKG_DBDIR и т.д.?  Хотя для  релиза
>теоритически можно собирать и в chroot'е.

Если не ошибаюсь, в /usr/ports/Tools/release есть скрипты, ответственные за это. Впрочем, могу и ошибаться.

В общем, если есть желание, поковыряйте.

Удачи!