воскресенье, 24 января 2016 г.

Как устанавливать программы в Debian 8 из репозиториев testing и unstable

Если вы пользуетесь Debian, то наверняка знаете, что порой может понадобиться самая свежая версия какого-либо компонента. Или та, которой нет в стабильном выпуске, но её добавили в тестируемый. Ставить ради этого другой дистрибутив, в котором свежее ПО доступно всегда, вы наверняка не станете, если уже настроили себе систему и привыкли к ней. Можно собрать нужную вам программу из исходного кода. Но это тоже не всегда может получиться. Программа может не собраться, долго собираться или вообще иметь закрытый исходный код. В таких случаях, можно установить эту программу из тестовой или нестабильной ветки Debian. Делать это нужно правильно. И о том как правильно это сделать и пойдёт речь в статье.

Как известно, Debian существует в 4 ветках (есть ещё 5, но это полуветка для разработчиков): oldstable (предыдущий стабильный выпуск), stable (текущий стабильный выпуск), testing (тестируемый, будущий стабильный) и unstable (также известный как sid, нестабильная ветка, в которой идёт постоянный поток обновлений компонентов). На данный момент, oldstable - это Wheezy, или Debian 7, stable - Debian 8 Jessie, testing - Debian 9 Stretch, ну и unstable - вечный sid. Также существует репозиторий Backports, в который переносятся свежие версии и некоторые программы, которые достаточно стабильны для stable, но не успели попасть в релиз (или просто могут быть установленны не нарушая работу системы). Но в Backports никогда не прилетят, скажем, новые версии графических окружений. И тут можно прибегнуть к установке оного из тестируемой или нестабильной ветке. Хочу обратить ваше внимание на то, что несмотря на то что это возможно, и есть способ настройки репозиториев, разработчики Debian этого не поощряют. Будьте очень внимательны устанавливая ПО из testing и unstable.

Для того чтобы при установке или обновлении программы из testing/unstable, вся система не превратилась в не пойми что, необходимо настроить приоритеты для пакетов. Более высокий приоритет означает, что пакет не заменится пакетом с низким приоритетом, если это не указать явно. Базовая система должна остаться stable. Для настройки приоритетов, существует файл под названием preferences. Давайте создадим его и впишем туда нужные настройки:

sudo nano /etc/apt/preferences

Package: *
Pin: release a=stable
Pin-Priority: 700

Package: *
Pin: release a=testing
Pin-Priority: 650

Package: *
Pin: release a=unstable
Pin-Priority: 600


Package - на какие пакеты распространяется приоритет. Звёздочка говорит что на все без исключения.
Pin - название ветки дистрибутива.
Pin-priority - собственно, приоритет. Чем он выше - тем жёстче будет закреплена ветка. Приоритет выше 1000 позволит произвести даунгрейд пакетов до той ветки, в которой он установлен. Потому если вы переборщили с экспериментами - выставляйте на stable приоритет 1001, обновляйте список пакетов и делайте dist-upgrade.

Как мы видим, репозиторий unstable у нас имеет наименьший приоритет. Возможно он вам не понадобится, но включить его нужно по той причине, что бывает программу переместили в testing, а часть её зависимостей осталась в unstable. И программа, естественно, не установится. Ок, приоритеты мы настроили. Теперь нужно подключить эти репозитории:

sudo nano /etc/apt/sources.list

Добавляем в конец следующие строки:

#Testing
deb http://mirror.yandex.ru/debian testing main contrib non-free
deb-src http://mirror.yandex.ru/debian testing main contrib non-free

#Unstable
deb http://mirror.yandex.ru/debian unstable main contrib non-free
deb-src http://mirror.yandex.ru/debian unstable main contrib non-free

Далее сохраняем и обновляем список пакетов:

sudo apt-get update

Установка программ идёт двумя способами:

sudo apt install -t testing имяпрограммы
sudo apt install имяпрограммы/testing

При первом способе установки, пакетный менеджер попытается обновить все те компоненты, которые нужны для программы. И установит её (разумеется после вашего согласия). При втором способе, пакетный менеджер попытается использовать существующие версии зависимостей. И если они не подойдут - то программу он не установит. Поэтому для более безопасной установки, рекомендуется второй способ. Ещё раз напоминаю, что этим лучше не увлекаться. Но при правильном использовании вы не только сохраните общую стабильность системы, но и получить свежие версии программ. Для более подробной информации по настройкам, наберите в терминале:

man apt_preferences

Удачи!

3 комментария:

  1. Обновил по Вашему методу в Debian 8.3 DE Cinnamon с версии 2.2.16 до 2.8.6,с небольшим дополнением. Из-за конфликта старой и новой версий, сначала purge 2.2.16, autoremove, update, и затем install -t testing cinnamon. Все OK! Спасибо!

    ОтветитьУдалить
  2. Xorg обновил, а Mesa не получается что то(точнее в терминале скачивается-обновляется но версия не меняется)

    ОтветитьУдалить
  3. Анонимный3 мая 2017 г., 17:11

    Никак не могу установить chrome-gnome-shell =(

    ОтветитьУдалить