О портах и пакетах

Aug 08, 2011 11:25

Поскольку тема вызвала широкий резонанс
обобщу свое мнение.
  1. Существенная часть претензий от линуксоидов с BSD-шной системе портов, сводятся к тому, что FreeBSD - не Linux. С этим ничего поделать нельзя, да и не стоит оно того imho. Изготовление очередного линуксоклона FreeBSD попросту добьет.
  2. Система портов-пакетов безусловно нуждается в значительной ( Read more... )

Leave a comment

Comments 20

Модули ext_732967 August 8 2011, 08:04:09 UTC
Модули в пакетах - это хорошо и полезно. Но есть некоторые факторы, которые сильно этому мешают:
1) сложность(?) внятной реализации в рамках существующей системы портов. При чем сложность как со стороны допиливания bsd.port.mk, так и сложность для мейнтейнеров портов.
2) необходимость переработки существующего формата базы пакетов. Неплохо было бы сделать нормальную shared library для работы с пакетами, ибо сейчас "либа" вроде как и есть, но на самом деле это просто несколько файлов кода, которые линкуются прямо в pkg_*
3) тотальная лень. Лень мейнтейнеров что-то переделывать и разбираться с модулями. Лень разработчиков переделывать все без лишних костылей.

Мне кажется что систему построенную на костылях и подпорках^W^W^Wmake пора выбрасывать, но у меня нету никаких предположений чем ее можно заменить.

Reply

Re: Модули filonov August 8 2011, 08:10:26 UTC
1) Со стороны bsd.port.mk - да, поразвлекаться придется знатно. Со стороным мейнтейнеров - все не так однозначно. Часть портов просто исчезнет, избавив мейнтейнеров от головной боли. Например сейчас в дереве 77 php5-* портов. С модульной системой, все что входит в сырцы самого пхп схлопывается в 1 порт.

2) т.е. необходимо внятное API. согласен. Формат пакетов также надо менять. Ибо цифровую подпись в нынешних пакетах просто некуда совать.

Reply

Re: Модули ext_732967 August 8 2011, 08:16:11 UTC
Да подпись в пакет запихнуть - не проблема. Просто отдельный файл +SIGNATURE внутри tbz2, или отдельный файл сбоку. Проблема допилить их проверку и сделать нормальную инфраструктуру сертификатов.

Reply

Re: Модули filonov August 8 2011, 08:26:01 UTC
Просто отдельный файл +SIGNATURE внутри tbz2
а как ее проверять потом? Подписывается то файл без подписи.

Reply


akela_wolf August 8 2011, 08:05:30 UTC
Хм... А что добавляют модули, если они по сути отдельные порты? Apache 1.3 и Apache 2.0 - по сути отдельные проекты, каждый со своими исходниками... PHP в качестве модуля собирается под каждый из них отдельно. Допустим, установив php модулем для apache13 я уже не могу безболезненно удалить apache13 и поставить apache20 или apache22 - нужно пересобирать модуль PHP.

Другое дело что у PHP может быть выбор - под какой апач собирать модуль (не обязательно, кстати, под тот что установлен в систему) т.е. можно собрать php+apache13, php+apache20, php+apache22 пакеты и выбирать какой именно устанавливать (конечно, при этом проверится зависимость что апач нужной версии присутствует в системе)

По сути это то же самое разбиение одного порта на множество, только оформленное в виде частей одного и того же порта (модулей), а не отдельных портов.

PS. "набор инсталлируемых пакетов задается при инсталляции модуля" - наверное должно быть "набор инсталлируемых модулей задается при инсталляции пакета"

Reply

filonov August 8 2011, 08:13:59 UTC
По сути это то же самое разбиение одного порта на множество, только оформленное в виде частей одного и того же порта (модулей), а не отдельных портов.
Оно более логично вытекает из существующего процесса разработки.

Другое дело что у PHP может быть выбор - под какой апач собирать модуль (не обязательно, кстати, под тот что установлен в систему)
Оно апачевые потроха хочет. так что задача собрать под неустановленный апач - весьма нетривиально.

"набор инсталлируемых пакетов задается при инсталляции модуля" - наверное должно быть "набор инсталлируемых модулей задается при инсталляции пакета"
спс

Reply

akela_wolf August 8 2011, 08:52:45 UTC
"Оно апачевые потроха хочет. так что задача собрать под неустановленный апач - весьма нетривиально."

Никакой магии - нужный апач установится по ходу дела во временную директорию, а затем будет вышвырнут нафиг после получения требуемого модуля php.

Reply

filonov August 8 2011, 09:12:11 UTC
Никакой магии - нужный апач установится по ходу дела во временную директорию, а затем будет вышвырнут нафиг после получения требуемого модуля php.
Угу. а потом выяснится, что кто-то где-то вкомпилировал полный путь.

Reply


(The comment has been removed)

filonov August 9 2011, 07:46:20 UTC
А в чем собственно проблема?
бинарник один. Он предоставляет модули exim.mysql или exim.sqlite или и то и другое в зависимости от параметров сборки.

Reply

(The comment has been removed)

filonov August 9 2011, 18:44:54 UTC
C чего им быть разными, если бинарник у exim'а один.

Reply


stanislavvv August 9 2011, 11:10:12 UTC
Хм... У пакетов .deb, к примеру, есть свойство Provides.
Например для пакета apache2-mpm-prefork прописано следующее:
Provides: apache2, apache2-mpm, httpd, httpd-cgi

При этом от этого самого Provides вполне могут быть зависимости.
Так что не вижу смысла дробить пакеты еще сильнее.
Достаточно продумать метаинформацию о пакете.

Reply

filonov August 9 2011, 18:56:11 UTC
Дебиановское provides рудиментарно, но в том же направлении.
И сам апач и текущие портовые options предоставляют гораздо больший выбор.

Reply


Leave a comment

Up