= Сообщение: 4992 из 5339 ========================================= RU.HUSKY = От : Michael Dukelsky 2:5020/1042 31 Jul 22 20:21:08 Кому : Alex Shuman 31 Jul 22 20:21:08 Тема : Проблемы при сборке husky на *nix и их возможные решения FGHI : area://RU.HUSKY?msgid=2:5020/1042+62e6ce8b На : area://RU.HUSKY?msgid=2:463/877+62e5dc10 = Кодировка сообщения определена как: CP866 ================================== Ответ: area://RU.HUSKY?msgid=2:463/877+62e70bfc ============================================================================== Привет, Alex!
31 Jul 22 04:34, Alex Shuman послал(а) письмо к All:
AS> Linux 5.15.0-1013-oracle #17~20.04.1-Ubuntu SMP Mon Jul 4 05:27:11 UTC AS> 2022 x86_64 x86_64 x86_64 GNU/Linux
AS> Hа обеих собирал себе в /home. Статическая сборка, с perl и hptzip.
AS> Собственно, проблемы...
AS> * Обе системы не любят CR/LF в .sh скриптах - было бы неплохо заменить AS> просто на LF уже в дистрибутиве.
Разумеется, в репозитории на гитхабе никаких CR нет. Удали свою копию репозитория, содержащую CR, выполни команду
git config --global core.autocrlf input
и после этого клонируй репозиторий по новой. Заодно почитай man git-config.
AS> * Hет скриптов для офлайн сборки - init_build и build.sh настойчиво AS> хотят гитхаб. В документации INSTALL единственной альтернативой AS> предлагается ручная сборка по "legacy makefiles" (но мне удалось AS> собрать и без них).
Да, собирался написать этот раздел, но пока руки не дошли. Конечно же, можно собирать и без скриптов, и оффлайн.
В каталог, где находятся все локальные копии репозиториев Husky, надо из huskybse/ скопировать huskymak.cfg для Линукса и huskymak.cfg.bsd для FreeBSD. Последний надо переименовать в huskymak.cfg. Туда же скопировать huskybse/Makefile. Запускать make/gmake надо будет в этом каталоге. Лучше всего эти действия выполнить с помощью wget и init_build как это написано в huskybse/INSTALL_ru.asciidoc.
MAKE=make для Линукса и MAKE=gmake для FreeBSD. jobs - это количество логических процессоров, если на машине кроме сборки в данный момент ничего важного не делается. Иначе надо выбрать меньшее число. Но не меньше единицы. :-) Можно $jobs в командах, приведённых ниже, опустить. Тогда make/gmake будет выбирать сам, на сколько процессов можно распараллелить процесс сборки.
# Скачать обновления. Если репозиториев ещё нет, то склонировать все репозитории. ${MAKE} $jobs update
Это надо делать на машине с установленным git и с доступом в интернет. Всё остальное можно делать на машине без установленного git и без доступа в интернет.
# Сформировать файлы, показывающие, что от чего зависит в данном проекте # и выполнить сборку ${MAKE} $jobs depend && ${MAKE} $jobs
Как установить собранные программы написано в в huskybse/INSTALL_ru.asciidoc. Возможно, я что-то забыл написать. Если что будет не так, пиши.
AS> При этом, init_build, в принципе, и при AS> существующих исходниках (распакованных из архива) поправит вам конфиг AS> для сборки,
init_ build надо запускать только один раз, для того, чтобы подготовить первоначальное скачивание исходников. И это написано в документации.
AS> * В случае FreeBSD 13 предлагаемый компилятор clang не сработает - AS> сборка остановится на неисправимой ошибке в одном из файлов AS> исходников. Решение: использовать gcc/g++ . Решение пришлось искать в AS> портах более старой версии.
Решение неправильное. Надо привести кусок лога с ошибкой. Вообще-то я тестировал сборку во FreeBSD именно на 13.0, но это было какое-то время назад.
AS> * В общем мейкфайле сборки нет рецепта для hptutil. Или он больше не AS> поддерживается? Отдельно собирать не пробовал.
Я не хотел включать hptutil, потому что когда-то тут были крики, что эта программа портит базы. Но, пожалуй, надо включить, чтобы получить подробное сообщение об ошибке. :)
Желаю успехов, Alex! За сим откланиваюсь, Michael.