Архив рубрики «software»

PostHeaderIcon RuTorrent и PHP8

После обновления php с 5.7 до 8.1 перестали добавляться закачки в RuTorrent  с ошибкой в логе

2023/01/09 06:48:24 [error] 12716#100281: *1667 FastCGI sent in stderr: «PHP message: PHP Warning: Cannot modify
header information — headers already sent in /usr/local/www/rutorrent/php/addtorrent.php on line 135PHP message:
PHP Warning: Cannot modify header information — headers already sent in /usr/local/www/rutorrent/php/addtorrent
.php on line 138″ while reading upstream, client: 91.202.207.206, server: rtorrent.skielf.local, request: «POST /
php/addtorrent.php?dir_edit=%2Fusr%2Fhome%2Frtorrent%2Fdownloads%2F%D0%A4%D0%B8%D0%BB%D1%8C%D0%BC%D1%8B%2F%D0%91%
D0%BE%D0%B5%D0%B2%D0%B8%D0%BA%2F HTTP/1.1″, upstream: «fastcgi://127.0.0.1:9000», host: «rtorrent.skielf.local»,
referrer: «http://rtorrent.skielf.local/»

Полечилось втыканием в php.ini

short_open_tag = on

Кроме того, переполз с apache на nginx, стал ловить ошибку

2023/01/09 11:25:01 [error] 19585#100327: *13 FastCGI sent in stderr: «PHP message: PHP Warning: File upload err
or — unable to create a temporary file in Unknown on line 0″ while reading response header from upstream, client:
91.202.207.206, server: rtorrent.skielf.local, request: «POST /php/addtorrent.php?dir_edit=%2Fusr%2Fhome%2Frtorr
ent%2Fdownloads%2F HTTP/1.1″, upstream: «fastcgi://127.0.0.1:9000», host: «rtorrent.skielf.local», referrer: «htt
p://rtorrent.skielf.local/»

Решилось созданием папки /tmp/http_upload, chown www:www /tmp/http_upload  и добавлением в /usr/local/etc/php-fpm.d/www.conf (ну это у меня так, у вас может быть в другом файле описаны www сервисы)

следующих строк:

env[TMP] = /tmp/http_upload
env[TMPDIR] = /tmp/http_upload
env[TEMP] = /tmp/http_upload

PostHeaderIcon Nextcloud и vulnxml

Решил попробовать Nextcloud,

При сборке из портов вылезла ошибка:

pkg-static: unable to open vulnxml file (null): Invalid argument

И дале жалобы на то, что порт имеет уязвимости и надо обновить дерево портов, что,  естественно, не возымело.

Гугление интернетов выдало совет сделать:

cp /usr/ports/security/vuxml/vuln.xml /var/db/pkg/

Попробовал — помогло. Ура.

PostHeaderIcon libtool: error: required file ‘./ltmain.sh’ not found

Давно не брал я в руки шашек. А тут пришлось. С полгода назад уже обновил FreeBSD с десятки сразу до двенадцатой, и попервой все было хорошо, а тут что-то после чего-то стали порты падать на сборке с ошибкой

configure.ac:35: error: required file './ltmain.sh' not found

Репу почесал, интернеты почитал, единственное распространенное обсуждение проблемы нашел в доброй старой фидошной ru.unix.bsd, радостно туда полез и увидел, что умные дядьки советуют человеку сначала переустановит libtool, а после того, как ничего не получилось, переустановить систему. Что человек и сделал. А мне лень и неохота, поэтому я полез копаться. Накопал, что этот ltmain.sh лежит где ему и положено: в /usr/local/share/libtool/build-aux

Ради интереса запустил его, получил ошибку

libtool: Version mismatch error. This is libtool 2.4.6, but the
libtool: definition of this LT_INIT comes from an older release.
libtool: You should recreate aclocal.m4 with macros from libtool 2.4.6
libtool: and run autoconf again.

Пошарился по скриптам, как советуют, libtoolize, autoconf, autoreconf etc, ничего не помогло, тогда сделал следующие вещи:

Удалил libtool, удалил его папку, поставил по новой:

$ cd /usr/ports/devel/libtool $ sudo make deinstall $ sudo rm -r /usr/local/share/libtool/ $ sudo portmaster -d devel/libtool

И все заработало.

PostHeaderIcon 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, где надо авторизоваться и разрешить ему доступ к календарю. Дальше начинаем работать. Прочитать остальную часть записи »

PostHeaderIcon serviio: Could not lock User prefs. Unix error code 2.

Пришлось тут поставить dlna-сервер serviio. Из коробки странно глючит, то работает, то нет. В лог пишет

[PluginCompilerThread] Plugins folder '/var/db/serviio/home/plugins' does not exist. No plugins will be compiled.

и

[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, но к реальности оно имеет примерно то же отношение, что и Минские соглашения, так что берем в руки напильних, к счастью, небольшой, и подпиливаем:

# 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

Радуемся жизни.

PostHeaderIcon graphics/opennurbs ошибка сборки

Обновил систему до 11, стал пересобирать порты, graphics/opennurbs вылетает с ошибкой, не находит у себя в рабочей директории порта что-то, связанное с zlib. Гугление дает результат:

http://freebsd-ports-bugs.freebsd.narkive.com/5wc6l4TD/bug-216212-graphics-opennurbs

В двух словах, находим в /usr/ports/graphics/opennurbs/Makefile следующее:

${MV} ${WRKSRC}/opennurbs_version.h.tmp ${WRKSRC}/opennurbs_version.h
${MV} ${WRKSRC}/zlib ${WRKSRC}/zlib_
${CP} -R ${SRC_BASE}/lib/libz ${WRKSRC}/zlib

и последнюю строчку меняем на

${CP} -R ${SRC_BASE}/contrib/zlib ${WRKSRC}/zlib

После этой процедуры все собирается и устанавливается.
Записываю, чтобы потом о5 не гуглить.

PostHeaderIcon Какие пакеты зависят от бибилиотеки; sed: /usr/local/lib/libffi.la: No such file or directory

Обновил себе систему с 9.2 до 10.1.
Решил пересобрать порты. В первой десятке пересобирается graphics/cairo, пересборка падает с ошибкой:

sed: /usr/local/lib/libffi.la: No such file or directory
libtool: link: `/usr/local/lib/libffi.la' is not a valid libtool archive
*** [libcairo-gobject.la] Error code

Гугление приводит к битью головой об стенку, ибо совершенно не находилось ничего нужного. В общем-то, ясно, что какой-то порт старенький просит этой библиотеки, которой уже нет из идеологическх соображений. В итоге все решилось портмастером, который я попросил пересобрать cairo рекурсивно с пересборкой всего, от чего оно зависит, вот так:
Прочитать остальную часть записи »

PostHeaderIcon PHP 5.4 (и старше) и модуль APACHE

Жить стало веселее.
Собирая очередной раз связку apache 2.4 и php 5 был озадачен отсутствием в конфиге php модуля для apache.
Чтение /usr/ports/UPDATING пролило свет на это дело . Оказывается, модуль для apache у нас теперь лежит в www/mod_php. Для нормально работы он требует, чтобы php была собрана с опцией zts. Если PHP уже была установлена, то для обновления следует обновить опции для lang/php* (сделать make config), переустановить lang/php* и установить www/mod_php* (вместо * ставим свою версию php).

PostHeaderIcon Chrome во FreeBSD и белый экран

Пересобрал под FreeBSD Chrome. При запуске он вместо сайтов показывает белую страницу. Почитал окончание вывода сборки — все просто. он хочет, чтобы переменная kern.ipc.shm_allow_removed была установлена в 1.

$ sudo sysctl kern.ipc.shm_allow_removed=1

И в /etc/sysctl помещаем

kern.ipc.shm_allow_removed=1

Все работает.

PostHeaderIcon ls: сортировка вывода

Ну, это так, полезная мелочь на всякий случай. Бывает нужна.


#от самого нового к самому старому
ls -lt
ls -la | grep 'Условие' | sort -k 6 -r
#от самого старого к самому новому
ls -ltr
ls -l | grep 'Условие' | sort -k 6

PR-CY.ru