Введение
Как вы, возможно, знаете, недавно была представлена ОС Linux Debian 9 Stretch, получившая множество замечательных обновлений: поддержка нового оборудования, улучшения в менеджере пакетов apt, улучшения системы безопасности и другие.
У наших клиентов возникает вопрос: должны ли мы продолжать работать с Debian 8 или можно как-то обновить систему 3CX на платформу Debian 9?
Разумеется можно! Прежде всего, рекомендуем попробовать ISO образ 3CX, в котором уже используется Debian 9 вместе с последней версией сервера 3CX.
Однако, если у вас уже работает сервер телефонии, и вы просто хотите обновить ОС, используйте приведенные ниже инструкции.
Обновление Debian
Данные инструкции касаются систем, использующих стоковый Debian 8 или ISO образ 3CX for Debian 8. Если вы устанавливали дополнительные пакеты или использовали систему для других задач, кроме 3CX, учитывайте это при обновлении.
Итак, приступим!
Да начала очистим apt кэш, чтобы освободить место для установки обновлений.
apt-get cleanТеперь установим последние обновления на Debian 8. Это позволит начать переход на Debian 9 с наиболее свежей сборки Debian 8 и избежать возможных проблем. Это стандартная рекомендация при обновлении.
apt -y --force-yes update
apt -y --force-yes upgradeПерейдем в репозиторий 3CX Stretch (до этого использовался репозиторий 3CX Jessie).
echo "deb http://downloads.3cx.com/downloads/debian stretch main" | tee /etc/apt/sources.list.d/3cxpbx.listКоманда sed находит все записи с именем «jessie» в /etc/apt/sources.list и заменяет его на «stretch»:
sed -i s/jessie/stretch/g /etc/apt/sources.listТеперь обновим и переиндексируем репозиторий.
apt -y --force-yes updateУдалим пакеты 3CX, чтобы начать обновление чистой системы Linux. Удаление программных пакетов 3CX не удаляет конфигурацию и данные 3CX!
apt -y --force-yes remove 3cxpbxЗапустим обновление ОС на Stretch.
apt -y --force-yes upgradeВ процессе обновления появится несколько вопросов. Если вы не имеете опыта работы с Linux, лучше всего просмотреть это видео, чтобы понять, какие опции выбрать.
Далее запустим процесс автоматического восстановления связей между зависимостями.
apt -y --force-yes dist-upgradeВ данный момент Debian обновлена, зависимости в порядке и компоненты 3CX удалены (кроме данных). Осталось разобраться с версий базы данных Postgress.

Debian Stretch поставляется в более новой версией БД Postgress (9.6), чем та, которую 3CX использовала в Debian Jessie (9.4). Сперва убедимся, что в системе установлена последняя версия Postgress.
apt -y --force-yes install postgresql-9.6 postgresql-client-9.6Останавливаем старый кластер
pg_dropcluster --stop 9.6 mainи обновляем его
pg_upgradecluster 9.4 mainУстановим остальные зависимости 3CX (libcurl).
apt -y --force-yes install libcurl3=7.38.0-4+deb8u5А теперь, когда все готово, можно установить 3CX.
apt -y --force-yes install 3cxpbx
Проверка системы и удаление лишних компонентов
Проверим, что 3CX установлена и успешно запущена. Подключитесь к интерфейсу управления и убедитесь, что все настройки сохранились, сервисы 3CX работают и т.п.
Если все в порядке, стоит удалить лишние компоненты, в частности старый кластер 9.4.
pg_dropcluster --stop 9.4 mainУдалим другие компоненты предыдущей системы. Они уже неактуальны, и вы просто освобождаете место на диске.
apt-get -y --force-yes autoremoveСнова очистим кэш пакетов, чтобы оставить побольше места для 3CX
apt-get cleanи перезапустим систему
shutdown -r nowПроверим, что система Debian обновлена (должно показать версию 9.2)
cat /etc/debian_versionПроверка версии ядра
uname -aДолжна выдать примерно такое
Linux mydebian 4.9.0-3-amd64 #1 SMP Debian 4.9.30-2+deb9u2 (2017-06-26) x86_64 GNU/Linux Готовый скрипт
Как видите, ничего сложного. Но чтобы упростить вам жизнь, мы предлагаем готовый скрипт update.sh, который сделает все это автоматически. Его также стоит использовать, если вы обслуживаете много систем 3CX.
Сохраните его на диске, а затем выполните команду, которая сделает его исполняемым,
Chmod 777 ./update.shи выполните
./update.sh
Заключение
Надеюсь, это руководство будет полезно, особенно для системных администратором с небольшим опытом работы в Linux. Я еще раз рекомендую просмотреть видеоролик, где описывается работа этого скрипта. В ролике можно включить перевод титров на русский.