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

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
Xiè Jìléi
источник
Чтобы загрузить один пакет: вы можете apt-get download ...(для apt-get 0.8.11+) или aptitude download .... Тем не менее, я также не смог sudo dpkg -i ibus-sunpinyin-x.x.x.debиз-за sid зависимостей.
Xiè Jìléi

Ответы:

1

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

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

Нил
источник
1
apt-pinning - правильный способ сделать это, TBH. jaqque.sbih.org/kplug/apt-pinning.html
Роб
9

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

обкрадывать
источник
Это нужно, если у пакета, который вы хотите, нет бэкпорта. В противном случае я бы сделал ставку на бэкпорты, как правило, лучше.
d -_- б
1
Да. Backports гораздо безопаснее. Apt-pinning не всегда работает и иногда тянет намного больше, чем вы хотите (никто не захочет помочь, если вы извлечете libc6 из sid!)
Роб
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
Чад Феллер
источник
0

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

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

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

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

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

Нил
источник