Если вы пользуетесь стабильным выпуском дистрибутива Debian, то знаете, что в нём присутствуют пакеты только определённой версии. Например, php 5.6. И, пока не будет обновлён сам дистрибутив в этой ветке, вы не сможете установить более свежую версию ПО…
…До тех пор, пока не подключите дополнительный, но официальный репозиторий пакетов backports. Он предоставляет более новые версии определённых пакетов. Например, если в стандартном репозитории располагается nginx версии 1.6.2, то из backports вы можете установить версию 1.9.10, включающую в себя множество необходимых улучшений.
Чтобы добавить этот репозиторий, необходимо в каталоге /etc/apt/sources.list.d/ создать файл backports.list и прописать там единственную строку:
deb http://ftp.ru.debian.org/debian jessie-backports main
Или любое другое ближайшее к вашему серверу зеркало.
Всё это дело можно выполнить одной командой:
echo -e "deb http://packages.dotdeb.org jessie allndeb-src http://packages.dotdeb.org jessie all" > /etc/apt/sources.list.d/dotdeb.list
Затем обновить список доступных пакетов: aptitude update
.
Пакеты из репозитория backports не будут устанавливаться по-умолчанию, как самые свежие версии. Их установку нужно выполнять командой:
aptitude install -t jessie-backports packagename
Где, вместо «packagename», нужно указать имя пакета.
Обновление уже установленных пакетов из ветки stable на ветку jessie-backports производится той же самой командой.
Конфликты с другими репозиториями
Конфликт может возникнуть, например, при использовании репозитория dotdeb. В моём случае, понадобилась установка только php7. Но при полном обновлении командой aptitude upgrade
из репозитория dotdeb тянется nginx другой версии.
Всё было бы неплохо, если бы не факт, что nginx в dotdeb собран без поддержки openssl 1.0.2h. А это нужно для работы ALPN.
Выход из этой ситуации следующий: для пакетов из dotdeb, которые не требуется обновлять, следует понизить приоритет. Создаём файл dotdeb в каталоге /etc/apt/preferenses.d/ и прописываем туда содержимое:
Package: nginx* Pin: origin packages.dotdeb.org Pin-Priority: -10
В примере — nginx. Но его можно заменить на имя другого пакета.
Когда вы сохраните этот файл, менеджер пакетов больше не будет предлагать обновления из репозитория dotdeb.