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
Сообщения: 5195
Откуда: Москва
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
Сообщения: 5195
Откуда: Москва
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
Сообщения: 5412
Откуда: СССР, Харьков
Double писал(а):

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

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

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


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

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

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


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

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


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

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

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

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


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

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


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

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

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


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

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

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

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

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


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

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


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

Зарегистрированные пользователи: Bing [Bot], Google [Bot]


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

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