Страница 1 из 1

Freebsd 12. Переустановка apache. Union senum

Добавлено: 2018-12-24 7:14:12
als
Доброе утро, коллеги.
Давеча обновился на freebsd 12.0. С 11.2
И как-то не так все пошло. При разгребании чего не так пошло дошел до апача.
Пересобираю его из портов.
На команду make он выдает
...
unixd.c:245:25: error: variable has incomplete type 'union semun'

Посмотрел.
Файл sys/sem.h на месте. И в нем тип union semun определен.
Посмотрел unixd.c
В шапке стоит определение
#ifdef HAVE_SYS_SEM_H
#include <sys/sem.h>
#endif

Неужто HAVE_SYS_SEM_H стала ложь?
В тексте этого же unixd.c
...
#if !APR_HAVE_UNION_SEMUN
union semun {
long val;
struct semid_ds *buf;
unsigned short *array;
};
#endif
union semun ick;

Не видит apache, что есть семафоры. Прям беда. Как ему объяснить про семафоры? Или может их действительно при обновлении сдуло?

Freebsd 12. Переустановка apache. Union senum

Добавлено: 2018-12-24 8:12:12
als
В заголовке ошибка. Конечно же semun :)

Подумал я, подумал, и сейчас пересоберу world из src
Может быть и нужные библиотеки подтянуться.
А то ведь semun не один так. Еще и Socket.c тоже странно видится.

Freebsd 12. Переустановка apache. Union senum

Добавлено: 2018-12-24 14:52:22
guest
Все говорит о том что не до конца обновились, не выполнили последний freebsd-update install
- который удаляет старые библиотеки и прочий хлам.

И перед последним freebsd-update install, до пересборки портов, необходимо установить
compat11 чтобы старые порты работали, если нужен непрерывный процесс работы системы.

Freebsd 12. Переустановка apache. Union senum

Добавлено: 2018-12-24 15:27:23
als
guest писал(а):
2018-12-24 14:52:22
не выполнили последний freebsd-update install
Я тоже чувствую, что не все получилось. Однако, дошел до конца. Были перегрузки, указания freebsd-update, что запускать.

Сейчас freebsd-update install говорит, что ставить нечего. С его точки зрения дошел до конца.

Freebsd 12. Переустановка apache. Union senum

Добавлено: 2018-12-24 16:27:36
guest
Я тоже чувствую, что не все получилось. Однако, дошел до конца. Были перегрузки, указания freebsd-update, что запускать.

Сейчас freebsd-update install говорит, что ставить нечего. С его точки зрения дошел до конца.
11.2-pX
1. обновляем до последнего 11.2-patchlevel

# freebsd-update fetch
# freebsd-update install
- если install сказал что было обновление ядра
# reboot

2. обновляем до 12.0
# freebsd-update -r 12.0-RELEASE upgrade
...
- первый install должен установить новое ядро 12.0
# freebsd-update -r 12.0-RELEASE install
- reboot
- второй install установка системы 12.0
# freebsd-update install
# reboot
- теперь: portsnap или svn портов
- после этого установка compat11x и выполниться ldconfig
- и наконец можно третий freebsd-update install - выполнит удаление deprecated бинарников,
headers и библиотек

ps. Если система имеет право на простой - собственный десктоп, можно не ставить compat,
можно сделать список всего что было установлено через 'pkg info', затем удалить все через
pkg delete и далее ставить из пакетов или портов по списку или то что нужно.

pps. Если простой критичен, можно зарядить в jail сборку всего что нужно или использовать
/usr/ports/ports-mgmt/poudriere с созданием собственного репозитория, и далее на хост
системе все установить из пакетов или своего репо.

3. можно приступать к обновлению Всех пакетов
# pkg upgrade -f
или портов (пересборка всех) после прочтения /usr/ports/UPDATING
# portmaster[portupgrade]

Freebsd 12. Переустановка apache. Union senum

Добавлено: 2018-12-24 18:58:50
als
guest, спасибо за описание. Наверное пригодиться.

Я пересобрал world. Установил его. Ошибки, похоже, ушли.
Жизнь налаживается :)

Freebsd 12. Переустановка apache. Union senum

Добавлено: 2018-12-24 21:08:00
guest
ну, традиционая сборка - вещь надежная, но долгая, хотя на
нормальном оборудовании, будет существенно быстрей чем бинарный апгрейд.
Боюсь соврать, kernel на 16'и ядрах у меня собирался минут 20, система
около 1.5-2 часов, sorry, врать не буду, не помню.

Freebsd 12. Переустановка apache. Union senum

Добавлено: 2018-12-25 6:32:30
als
guest писал(а):
2018-12-24 21:08:00
хотя на
нормальном оборудовании, будет существенно быстрей чем бинарный апгрейд.
Кстати да, обратил внимание, что мир собрался по времени сопоставимо, чем бинарное обновление. Может и чуть быстрее.

Freebsd 12. Переустановка apache. Union senum

Добавлено: 2018-12-27 21:35:55
guest
Корректировка:

В случае мажорного обновления FreeBSD, те с ветки на ветку:

- первое что нужно сделать, обновить ТЕКУЩУЮ систему до последнего
patch-level, ниже пример 11.2 -> 12.0
11.2-pX
1. обновляем до последнего 11.2-patchlevel

# freebsd-update fetch
# freebsd-update install
- если install сказал что было обновление ядра
# reboot

2. обновляем до 12.0
# freebsd-update -r 12.0-RELEASE upgrade
...
- первый install должен установить новое ядро 12.0
# freebsd-update -r 12.0-RELEASE install
первый install ставит новое ядро и систему 12.0
- reboot
- второй install установка системы 12.0
# freebsd-update install
второй install ставит sources: /usr/src, share - /usr/share и man'ы
# reboot
- теперь: portsnap или svn портов
- после этого установка compat11x и выполниться ldconfig
- и наконец можно третий freebsd-update install - выполнит удаление deprecated бинарников,
headers и библиотек

ps. Если система имеет право на простой - собственный десктоп, можно не ставить compat,
можно сделать список всего что было установлено через 'pkg info', затем удалить все через
pkg delete и далее ставить из пакетов или портов по списку или то что нужно.

pps. Если простой критичен, можно зарядить в jail сборку всего что нужно или использовать
/usr/ports/ports-mgmt/poudriere с созданием собственного репозитория, и далее на хост
системе все установить из пакетов или своего репо.

3. можно приступать к обновлению Всех пакетов
# pkg upgrade -f
или портов (пересборка всех) после прочтения /usr/ports/UPDATING
# portmaster[portupgrade]

Freebsd 12. Переустановка apache. Union senum

Добавлено: 2018-12-28 6:20:17
als
Что-то я не помню, что бы после upgrade делал install.
Надо будет в следующий раз проверить.

Freebsd 12. Переустановка apache. Union senum

Добавлено: 2020-02-07 15:30:22
kerya
Столкнулся с такой же проблемой при обновлении с 11.3 до 12.1. Пересборка мира и ядра не помогла.
Апач скомпилился нормально после перекомпиляции и переустановки apr :

# portsnap fetch update ; portmaster -Dbg apr apache24

Взято отсюда
https://decomo.info/wiki/blog/2019/2019-05-31