Возьмем, к примеру, ibus-sunpinyin, которого нет в релизе squeeze. Я не собираюсь переключать всю систему на ветку sid, поэтому я хочу загрузить один пакет из репозитория sid и установить его следующим образом:
# Add the sid repository
sudo mv /tmp/sid.list /etc/apt/sources.list.d/
# Error: can't install because version conflicts of libc6:
# sudo apt-get install ibus-sunpinyin
# This is ok but it will upgrade a lot of mess from sid branch:
# sudo apt-get upgrade ibus-sunpinyin
# So, instead of apt-get install/upgrade, let me download & install the single package.
# However, this errored again because of version conflicts of libc6:
# apt-get install --download-only ibus-sunpinyin
## THEN, WHAT CAN I DO? ##
# Remove the sid repository.
sudo mv /etc/apt/sources.list.d/sid.list /tmp
# Install the single package.
sudo dpkg -i ./ibus-sunpinyin-x.x.x.deb
решение1
Вы также можете попробовать загрузить исходные пакеты из репозитория sid и собрать их в своей системе squeeze. Вы можете столкнуться с проблемами, если зависимостей много или если пакет зависит от версии библиотеки, которая недоступна в squeeze.
Если это сработает, то вам не придется хранить еще один дистрибутив в отдельной папке, как это было бы при использовании метода самозагрузки.
решение2
Что вам ДЕЙСТВИТЕЛЬНО нужно, так это узнать об apt-pinning.http://jaqque.sbih.org/kplug/apt-pinning.html
решение3
Один из простых способов сделать это — установить настройки таким образом, чтобы система использовала stable
большинство пакетов, но возвращалась к ним testing
для unstable
отсутствующих пакетов.
Вот шаги:
Добавьте это к
/etc/apt/sources.list
:deb http://deb.debian.org/debian buster main deb http://deb.debian.org/debian testing main non-free contrib deb http://deb.debian.org/debian unstable main non-free contrib
Запишите это
/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
Бегать
apt-get update
Установите нужный вам пакет (например
apt-get install ibus-sunpinyin
, )
PS: Вы можете принудительно установитьнестабильныйпакет сapt-get install <package>/unstable
решение4
Один из способов обойти эту проблему — использовать cdebootstrap
для установки базовой системы sid, а затем использовать ее chroot
для запуска нужной вам программы в новой системе.
cdebootstrap
устанавливает новую систему Debian из любого дистрибутива, который вы хотите, в каталог. Затем chroot
позволяет вам запускать программы в этом другом дистрибутиве без перезагрузки или чего-либо еще.
Вы также можете использовать его mount --bind
, чтобы разрешить chroot-системе получать доступ к вашей домашней папке, /proc и т. д.
В системе с chroot-окружением apt-get выполнит установку из репозитория sid.
Более подробное объяснение см.https://wiki.ubuntu.com/DebootstrapChroot.