Baptiste Daroussin начал работу (http://www.freebsdnews.net/2009/12/19/pkgin-freebsd/) по адаптации утилиты pkgin (http://imil.net/pkgin/) для управления бинарными сборками портов FreeBSD в стиле похожем на APT. Изначально утилита pkgin создана в недрах проекта NetBSD и позволяет быстро искать, устанавливать, обновлять и удалять pkgsrc (http://www.netbsd.org/docs/software/packages.html) пакеты с учетом имеющихся зависимостей.
URL: http://www.freebsdnews.net/2009/12/19/pkgin-freebsd/
Новость: http://www.opennet.me/opennews/art.shtml?num=24753
Давно об этом мечтал.
нда... в стиле apt это значит хана зависимостям?
>нда... в стиле apt это значит хана зависимостям?В том смысле, что о них можно не думать и при проведении обновления все пройдет без рукоприкладства.
а какие мысли могут быть о зависимостях при обновлении во фре?
Это всё конечно замечательно, но лично моё мнение таково, что у FreeBSD бинарные пакеты отсутствуют как таковые. Той фигнёй, что существует сейчас пользоваться невозможно, и до .deb пакетов ей как раком до Китая. Единственно где можно пользоваться фряшными бинарными пакетами, так это при создании своих пакетов для переноса с машины на машину, или быстрого восстановления своего окружения. Поэтому на мой взгляд более целесообразно было бы улучшать существующие пакеты в плане их формата, а там и утилиты управления ими подтянулись бы.А вообще мечта моя такова, зашёл в /usr/ports/xxx/nnn, дал команду типа make WITHOUT_MMM=yes WITH_DDD=yes install package, она послала запрос серверу, а тот отдал пакет собранный с заданными флагами =)
Кромк того, хочу добавить, что держать кучу мусора в /usr/ports/ уже надоело. Его еще и обновлять надо. Почему нельзя ссылаться на сервер, а для сборки иметь кеш?
>Кромк того, хочу добавить, что держать кучу мусора в /usr/ports/ уже надоело.
>Его еще и обновлять надо. Почему нельзя ссылаться на сервер, а
>для сборки иметь кеш?Чуго уж там, возьмите сразу ChromeOS, там можно локально вообще ничего не хранить.
PS. Опеннет превращается в ясли. Откуда столько детей, которые не понимаю "почему так", зато хотят по-другому?
Можно собрать порт без дерева портов. Нужно только иметь его костяк и самому докачивать нужные порты и распаковывать в /usr/ports/. Работаю с FreeBSD более 5 лет. Вижу как системя начинает терять аудиторию. Ядро, кстати, развивают активней мира.
На голом энтуазизме далеко не уедешь.
> Можно собрать порт без дерева портов. Нужно только иметь его костяк и самому докачивать нужные порты и распаковывать в /usr/ports/.Это разве что для извращенцев. Можете на досуге попытаться сформулировать чем вас не устраивает portsnap update, выполняющийся за 3 секунды.
> Работаю с FreeBSD более 5 лет. Вижу как системя начинает терять аудиторию.
А я почему-то наблюдаю обратное.
>не устраивает portsnap update, выполняющийся за 3 секунды.Устраивает, если конечно обновления проводятся регулярно. :)
Если не регулярно, то надо будет подождать.
Но подумайте, если будет миллиард систем, они будут содержать миллард копий портов, будет пройсходить куча пустой работы, на что будут тратиться ресурсы и время. А тут еще выбросы СО2 и Абама вас разгонит :)
>Устраивает, если конечно обновления проводятся регулярно. :)
>Если не регулярно, то надо будет подождать.+10 секунд, ага.
>Но подумайте, если будет миллиард систем, они будут содержать миллард копий портов,
>будет пройсходить куча пустой работы, на что будут тратиться ресурсы и
>время. А тут еще выбросы СО2 и Абама вас разгонит :)Ай-ай-ай.
PS. portsnap, кстати, отлично кэшируется проксями.
portsnap нельзя запускать по крону.
а зачем там тогда
portsnap cron
?
затем что автор никогда не открывал man-страничку/раздел HB.
p.s. Мне казалось что даже в статейках на лиссяра.су откуда многие "администраторы" черпают свои мегазнания про cron должно быть написано.
А что плохого в lissyara.su?
Статейки о ковыряниях очередного эникейщика-графомана, которые многие воспринимают за истину в последней инстанции. Но хуже всего, конечно, форум.
Особенно грустно слышать о восхвалении сего ресурса от собственных коллег по работе :( Куда катится мир (с)
По сравнению с твоими людшими "Однокласники" - таки да, скукота. И о $иськах не пишут :(
Вам, я смотрю, это близко. Но за сравнение лиссяры с одноклассниками +1.
Кто же это вам сказал?
Бедняга! А а man читать не пробовал?
http://www.freebsd.org/doc/ru/books/handbook/portsnap.html
читаем раздел A.6.6. и краснеем...
Дааа, прям удивительно, как много людей не знают команду pkg_add -rR?
знаем про эту комманду, только и она бессильна иногда. Например я летом ставил систему, так вот про пакет screen эта комманда ничего не знает.например я хочу установить , pear библиотеку для парсинга xml
в линуксе я делаю
yum search php-pear
..
php-pear-Var-Dump.noarch : Provides methods for dumping structured information about a variable
php-pear-XML-Beautifier.noarch : Class to format XML documents
php-pear-XML-Parser.noarch : XML parsing class based on PHP's bundled expat
php-pear-XML-RSS.noarch : RSS parser
php-pear-XML-Serializer.noarch : Swiss-army knife for reading and writing XML files
php-pear-XML-Util.noarch : XML utility class
..
вижу что интерисующий меня пакет называется php-pear-XML-Parse
делаюyum install php-pear-XML-Parser
и пакет ставится, мне не нужно его компилировать.
В фрибсд есть такой механизм?
PS: я ни в коем случае не говорю, что fbsd это плохо, я просто пытаюсь найти инструмент, чтобы не терять по полдня в ожидании перекомпиляции пакетов
>В фрибсд есть такой механизм?% make search name="pear.*XML"
Port: pear-XML_Query2XML-1.7.1
Path: /usr/ports/databases/pear-XML_Query2XML
Info: PEAR class transform SQL queries into XML dataPort: pear-XML_NITF-1.1.0
Path: /usr/ports/devel/pear-XML_NITF
Info: PEAR NITF XML parserPort: pear-XML_Parser-1.3.2
Path: /usr/ports/devel/pear-XML_Parser
Info: PEAR XML parsing class based on PHP's bundled expat
...% cd ${Path} && make install clean
или
% pkg_add -r ${Port}
или
% portupgrade -N ${Port}
или
% portupgrade -NPP ${Port}во втором и четвертом случаях ничего не будет компилироваться.
бесит, когда приходят линуксоиды, или того хуже, какие-нибудь псевдоадмины, и начинают тыкать что этого нет, этого нет во фре.
Вы просто не умеете ей пользоваться!
Товарищ чуть выше описал способ, можно даже поиск сократить до:
make -C /usr/ports search name="pear.*XML"
а еще лучше make quicksearch :)
-R, -‐no‐record
Do not record the installation of a package. This means that you
cannot deinstall it later, so only use this option if you know
what you are doing!Do you ?
> pkg_add -rR?-R ? Идиёт?
>-R ? Идиёт?Нет, аноним хуже идиёта.
Я назвал команду навскидку, -rR используется в portupgrade, как раз для отслеживания зависимостей. :)
> Я назвал команду навскидкуА кто-то увидел и воспользовался.
> -rR используется в portupgrade, как раз для отслеживания зависимостей. :)
Небось -arR используешь?
>> Можно собрать порт без дерева портов. Нужно только иметь его костяк и самому докачивать нужные порты и распаковывать в /usr/ports/.
>Это разве что для извращенцев. Можете на досуге попытаться сформулировать чем вас
>не устраивает portsnap update, выполняющийся за 3 секунды.Вопрос не праздный. Как с помощью portsnap вытянуть порты с определенным timestamp-ом?
Никак. Use cvs/csup.
>Кромк того, хочу добавить, что держать кучу мусора в /usr/ports/ уже надоело. Его еще и обновлять надо. Почему нельзя ссылаться на сервер, а для сборки иметь кеш?Ну впринципе, одно время нечто подобное у нас было в локалке, порты были размещены на удалённой машине, а на локальной монтировались по NFS. Вообще в этом плане явно можно что-нибудь придумать, другое дело, что FreeBSD достаточно консервативна, впрочем это один из её больших плюсов.
Лично меня система портов полностью устраивает, после того как перешёл на portsnap + portmaster, из существенных для меня недостатков осталось лишь:
а) Общая тормознутость инфраструктуры портов и пакетов, тот же make config-recursive делается невероятно долго, pkg_* утилиты, тоже еле ворочатся. Самое смешное, что давным-давно делал утилитку на подобии pkg_version на perl, используя самый тупой способ, парся файлы в /var/db/pkg используя регулярные выражения. И это работало намного быстрее.
б) Отсутствие блокировок на операции, к примеру если порт А и Б, зависят от В, то если запутить обои на компиляция и установку, при встрече этих процессов на компиляции порта В чаще всего происходит epic fail. Приходится вручную прерывать компиляцию порта А, дожидаться завершения компиляции В портом Б, а затем снова запускать А. И это сильно достаёт когда смотришь в top и видишь, что процессор еле занят, а в паралель несколько портов не запустить без присмотра.
г) Ну и естественно скорость установки, а именно время на компиляцию, хотя с каждым годом становится менее актуально.
Думаю, если появится сервис компиляции на серверах проекта, инфраструктуру быстро оптимизируют, а пока компиляция остается на нас, оптимизацией нет интереса заниматься.
>Думаю, если появится сервис компиляции на серверах проекта, инфраструктуру быстро оптимизируют, а
>пока компиляция остается на нас, оптимизацией нет интереса заниматься.Так может вам посмотреть в сторону PC-BSD?
Там сделали свои пакеты, которые скачиваются с сервера уже скомпилированными.
И со всеми зависимостями сразу)А вообще аргумент "с сервера" становится сомнительным, если вспомнить про /etc/make.conf.
Если вы проработали с FreeBSD 5 лет, вы знаете, что там можно мнооого чего написать.
>невероятно долго, pkg_* утилиты, тоже еле ворочатся. Самое смешное, что давным-давно
>делал утилитку на подобии pkg_version на perl, используя самый тупой способ,
>парся файлы в /var/db/pkg используя регулярные выражения. И это работало намного
>быстрее.Как-т заглянул в исходники pkg_* утилит, и.. лучше бы оставался в счастливом неведении.. Там на каждом шаге вызов шелловых утилит.
a) ерунда полная, т.к. сравнивать не с чем. Да и впринципе я так не считаю
б) блокировок нет, но есть волшебная опция для make.conf MAKE_JOBS_NUMBER=
в) точнее почему-то г)это да, за универсальность портов надо как-то платить
ещё не хватает USE_VERSION=1.2.3 при сборке, иногда старая версия важнее новой
/usr/ports/ports-mgmt/portdowngrade?
>/usr/ports/ports-mgmt/portdowngrade?Что делать с зависимостями? Такие порты должны собираться до пересчета зависимостей пакетов, которые завязаны на этот порт. Потому, что в таких портах тоже используются конструкции USE_<DEPEND>= <version>+. И их по другому не победить. По крайней мере в текущей схеме сборки портов.
В свое время я это решал добавлением еще одного типа зависимостей.
Чего сказал?
>Чего сказал?Когда попробуете поставиться без участия рук - поймете.
> ей как раком до КитаяВ чем именно? В yблюдстве под названием "мягкие зависимости", которое на деле просту куча дополнительных ненужных пакетов, которые "можно не устанавливать"? На этом разница заканчивается.
> make WITHOUT_MMM=yes WITH_DDD=yes install package
Сначала к своему дебиану это прикрутите. У вас наверное и кластер и хранилище есть, чтобы хранить 2^(к-во опций) версий каждого пакета, ага.
>В чем именно? В yблюдстве под названием "мягкие зависимости", которое на деле
>просту куча дополнительных ненужных пакетов, которые "можно не устанавливать"? На этом
>разница заканчивается.Ты серьёзно, пользуешься только бинарными пакетами во FreeBSD, или ты её вообще не используешь?
Про преимущества .deb пакетов тебе расскажут Debian'щики, Ubuntu'шники и прочие пользователи и создатели дистрибутивов на основе одной из лучших пакетных систем в наше время. Я тут тебе мало могу чего поведать, за 6 месяцев, что у меня стоял Debian на работе, я не успел оценить как и его мегаприемущества, так и супернедостатки.
Но во FreeBSD, когда я последний раз решил всё ставить из пакетов, я столкнулся с:
а) Отсутствием многих пакетов. В те времена там небыло mencoder'а.
б) В портах постоянно более свежие версии, и при попытки смешивания установки из пакетов и портов возникали неприятные казусы.
в) Ну и общий недостаток бинарных пакетов, то что половина собрана не так как мне нужно.И, кроме пункта (в) в Debian других проблем не наблюдалось.
>> make WITHOUT_MMM=yes WITH_DDD=yes install package
>
>Сначала к своему дебиану это прикрутите. У вас наверное и кластер и
>хранилище есть, чтобы хранить 2^(к-во опций) версий каждого пакета, ага.Ну я и сказал "мечта".
>б) В портах постоянно более свежие версии, и при попытки смешивания установки
>из пакетов и портов возникали неприятные казусы.Вы так и не поняли :)
это и есть TrueUnixWay :)
с наступающим всех!
> Ты серьёзно, пользуешься только бинарными пакетами во FreeBSD, или ты её вообще не используешь?А что, третьего не дано? Я-то пользуюсь как портами так и бинарными пакетами.
> Про преимущества .deb пакетов тебе расскажут Debian'щики, Ubuntu'шники
Ну я так и подумал, что вы про "раком до Китая" просто так вякнули.
> а) Отсутствием многих пакетов. В те времена там небыло mencoder'а
Посмотрите на FTP, там 19500 пакетов. Портов 21000. Полторы тысячи всякой RESTRICTED/NO_PACKAGE/BROKEN/IGNORE проприетарной или кривой дряни, все остальное есть. А mencoder зависит от какого-то патентованного кодека - во FreeBSD с этим очень строго.
> б) В портах постоянно более свежие версии, и при попытки смешивания установки из пакетов и портов возникали неприятные казусы.
У меня не возникали. А вод под Debian возникали - вы не пробовали там поставить в старую систему новый пакет, который требует новых же зависимостей? Попробуйте, много нового узнаете.
> в) Ну и общий недостаток бинарных пакетов, то что половина собрана не так как мне нужно.
Ну это разумеется.
> И, кроме пункта (в) в Debian других проблем не наблюдалось.
Ага, только там пакеты годовалой давности. xmoto, например, банально не работает, потому что уровни банально требуют более новой версии и т.д. С таким подходом берете релиз, берете пакеты только от него и наслаждаетесь. У FreeBSD тут минус только в том, что релизы выходят реже чем раз в полгода.
>Ну я так и подумал, что вы про "раком до Китая" просто так вякнули.Нет, я выразил своё личное мнение, причём отметил, что это именно моё мнение. Хотя иы прав "раком до Китая" - это слишком резко.
>У меня не возникали. А вод под Debian возникали - вы не пробовали там поставить в старую >систему новый пакет, который требует новых же зависимостей? Попробуйте, много нового >узнаете.
Про Debian, пробывал, сходу не получилось. Т.к. было нужно по быстрому получить новую версию прогораммы, просто обновился до testing. Впринципе особых трудностей не испытал. Ну и не Debian'ом единым мир полон, есть и другие дистрибутивы на .deb. Ну и вообще какая разница, во многих случаях тоже самое не пройдёт и во FreeBSD при установки новой версии в древнючее окружение.
> Ну и вообще какая разница, во многих случаях тоже самое не пройдёт и во FreeBSD при установки новой версии в древнючее окружение.вы не правы, пройдет, еще как
Сообщение от xxx on 21-Дек-09, 11:37
>до .deb пакетов ей как раком до КитаяСообщение от xxx on 21-Дек-09, 14:04
>за 6 месяцев, что у меня стоял Debian на работе, я не успел оценить
>как и его мегаприемущества, так и супернедостатки.Батюшка, вы или крестик снимите, или трусы оденьте.
> и до .deb пакетов ей как раком до Китаяможет быть так и есть, но ведь пакеты изначально как доп. фича.
Вы и в любом линуксе вряд ли найдете один и тот же пакет по-разному собраный, с нужными вам опциями! когда сажусь за линукс, ой как мне не хватает портов, чтобы софт был собран как мне надо, а не как собрали админы репы.> Кроме того, хочу добавить, что держать кучу мусора в /usr/ports/ уже надоело. Его еще и обновлять надо. Почему нельзя ссылаться на сервер, а для сборки иметь кеш?
Ээм, я там мусора не вижу. И как можно ссылаться на сервер, если дерево портов у всех разное? Может я не хочу обновлять его? Может я поставил 5 лет назад фрю4 под небольшие задачи, и по-тихоньку дособираю по мере необходимости что мне надо.
> PS. Опеннет превращается в ясли. Откуда столько детей, которые не понимаю "почему так", зато хотят по-другому?
+1
> Работаю с FreeBSD более 5 лет. Вижу как системя начинает терять аудиторию.
Чушь!
Вообще-то, гентушники, например, большинство софта собирает из портов, и радуются, что у них есть такой инструмент как порты!
блин, обшибся =( немного не тому написал
Давайте не будем ничего улучшать, не будем ничего придумывать. Только чур не обижаемся, если в один прекрасный день бизнес не будет спонсировать, а линуксоводы скажут, что окончатель Р.И.П. и сравнят с калом мамонта.
Улучшать надо. Но надо понимать, что действительно является улучшением, а что является хотелками отдельных личностей. Пакетная система действительно требует пересмотра, но порты не трогайте!
>Вы и в любом линуксе вряд ли найдете один и тот же
>пакет по-разному собраный, с нужными вам опциями! когда сажусь за линукс,
>ой как мне не хватает портов, чтобы софт был собран как
>мне надо, а не как собрали админы репы.неужели так много перепиливать надо?
>Ээм, я там мусора не вижу. И как можно ссылаться на сервер,
>если дерево портов у всех разное? Может я не хочу обновлять
>его? Может я поставил 5 лет назад фрю4 под небольшие задачи,
>и по-тихоньку дособираю по мере необходимости что мне надо.браво. плодите дальше уязвимые системы на радость плохим парням. потому что за 5 лет дырок будет найдено весьма немало, а ваше дерево портов так и останется со ссылками на старые/дырявые версии софта.
Ах,да. Еще к тому моменту софт может просто исчезнуть с официальных ftp/http и зеркал.
А обновите дерево портов - многое перестанет собираться.>Вообще-то, гентушники, например, большинство софта собирает из портов, и радуются, что у
>них есть такой инструмент как порты!во-первых, порты - жалкое подобие portage. во-вторых, после принятия EAPI 2 первое утверждение ещё более справедливо.
в-третьих, из-за отсутствия понятия stable для портов сборка и последующая работа софта становится весьма интересным занятием(что-то не собралось, собралось, но лишь с частью выключенных опций, собралось, в процессе работы крешится). Данные эффекты ещё сильно зависят от CFLAGS и архитектуры.
хорошо хоть параллельную сборку в портах сделали наконец-то.
В портах 8.0 до сих пор нет рабочего memcached! Хорошо что на сервере, который я обновил до 8-ки была возможность сделать заглушку для memcached.
>В портах 8.0 до сих пор нет рабочего memcached! Хорошо что на
>сервере, который я обновил до 8-ки была возможность сделать заглушку для
>memcached.Там вполне рабочий memcached.
CFLAGS+= -fstack-protector
>>В портах 8.0 до сих пор нет рабочего memcached! Хорошо что на
>>сервере, который я обновил до 8-ки была возможность сделать заглушку для
>>memcached.
>
>Там вполне рабочий memcached.
>CFLAGS+= -fstack-protectorСпасибо! Помогло.
А как Вы догадались так сделать? )
Интуиция. Этот фикс, кстати, только что закоммитили. Коммиттеры читают опеннет?
Некоторые читают.
Да, хотя и не хочется.