BSDPORTAL.RU

На этом сайте обсуждаются вопросы использования ОС FreeBSD
 Портал  •  Статьи  •  Форум  •  Wiki  •  Поиск  •  FAQ  •  Обои  •   Официальная документация  •  Новые темы 

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
СообщениеДобавлено: Пт 26 окт, 2018 6:18 pm 
Не в сети

Зарегистрирован: Пт 03 авг, 2012 12:00 pm
Сообщения: 18
Приветствую.

Обычно использую FreeBSD в качестве шлюза или, изредка, web сервера.
Решил на днях попробовать собрать тестовый почтовый сервер и столкнулся с двумя проблемами:

1. Не понял как правильно пересобрать порт с новыми опциями.
Например: забыл в апаче установить mod_dir. Думал сделаю make config, добавлю опцию, сделаю make и make install. Но не получилось. make ошибок не выдавал но и ничего не менял. make install, вроде, выдавал ошибку. Сейчас уже не помню последовательность действий, но чуть-ли не через pkg удалил, что вроде как не правильно.
Вопрос: Может подскажет кто правильную последовательность действий если нужно пересобрать уже установленный порт с другими опциями. Через deinstall или есть еще путь?

2. Решил протестировать rspamd. Как обычно в портах сделал make config-recursive и... устал задавать опции. Реально несколько десятков пакетов, причем опции первых штук пятнадцати я еще пытался просмотреть и понять нужны ли они мне, а потом просто соглашался. В итоге началась установка, но к счастью я следил за процессом и обратил внимание что скачивается порт размером 1800+Mb и немого опечалился. Убрал все опции у rspamd, но этот здоровенный порт все равно скачивается. Плюнул и поставил через pkg install. В итоге скачалось что-то около 8Mb и, вроде работает. Как так-то? (с)
Вопрос: Как быть с такими портами, может быть это как-то обходится?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пт 26 окт, 2018 6:54 pm 
Не в сети
Модератор

Зарегистрирован: Сб 11 сен, 2004 6:33 am
Сообщения: 5294
Откуда: Москва
Double писал(а):
Вопрос: Может подскажет кто правильную последовательность действий если нужно пересобрать уже установленный порт с другими опциями. Через deinstall или есть еще путь?

portmaster <порт>
Для портов от которых ничего не зависит можно и make clean deinstall install clean, но лучше всегда portmaster.

Double писал(а):
Убрал все опции у rspamd, но этот здоровенный порт все равно скачивается

Потому что это не прямая зависимость rspamd. Скорее всего это latex который нужен ragel'ю для сборки его документации.

Double писал(а):
Плюнул и поставил через pkg install. В итоге скачалось что-то около 8Mb и, вроде работает. Как так-то? (с)

Есть зависимости, нужные только для сборки. В установке из пакетов, понятно, они никак не участвуют.

Double писал(а):
Вопрос: Как быть с такими портами, может быть это как-то обходится?

Может и обходится. make missing и логи сборки чтобы понять что тянет что у вас есть, далее либо make config в руки, либо vim Makefile.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вт 30 окт, 2018 5:49 pm 
Не в сети

Зарегистрирован: Пт 03 авг, 2012 12:00 pm
Сообщения: 18
Спасибо за ответы.

AMDmi3 писал(а):
portmaster <порт>
Для портов от которых ничего не зависит можно и make clean deinstall install clean, но лучше всегда portmaster.

Из описания portmaster я понял что он служит для обновления(версии) без обновления зависимостей, а если у порта нет обновлений, но изменился конфиг опций он будет пересобирать порт? В общем пока писал сообщение поставил portmaster и натравил его на Апач, посмотрим что получится. Интересно как он себя поведет если опции не подключать а отключать, не нарушатся зависимости?

AMDmi3 писал(а):
Может и обходится. make missing и логи сборки чтобы понять что тянет что у вас есть, далее либо make config в руки, либо vim Makefile.

Правильно-ли я понял что автоматизации нет? А прокатит вариант если ставить зависимости пакетами? Т.е. посмотреть зависимости, большие поставить из пакетов, а потом уже из порта поставить основной.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вт 30 окт, 2018 9:26 pm 
Не в сети
Модератор

Зарегистрирован: Сб 11 сен, 2004 6:33 am
Сообщения: 5294
Откуда: Москва
Double писал(а):
Из описания portmaster я понял что он служит для обновления(версии) без обновления зависимостей

Вообще-то прежде всего как раз для обновления вместе с зависимостями.

Double писал(а):
а если у порта нет обновлений, но изменился конфиг опций он будет пересобирать порт? В общем пока писал сообщение поставил portmaster и натравил его на Апач, посмотрим что получится.

portmaster <порт> безусловно пересоберёт указанный порт, независимо от его текущей версии и опций.

Double писал(а):
Интересно как он себя поведет если опции не подключать а отключать, не нарушатся зависимости?

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

Double писал(а):
Правильно-ли я понял что автоматизации нет?

Автоматизации чего именно? Чего-то типа выявления и выключения зависимостей которые лично вы посчитали бы избыточными точно нет.
Как смотреть что будет поставлено я написал, плюс некоторые опции можно выключить заранее (WITHOUT=DOCS, например, спасло бы вас от этого LaTeX'а).

Double писал(а):
А прокатит вариант если ставить зависимости пакетами? Т.е. посмотреть зависимости, большие поставить из пакетов, а потом уже из порта поставить основной.

Порты и пакеты мешать нельзя.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Ср 31 окт, 2018 1:28 pm 
Не в сети

Зарегистрирован: Пт 03 авг, 2012 12:00 pm
Сообщения: 18
AMDmi3 писал(а):
Вообще-то прежде всего как раз для обновления вместе с зависимостями.

Видимо я не правильно понял фразу из мануала:
This allows you to safely update a specific port without having to update all of the ports "above" it.
Возможно above подразумевает порты которые зависят от него, а не те от которых он зависим.

AMDmi3 писал(а):
Как смотреть что будет поставлено я написал, плюс некоторые опции можно выключить заранее (WITHOUT=DOCS, например, спасло бы вас от этого LaTeX'а).

Вот именно это я и имел ввиду. Нужно смотреть makefile и править ручками. Как примерно работает установка портов я представляю, но, увы, примерно. Вероятно надо будет почитать porter's / developer's handbook.
Спасибо что задали направление.

AMDmi3 писал(а):
Порты и пакеты мешать нельзя.

Это категоричное правило? В смысле: если начал в системе ставить порты, то пакеты ставить нельзя или это в рамках одной установки - поставил порт, все его зависимости должны быть портами.
Как быть если у меня были поставлены пакеты, а потом я захотел поставить некий порт который зависим от программ которые у меня установлены из пакетов. Вопрос чисто теоретический.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Ср 31 окт, 2018 4:21 pm 
Не в сети
Модератор
Аватара пользователя

Зарегистрирован: Ср 08 ноя, 2006 2:53 pm
Сообщения: 5464
Откуда: СССР, Харьков
Double писал(а):

AMDmi3 писал(а):
Порты и пакеты мешать нельзя.

Это категоричное правило?

Да.
Можно при первоначальной установке все поставить из пакетов, это быстрее чем из портов.
Если в пакетах по умолчанию нет нужных опций, то нужно переходить на порты.
Обновляется(устанавливается) дерево портов потом обновляем всё, что установленно:
#portmaster -a
После обновления можно преустанавливать порты с нужными опциями.
В портах последние версии ПО в пакетах нет.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Ср 31 окт, 2018 5:35 pm 
Не в сети

Зарегистрирован: Ср 14 окт, 2009 2:26 pm
Сообщения: 591
Double писал(а):
Это категоричное правило?

Для портов, которые хочется собрать с отличными от умолчательных опциями, можно/нужно завести свой локальный репозиторий, и всё-всё-всё устанавливать пакетами. Сэкономите и время, и электроэнергию.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Ср 31 окт, 2018 5:46 pm 
Не в сети

Зарегистрирован: Вт 18 сен, 2007 10:26 am
Сообщения: 978
Откуда: СССР, Красноярск
Порт при установке собирается в пакет и устанавливается как пакет через pkg.
Если потом обновлять как пакеты, то pkg скажет, что такой-то пакет нужно обновить, т.к. опции изменились.
В этом случае можно делать pkg lock/pkg unlock (я практиковал на слабой машине в отношении nginx, который из пакетов не имел нужных опций)
Т.е., если программа является конечной, т.е. от неё не зависят другие пакеты /много других пакетов, то мешать - ничего страшного.
Но в любом случае пакеты не содержат всех программ из портов, и пакеты собраны с опциями "по умолчанию".
Думаю понимание что нужно и как действовать в конкретной ситуации придёт со временем.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Чт 01 ноя, 2018 12:51 am 
Не в сети
Модератор

Зарегистрирован: Сб 11 сен, 2004 6:33 am
Сообщения: 5294
Откуда: Москва
xemul писал(а):
Для портов, которые хочется собрать с отличными от умолчательных опциями, можно/нужно завести свой локальный репозиторий, и всё-всё-всё устанавливать пакетами. Сэкономите и время, и электроэнергию.

Ничего подобного. Должно быть очевидно что там где вы собрали бы порт, придётся собрать и пакет. На самом деле пакетов придётся собрать намного больше, поскольку poudriere с готовностью пересобирает всё что зависит от порта у которого изменилась версия. Соответственно, при обновлении какого-нибудь gettext пересобирается вообще всё. С портами этого можно избежать.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Чт 01 ноя, 2018 10:49 am 
Не в сети

Зарегистрирован: Ср 14 окт, 2009 2:26 pm
Сообщения: 591
Если кому-то хочется поправить опции у всех портов, у которых они (опции) есть, пусть правит. Это другой случай.
Если предположить, что портов, которым совершенно необходимо _добавить_ функционал относительно дефолтных опций - по двум пальцам перечесть, и эти порты без R-deps, то, имхо, вполне возможно завести виртуальную машину или клетку, которая будет запускаться на сборку обновлений этих портов.
Из минусов - читать ports/UPDATING всё равно придётся.
Из плюсов - освободится время на подумать, как ещё можно организовать требуемый функционал, отсутствующий в оригинальном пакете.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Чт 01 ноя, 2018 12:41 pm 
Не в сети

Зарегистрирован: Чт 14 май, 2009 6:56 pm
Сообщения: 808
Ну я, вообще, мешал порты и пакеты, и ничего страшного не случалось. Нужно просто понимать что ты делаешь.

Если ты точно уверен, что в порте не поменялись никакие API/ABI или он вообще не имеет других зависимостей, то можно и из портов обновить.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Чт 01 ноя, 2018 7:42 pm 
Не в сети
Модератор

Зарегистрирован: Сб 11 сен, 2004 6:33 am
Сообщения: 5294
Откуда: Москва
arrowdodger писал(а):
Ну я, вообще, мешал порты и пакеты, и ничего страшного не случалось.

Я тоже ржавым гвоздём как-то поцарапался, никому ничего не сказал и не умер.

arrowdodger писал(а):
Если ты точно уверен, что в порте не поменялись никакие API/ABI

Я напомню, это форум "FreeBSD для новичков". Кто знает как узнать не поменялись ли API/ABI сам разберётся как и откуда ему софт ставить и обновлять, что при этом может сломаться и как это исправить. А для того кто спрашивает совета здесь - однозначно "не мешать порты и пакеты ни при каких условиях".


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 12 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Зарегистрированные пользователи: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB
Яндекс.Метрика