LINUX.ORG.RU

FreeBSD для чайников

 , , , ,


1

3

Иногда начинается странный зуд и хочется эдакого. В очередной раз обратил внимание на FreeBSD. Сама установка проблем не вызовет. Но, так как последний раз тыкал палкой во фрю примерно 15 лет назад. И тут возникают вопросы.

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

Игори. Куда без них. В линуксе, проблем особо не испытываю, если игра не работает в линуксе, то она и под оффтопиком не очень. Как во фре, использовать режим бинарной совместимости или вайн?

★★★★★

Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от utanho

на третий день заметил, что порты собираются не шлангом, а гццой.

Не может такого быть. ПО из портов давно собираются штатным системным LLVM/Clang по умолчанию. Какая версия системы у тебя?

iZEN ★★★★★
()
Ответ на: комментарий от iZEN

Не может такого быть

Может я и ошибся. Вообще уже не понимаю, что происходит. Но гцц точно скачался и собрался, хотя в списке установленных его нет. Полдня собирал оаст и llvm, потом при сборке иксов мне сказали идите в лес, llvm.wrap не найден. В портах llvm не нашел, в списке установленных его нет.

Полностью потерял нить повествования. А кто-то еше говорил, что гента красноглазая.

Гента - образец лаконичности и прозрачности, по сравнению с фряхой.

utanho ★★★★★
() автор топика
Ответ на: комментарий от iZEN

Не то слово. Иксы так и не могу собрать из портов. При сборке указывается llvm-config13, но сам llvm - 9. При сборке месы падает с ошибкой, не видит llvm модули.

Сейчас всё снёс и ставлю с нуля.

utanho ★★★★★
() автор топика
Ответ на: комментарий от utanho

Видимо, ты делаешь из FreeBSD какой-то странный Linux (профдеформация от общения с Gentoo?). Точно ничего не менял в настройках сборки?

iZEN ★★★★★
()
Последнее исправление: iZEN (всего исправлений: 1)
Ответ на: комментарий от iZEN

Ничего не делаю особенного. Стараюсь максимальный дефолт.

К фряхе особо без претензий, кривыми портами не испугать человека, правившего кривые ебилды.

У меня отдельно стоящий ноут для экспериментов. Будет надо, 10 раз переставлю систему, пока не разберусь в её потрохах

utanho ★★★★★
() автор топика
Последнее исправление: utanho (всего исправлений: 1)
Ответ на: комментарий от utanho

В портах не надо ничего самому исправлять. За синдром преждевременной оптимизации лучше бить по рукам.

iZEN ★★★★★
()
Ответ на: комментарий от iZEN

Перехожу в каталог с портом и делаю make & make install. Ничего особенного.

Из «оптимизаций» прописал сборку в 4 потока, стало быстрее собираться. Больше ничего.

utanho ★★★★★
() автор топика
Ответ на: комментарий от utanho

Перехожу в каталог с портом и делаю make & make install. Ничего особенного.

Если пакет порта уже установлен, то этих команд недостаточно - нужен make deinstall. А иначе пересобраный пакет не установится.

Для облегчения переустановки и апгрейда десятков портов лучше всё-таки пользоваться portmaster.

iZEN ★★★★★
()
Ответ на: комментарий от iZEN

Для облегчения переустановки и апгрейда десятков портов лучше всё-таки пользоваться portmaster.

Возьму на заметку.

Make deinstall пока не пригодился, порты не ставятся. Пока что мой успех - собранный МС и русификация.

utanho ★★★★★
() автор топика
Ответ на: комментарий от Clockwork

Спасибки.

А из этого кеша можно ставить пакеты? То есть, если я удалю порт, собранный бинарь останется?

utanho ★★★★★
() автор топика
Ответ на: комментарий от utanho

порты не ставятся.

То есть не собираются? с какой ошибкой?

Собираю как есть и оно не собирается.

Что собираешь?

Clockwork ★★★★★
()
Ответ на: комментарий от utanho

portmaster -gD <категория/порт>

Собранные архивы с пакетами найдёшь по пути /usr/ports/packages/All/, если не переопределил соответствующую переменную окружения.

Если нужен собственный репозиторий из локально собранных пакетов, чтобы расшарить каталог с пакетами в сеть для других, можно воспользоваться командой: pkg repo /usr/ports/packages

iZEN ★★★★★
()
Последнее исправление: iZEN (всего исправлений: 1)
Ответ на: комментарий от utanho

Ставь из порта xorg-minimal - этого достаточно. Проверь, установлен ли пакет xinit и пакет xorg-drivers (с необходимым набором драйверов xf86-*).

iZEN ★★★★★
()
Ответ на: комментарий от Clockwork

Это кэш пакетов, скачанных из сторонних публичных репозиториев. Для сборки из портов он не нужен.

iZEN ★★★★★
()
Ответ на: комментарий от utanho

Пока что мой успех - собранный МС и русификация.

Начинать сборку (при пустых каталогах /usr/local и /var/db/pkg) нужно с установки portmaster. Далее правится /etc/make.conf на предмет версий инфраструктурных пакетов. Всё собирается и устанавливается с помощью portmaster: perl (5.36), python (3.10). Затем xorg-minimal и slim, если это десктоп. Xfce4, Firefox, Thunderbird, LibreOffice, VLC, к которым по зависимостям соберутся все необходимые пакеты библиотек. Вообще же, порядок сборки не важен, важно лишь наличие того, что требуется пользователю, и непротиворечивость зависимостей.

Отредактировать конфигурационные файлы (/usr/local/etc/slim.conf, ~/.login, ~/.xinitrc) на логин в графическую среду (startx, startxfce4).

iZEN ★★★★★
()
Последнее исправление: iZEN (всего исправлений: 2)
Ответ на: комментарий от iZEN

Это кэш пакетов, скачанных из сторонних публичных репозиториев.

Сторонние это http://pkg.FreeBSD.org/${ABI}/ ?

Для сборки из портов он не нужен.

Да, но для установки из пакетов нужен. А пакеты в репозитории собираются из тех же портов))))

Clockwork ★★★★★
()
Ответ на: комментарий от SpaceRanger

Какое-то время ориентировался на ЕА, как ни странно. Игры от них шли беспроблемно.

utanho ★★★★★
() автор топика
Ответ на: комментарий от utanho

Кстати, есть ли во фряхе возможность складировать пакеты собранных портов?

/var/cache/pkg

Из портов туда не падают пакеты. Но можно собрать пакет из порта с помощью make

Собирая пакет из порта он будет срать пакетами pkg в work и от туда может быть установлен, пока не сделать make clean, но это всё итак понятно.

Clockwork ★★★★★
()
Последнее исправление: Clockwork (всего исправлений: 3)
Ответ на: комментарий от Clockwork

Собирая пакет из порта он будет срать пакетами pkg в work и от туда может быть установлен, пока не сделать make clean, но это всё итак понятно.

portmaster в начале сборки из порта предварительно очищает каталог $WRKDIRPREFIX/work, если в нём что-то есть от предыдуще сборки. Если много оперативной памяти, желательно размещать каталоги сборки в tmpfs — достаточно задать переменную окружения в /etc/make.conf:

WRKDIRPREFIX=/tmp/ports
iZEN ★★★★★
()
Ответ на: комментарий от iZEN

WRKDIRPREFIX=/tmp/ports

Только хотел об этом спросить :-)

utanho ★★★★★
() автор топика
Ответ на: комментарий от utanho

setenv

setenv на локаль не нужен, если класс локали в профиле пользователя задан из определённого в /etc/login.conf.

#
# Russian Users Accounts. Setup proper environment variables.
#
russian|Russian Users Accounts:\
	:charset=UTF-8:\
	:lang=ru_RU.UTF-8:\
	:tc=default:
cap_mkdb /etc/login.conf
pw usermod -n $username -L russian
iZEN ★★★★★
()
Ответ на: комментарий от iZEN

Еще вопрос, можно ли выпилить спидерманки и заменить его на дуктапе?

utanho ★★★★★
() автор топика
Ответ на: комментарий от iZEN

Сам кэш или каталог?

И то и другое. Я про make говорил, портмастером не пользуюсь.

Clockwork ★★★★★
()
Ответ на: комментарий от iZEN

Установка сломалась на pipewire.

Sdl2 выпала с ошибкой, что не может найти libpipewire. А pipewire не собирается, потому что sdl2 не может ее найти. Самое интересное в том, что сборка не прерывается8, а ходит по кругу, ругаясь на not found. Не знаю, как долго оно кружило, но я начал уставать от этих минных полей в конфигурации портов.

Обновлено:

Похоже это была циркуляшка. Собрал пипеварю без сдл2, собрал сдл2 и пересобрал пипеварю с сдл2.

utanho ★★★★★
() автор топика
Последнее исправление: utanho (всего исправлений: 2)
Ответ на: комментарий от iZEN

Не может такого быть

Оказалось, что может. Gtk4 тянет для сборки gcc11. И походу им собирается.

У меня уже не осталось вопросов, почему фряха не так популярна как линукс.

Для эмбеда она хороша, сетевой стек, всё такое. Но дальше начинается мрак. Я уже несколько дней просто не могу её собрать из портов. Хотя порты заявляются как уберфича.

Сегодня я узнал, что циркуляшки в портах не разруливаются. А это провал. И вообще плохо отслеживаются опцит сборки. Баш у меня упал из-за libreadline.

Но самое плохое - отсутствие вменяемой системы конфигурации. Надо шариться по папкам, в поисках нужного файла.

Онлайн мануалы носят скорее академический характер. Сравнить хотя бы вики генты, арча и фряхи. В генте и арче будет конкретное решение проблемы с примерами, а во фре - рассуждения на тему.

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

utanho ★★★★★
() автор топика
Последнее исправление: utanho (всего исправлений: 1)
Ответ на: комментарий от utanho

И походу им собирается.

С чего бы?

FreeBSD для чайников (комментарий)

/usr/bin/cc --version                                     
FreeBSD clang version 13.0.0 (git@github.com:llvm/llvm-project.git llvmorg-13.0.0-0-gd7b669b3a303)
Target: x86_64-unknown-freebsd13.1
Thread model: posix
InstalledDir: /usr/bin

Gtk4 тянет для сборки gcc11

Каким местом?

pkg info -dx gtk4
gtk4-4.8.0:
        libxkbcommon-1.4.1
        libXrender-0.9.10_2
        libXrandr-1.5.2
        libXinerama-1.1.4_2,1
        libXi-1.8,1
        libXfixes-6.0.0
        libXext-1.3.4,1
        libXdamage-1.1.5
        libXcursor-1.2.0
        libXcomposite-0.4.5,1
        libX11-1.7.2,1
        pango-1.50.9
        adwaita-icon-theme-40.1.1
        fontconfig-2.14.0,1
        harfbuzz-5.2.0
        freetype2-2.12.1_2
        cups-2.4.2
        hicolor-icon-theme-0.17
        python39-3.9.15
        wayland-protocols-1.26
        wayland-1.21.0
        vulkan-loader-1.3.230
        vulkan-headers-1.3.230
        tiff-4.4.0
        png-1.6.37_1
        librsvg2-rust-2.54.5
        libglvnd-1.4.0_2
        libepoxy-1.5.9
        jpeg-turbo-2.1.4
        graphene-1.10.8
        gdk-pixbuf2-2.42.9
        colord-1.3.5_2
        cairo-1.17.4_2,3
        gsettings-desktop-schemas-42.0
        glib-2.74.0,2
        gettext-runtime-0.21
        fribidi-1.0.12
        atk-2.38.0

Я уже несколько дней просто не могу её собрать из портов.

Ошибку в студию или причина в другом?

Сегодня я узнал, что циркуляшки в портах не разруливаются.

Это что-то из мира генту.

PS:

И походу им собирается.

Не используйте LLVM! ЭТО небезопасно:

Не используйте пакетную систему на FreeBSD, это небезопасно! (комментарий)

Clockwork ★★★★★
()
Последнее исправление: Clockwork (всего исправлений: 1)
Ответ на: комментарий от Clockwork

С чего бы?

С того, что при сборке гтк4 начинает скачиваться гцц11.

Можете попробовать воспроизвести.

utanho ★★★★★
() автор топика
Ответ на: комментарий от utanho

Неправда. GCC никакой версии не нужен для сборки порта gtk4 — сейчас проверил, удалив предварительно gcc11, пересобрал gtk4 со следующими опциями:

> pkg info gtk4
gtk4-4.8.2_1
Name           : gtk4
Version        : 4.8.2_1
Installed on   : Fri Nov 11 19:14:46 2022 +03
Origin         : x11-toolkits/gtk40
Architecture   : FreeBSD:13:amd64
Prefix         : /usr/local
Categories     : x11-toolkits
Licenses       : LGPL20
Maintainer     : desktop@FreeBSD.org
WWW            : https://www.gtk.org/
Comment        : Gimp Toolkit for X11 GUI (current stable version)
Options        :
	BROADWAY       : off
	COLORD         : off
	CUPS           : off
	DEBUG          : off
	FFMPEG         : on
	GSTREAMER      : off
	VULKAN         : off
	WAYLAND        : off
	X11            : on
iZEN ★★★★★
()
Ответ на: комментарий от utanho

С того, что при сборке гтк4 начинает скачиваться гцц11.

Возможно, GCC11 нужен для сборки зависимых библиотек, которые будут использоваться из Gtk4. Поэтому надо тщательнее выбирать необходимые опции сборки, чтобы не собирать никогда неиспользуемое и лишнее. А это понимание приходит только со временем.

iZEN ★★★★★
()
Ответ на: комментарий от Clockwork

Тут плакать надо, а не лайкать. Все пакетные менеджеры во фре всё делают под рутом. bapt'а тыкали рылом в его дерьмо уже множество раз. Воз и ныне там (патчи не принимают). Я из-за таких вот ко фре и не подхожу.

untitl3d
()
Последнее исправление: untitl3d (всего исправлений: 1)
Ответ на: комментарий от iZEN

Сейчас попробую.

Обноавлено:

Все равно тянет гцц11

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

Скорее всего. У вас эта зависимость уже собрана, поэтому гцц не тянется.

И вообще, откуда у вас в системе гцц?

utanho ★★★★★
() автор топика
Последнее исправление: utanho (всего исправлений: 1)
Ответ на: комментарий от untitl3d

Все пакетные менеджеры во фре всё делают под рутом.

А под Ubuntu всё делается под sudo. Что меняет?

iZEN ★★★★★
()
Ответ на: комментарий от utanho

И вообще, откуда у вас в системе гцц?

GCC нужен для рантайма некоторым программам из портов. Так же как llvm13-13.0.1 нужен для работы графической подсистемы (mesa-libs, mesa-dri), несмотря на то, что в базовой системе уже есть LLVM 14.0.5. Для сборки отдельных программ требуется ещё и llvm12-12.0.1. Да тот же Python может оказаться в нескольких ипостасях.

Итого, после установки всех необходимых программ может оказаться, что присутствуют несколько одних и тех же систем сборки и инфраструктурных рантаймов. Почистить систему от больше ненужных тулчейнов, которые нужны только для сборки, можно командой pkg autoremove. Оставшиеся, очевидно, предоставляют свой рантайм и удалению не подлежат, так как от них зависит работа других программ.

iZEN ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.