Как установить отдельный пакет из Debian sid?

Как установить отдельный пакет из Debian sid?

Возьмем, к примеру, 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отсутствующих пакетов.

Вот шаги:

  1. Добавьте это к /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
    
  2. Запишите это /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
    
  3. Бегатьapt-get update

  4. Установите нужный вам пакет (например 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.

Связанный контент