Обновляем приложения, установленные через pkg в клетку

Dec 22, 2016 17:57

После обновления самой клетки-jail рекомендуется обновить и софт в ней

[Зачем?!]Вопрос зачем - не такой очевидный. Ну вроде как новее-лучше. Устраняются найденные уязвимости... Но на практике бывает и к худшему. К примеру qBittorrent то пропадал то оживал. При этом, напомню, обычно, почти всегда то есть, клетки способны нормально работать под управлением хоста другой версии. Так что перед апгрейдом есть хорошая мысль клетку бекапить. Средствами zfs снапшотов или сматывать tar чрез TheBrig - на ваш вкус.

Само обновление в предположении, что софт ставили пекеджами, через pkg, в принципе простое
Смотрим активные клетки
nas4free ~/ root~$ jls
JID IP Address Hostname Path
1 192.168.1.55 owncloud /mnt/Pool/Ext/Finch/usr/jails/owncloud
2 192.168.1.54 tm /mnt/Pool/Ext/Finch/usr/jails/tm
4 192.168.1.64 torrentmonitor.local /mnt/Pool/Ext/Jails/torrentmonitor
5 192.168.1.32 qBittorrent.local /mnt/Pool/Ext/Jails/qBittorrent

Выбираем нужную, входим в неё по номеру (пусть - 4)
nas4free ~/ root~$ jexec 4 tcsh
root@torrentmonitor:/ #

Принудительно обновляем сначала pkg
root@torrentmonitor:/ # pkg-static install -f pkg
-бл-бла-

Затем принудительно обновляем базу данных об установленном софте
root@torrentmonitor:/ # pkg update -f
root@torrentmonitor:/ # pkg upgrade -f

Вот только на этот раз, при переходе от 10.3 к 11.0 вылезла странная глупость - конфликт версии библиотеки
Проявляется при любом вызове pkg вот так
root@torrentmonitor:/ # pkg
Shared object "libcrypto.so.8" not found, required by "libarchive.so.6"

Костыль состоит в том, чтобы
либо (вариант 1) скопировать нужную версию из хоста в каждую клетку (Капитан напоминает, что в примере ниже надо своё расположение клетки поставить)
nas4free ~/ root~$ cp -a /lib/libcrypto.so.8 /mnt/Pool/Ext/Jails/torrentmonitor/lib
nas4free ~/ root~$ jexec 4 tcsh
root@torrentmonitor:/ # ls -la /lib
total 13189
drwxr-xr-x 3 root wheel 52 Dec 22 13:12 .
drwxr-xr-x 19 root wheel 25 Aug 15 22:21 ..
--blah-blah--
-r--r--r-- 1 root wheel 184104 Aug 22 2015 libcam.so.6
-r--r--r-- 1 root wheel 62040 Aug 22 2015 libcrypt.so.5
-r--r--r-- 1 root wheel 2043280 Oct 29 22:33 libcrypto.so.7
-rwxr-xr-x 1 root wheel 2528984 Dec 1 17:38 libcrypto.so.8
-r--r--r-- 1 root wheel 62680 Aug 22 2015 libctf.so.2

root@torrentmonitor:/ # chmod 444 /lib/libcrypto.so.8

либо (вариант 2) внаглую заявить, что 7 версия библиотеки и есть 8-я

root@torrentmonitor:/ # ln -s /lib/libcrypto.so.7 /lib/libcrypto.so.8

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

jail, nas, nas4free

Previous post Next post
Up