Архив рубрики «FreeBSD»
nextcloud: обновление
Взялся тут обновлять свой nextcloud. Изначально стояла версия 20.0.4, в портах уже 23.0.4. Как выяснилось, обновляться через несколько мажорных версий нельзя, пришлось с помощью pjrtdowngrade сначала получить и установить 21.0.5, а вот 22 версию portdowngrade уже не смог найти, пришлось качать дерево портов от 12.3-release и собирать оттуда. В результате уже из портов накатил 23 версию, все более-менее нормально, однако вылезло два косяка. При обновлении до 22 версии не запускался occ с сообщением
1 | 1038 Out of sort memory, consider increasing server sort buffer size |
Вылечилось выполнением запроса в консоли mysql:
1 | SET GLOBAL sort_buffer_size=256000000 |
Однако, действует до перезагрузки сервера. Чтобы сделать изменения постоянными, добавляем в файл my.cnf (у меня это /usr/local/etc/mysql/my.cnf)
1 | sort_buffer_size = 256M |
Кроме того, получил ошибку
1 | PHP Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 20480 bytes) |
Вылечилось добавлением строчки
apc.enable_cli=1
в файл /usr/local//etc/php/7.4/cli/conf.d/20-apcu.ini
Google календарь — новшества
Приделывал я себе как-то Google calendar на рабочий стол во FreeBSD и все отлично работало, описание есть в этой статье: Google календарь во FreeBSD.
Однако, затеялся я тут обновить себе все порты, и оказалось, что синтаксис запуска gcalcli немножко изменился: вместо параметра —nolineart появился параметр —lineart, у которого значение может быть fancy, unicode, ascii. Параметр —military теперь обязательно должен следовать после указания временного интервала, иначе не распознается, а у calw кроме количества выводимых недель появился параметр начала, задаваемый числом месяца, без него выводится одна неделя и хоть ты тресни, пришлось использовать awk. Теперь строчка вызова для conky выглядит вот так:
1 | ${execi 300 gcalcli --nocolor --lineart=unicode calw `date|awk '{-f " "; print $2}'` 2 --military -w 12} |
Nextcloud и vulnxml
Решил попробовать Nextcloud,
При сборке из портов вылезла ошибка:
1 | pkg-static: unable to open vulnxml file (null): Invalid argument |
И дале жалобы на то, что порт имеет уязвимости и надо обновить дерево портов, что, естественно, не возымело.
Гугление интернетов выдало совет сделать:
1 | cp /usr/ports/security/vuxml/vuln.xml /var/db/pkg/ |
Попробовал — помогло. Ура.
Unexpected soft update inconsistence. The following disk blocs could not be read.
Просто задрали доблестные электрики. Выключают электричество по пять раз на дню. После одного из выключений машина выпала в однопользовательский режим по причине неполадок с файловой системой корневого раздела. fsck выдал следующую ошибку:
1 | Unexpected soft update inconsistence. The following disk blocs could not be read. |
После этого сообщение «file system still dirty» и предложение перезапустит fsck, что приводит к тому же результату. Прочитать остальную часть записи »
Туннель внутри туннеля (pptp over pptp)
Перестал у меня как-то на рабочей машине работать pptp туннель до конторы, в которой я немножко админю. А так-как там все настроено и работает как надо, и из дома доступ сохранился, то руки никак не доходили разобраться. Тогда я не связал этот отвал и обновление до FreeBSD 12. Надо заметить, что у нас доступ организован так, что в интернет я выхожу с помощью pptp туннеля, а потом внутри этого туннеля уже у меня поднимаются pptp туннели до нужных мне локальных сетей. Прочитать остальную часть записи »
libtool: error: required file ‘./ltmain.sh’ not found
Давно не брал я в руки шашек. А тут пришлось. С полгода назад уже обновил FreeBSD с десятки сразу до двенадцатой, и попервой все было хорошо, а тут что-то после чего-то стали порты падать на сборке с ошибкой
1 | configure.ac:35: error: required file './ltmain.sh' not found |
Репу почесал, интернеты почитал, единственное распространенное обсуждение проблемы нашел в доброй старой фидошной ru.unix.bsd, радостно туда полез и увидел, что умные дядьки советуют человеку сначала переустановит libtool, а после того, как ничего не получилось, переустановить систему. Что человек и сделал. А мне лень и неохота, поэтому я полез копаться. Накопал, что этот ltmain.sh лежит где ему и положено: в /usr/local/share/libtool/build-aux
Ради интереса запустил его, получил ошибку
1 | libtool: Version mismatch error. This is libtool 2.4.6, but the<br> libtool: definition of this LT_INIT comes from an older release.<br> libtool: You should recreate aclocal.m4 with macros from libtool 2.4.6<br> libtool: and run autoconf again. |
Пошарился по скриптам, как советуют, libtoolize, autoconf, autoreconf etc, ничего не помогло, тогда сделал следующие вещи:
Удалил libtool, удалил его папку, поставил по новой:
1 2 3 4 | $ cd /usr/ports/devel/libtool $ sudo make deinstall $ sudo rm -r /usr/local/share/libtool/ $ sudo portmaster -d devel/libtool |
И все заработало.
mysql-server: пароль root
Нынче mysql сервер устанавливается сразу с назначенным паролем для root. Найти его можно в
1 | /root/.mysql_secret |
по идее, если запустить mysql от рута, то войдем без ввода пароля:
1 2 | $ sudo mysql root@localhost [(none)]> |
После этого меняем пароль на привычный:
1 2 | root@localhost [(none)]> use mysql root@localhost [mysql]> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password'; |
И, по желанию, отключаем ему expire, иначе, если он устареет, надо будет его менять с бОльшим количеством телодвижений. Однако, не забываем тогда иногда его менять во избежание всякого рода инцестов.
1 | root@localhost [mysql]> ALTER USER ‘root’@’localhost’ PASSWORD EXPIRE NEVER; |
Google календарь во FreeBSD
После прочтения этой статьи, прочитайте еще и эту: «Google календарь — новшества». В ней содержатся обновления, без который ничего не заработает.
Стал я пользоваться Google calendar, потому-что удобно, он всегда в кармане в телефоне и даже на windows календарь умеет туда смотреть и напоминать всякое. Собственно, эта вот штука во вражеской ОС и натолкнула меня на хотение чего-нибудь такого же на FreeBSD. Поскакав по портам, нашел /usr/ports/gcalcli — забавная штука, выводящая календарь в консоль. После установки доступна масса команд, например: — gcalcli calw Nx, где Nx — количество недель (gcalcli calw 2 выведет две ближайшие недели); gcalcli calm — выводит месяц; gcalcli remind Nx (Nx — количество минут) оповестит о предстоящих в ближайшие Nx минут делах, о этом позднее.
Собственно, устанавливаем, запускаем gcalcli, при первом запуске он откроет нам браузер с входом в аккаунт google, где надо авторизоваться и разрешить ему доступ к календарю. Дальше начинаем работать. Прочитать остальную часть записи »
serviio: Could not lock User prefs. Unix error code 2.
Пришлось тут поставить dlna-сервер serviio. Из коробки странно глючит, то работает, то нет. В лог пишет
1 | [PluginCompilerThread] Plugins folder '/var/db/serviio/home/plugins' does not exist. No plugins will be compiled. |
и
1 2 | [prefs] Could not lock User prefs. Unix error code 2. [prefs] Couldn't flush user prefs: java.util.prefs.BackingStoreException: Couldn't get file lock. |
Все дело в том, что порт при установке хотя и создает пользователя dlna, под которым все это дело крутится, но создает его без домашней папки, отсюда грабли. На wiki проекта есть howto, как установить его под FreeBSD, но к реальности оно имеет примерно то же отношение, что и Минские соглашения, так что берем в руки напильних, к счастью, небольшой, и подпиливаем:
1 2 3 4 | # mkdir /var/db/serviio/home/plugins # chown dlna:wheel /var/db/serviio/home/plugins # pw usermod dlna -m -d /var/db/serviio/home # /usr/local/etc/rc.d/serviio restart |
Радуемся жизни.
graphics/opennurbs ошибка сборки
Обновил систему до 11, стал пересобирать порты, graphics/opennurbs вылетает с ошибкой, не находит у себя в рабочей директории порта что-то, связанное с zlib. Гугление дает результат:
http://freebsd-ports-bugs.freebsd.narkive.com/5wc6l4TD/bug-216212-graphics-opennurbs
В двух словах, находим в /usr/ports/graphics/opennurbs/Makefile следующее:
1 2 3 | ${MV} ${WRKSRC}/opennurbs_version.h.tmp ${WRKSRC}/opennurbs_version.h ${MV} ${WRKSRC}/zlib ${WRKSRC}/zlib_ ${CP} -R ${SRC_BASE}/lib/libz ${WRKSRC}/zlib |
и последнюю строчку меняем на
1 | ${CP} -R ${SRC_BASE}/contrib/zlib ${WRKSRC}/zlib |
После этой процедуры все собирается и устанавливается.
Записываю, чтобы потом о5 не гуглить.