8

Взять, к примеру, 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

4 ответа4

7

То, что вы ДЕЙСТВИТЕЛЬНО хотите, это узнать об apt-pinning. http://jaqque.sbih.org/kplug/apt-pinning.html

4

Этот пакет доступен в Debian Backports, что сделает вашу жизнь намного проще. Обычно это пакеты, извлеченные из тестирования или нестабильного (sid), и "перенесенные" в текущий стабильный выпуск.

Добавьте эту строку в ваш sources.list

deb http://backports.debian.org/debian-backports squeeze-backports main

затем запустите:

apt-get update && apt-get -t squeeze-backports install ibus-sunpinyin
1

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

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

0

Один из способов обойти это - использовать cdebootstrap для установки базовой системы sid, а затем использовать chroot для запуска нужной вам программы в новой системе.

cdebootstrap устанавливает новую систему Debian из любого дистрибутива, который вы хотите в каталоге. Затем chroot позволяет запускать программы в этом другом дистрибутиве без перезагрузки или чего-либо еще.

Вы также можете использовать mount --bind чтобы позволить chroot-системе получить доступ к вашей домашней папке, /proc и т.д.

Изнутри системы chroot, apt-get будет установлен из репозитория sid.

Для более подробного объяснения см. Https://wiki.ubuntu.com/DebootstrapChroot.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .