Как установить некоторые пакеты из «нестабильного» Debian на компьютер с «стабильным» Debian?

14

На компьютере под управлением «стабильного» Debian при попытке установить пакет, который находится в списке нестабильных версий на веб-сайте Debian с помощью aptitude install <package>/unstableкоманды, я получаю вывод, подобный следующему:

Couldn't find any package whose name or description matched "<package>"
Couldn't find any package whose name or description matched "<package>"
No packages will be installed, upgraded, or removed.
0 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B of archives. After unpacking 0 B will be used.

Что я могу сделать, чтобы иметь возможность устанавливать "нестабильные" пакеты? (Я думал о добавлении репозитория в sources.list, но я не хочу, чтобы все начинало устанавливаться с «нестабильной»).

Итак: как я могу установить нестабильные пакеты (с использованием /stableв конце имени пакета)?

Abbafei
источник
См. Unix.stackexchange.com/q/112157/4671 для подробного ответа на этот вопрос.
Фахим Митха
1
Короткая версия: не надо. Более длинная версия: не делайте этого . Используйте бэкпорт, если нужно, но не смешивайте стабильный / нестабильный.
Шадур
Я считаю, что это называется «FrankenDebian»: «Стабильность Debian не следует сочетать с другими выпусками. Если вы пытаетесь установить программное обеспечение, которое недоступно в текущем выпуске стабильного Debian, не стоит добавлять репозитории для другие выпуски Debian. Проблемы могут возникнуть не сразу, а при следующей установке обновлений ». Из Не ломай Debian .
Малан

Ответы:

29

Вы должны быть unstableперечислены в вашем sources.list. В противном случае apt просто не найдет пакет.

Чтобы избежать unstableпосылки пакетов, у вас есть два способа.

  • Самый простой способ - добавить Default-Releaseпредложение в /etc/apt/apt.conf(или в файл /etc/apt/apt.conf.d/, например, в /etc/apt/apt.conf.d/my-default-release).

    APT::Default-Release "stable";
    
  • Сложный путь - использовать настройки APT . В /etc/apt/preferences:

    Package: *
    Pin: release o=Debian,a=unstable
    Pin-Priority: 10
    

Обратите внимание, что на протяжении большей части жизни выпуска Debian нецелесообразно устанавливать большинство пакетов из нестабильных в стабильной системе, потому что они будут извлекать множество библиотек из нестабильных, и в итоге вы получите нестабильную систему. Если вы хотите работать нестабильно, это избавит вас от проблем, связанных только с нестабильным (или тестированием). Лучше придерживаться одного релиза или тестировать время от времени нестабильно, если вы чувствуете смелость. И, конечно же, в производственной системе придерживаться стабильной.

Если вы работаете стабильно, но вам нужна более новая версия одного приложения, сначала посмотрите, есть ли для них бэкпорт . В противном случае, если вы хотите установить пакет из нестабильного пакета, но не должны извлекать его зависимости, попробуйте получить исходный код из нестабильного и перекомпилировать.

apt-get source foo=1.42
apt-get build-dep foo  # pulls the dependencies of foo in stable but that's often good enough
dpkg-source -x foo_1.42.dsc
cd foo-1.4210126#10126
dpkg-buildpackage -rfakeroot -us -uc -b -nc
dpkg -i ../foo_1.42_$(arch).deb
Жиль "ТАК - прекрати быть злым"
источник
2
+1 за упоминание бэкпортов, но вы действительно должны более решительно указать, что смешивание стабильного / нестабильного действительно чертовски опасно, и если вы не знаете, что делаете, вы не должны делать это в производственной системе .
Шадур