Jak zainstalować pojedynczy pakiet z sid Debiana?

8

Weźmy na przykład ibus-sunpinyin, którego nie ma w wydaniu squeeze. Nie zamierzam przełączać całego systemu na gałąź sid, więc chcę pobrać pojedynczy pakiet z repozytorium sid i zainstalować go w następujący sposób:

# 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
źródło
Aby pobrać pojedynczy pakiet: możesz apt-get download ...(dla apt-get 0.8.11+) lub aptitude download .... Jednak nie udało mi się również z sudo dpkg -i ibus-sunpinyin-x.x.x.debpowodu zależności sid.
Xiè Jìléi

Odpowiedzi:

1

Możesz także spróbować pobrać pakiety źródłowe z repozytorium sid i zbudować je w systemie squeeze. Możesz napotkać problemy, jeśli istnieje wiele zależności lub jeśli pakiet zależy od wersji biblioteki, która nie jest dostępna w squeeze.

Jeśli to zadziała, nie musisz utrzymywać innej dystrybucji w osobnym folderze, tak jak w przypadku ładowania początkowego.

Neil
źródło
1
apt-pinning to właściwy sposób, aby to zrobić, TBH. jaqque.sbih.org/kplug/apt-pinning.html
Rob
8

To, czego NAPRAWDĘ chcesz, to nauka o przypinaniu apt. http://jaqque.sbih.org/kplug/apt-pinning.html

Obrabować
źródło
Potrzebujesz tego, jeśli żądany pakiet nie ma backportu. W przeciwnym razie postawiłbym zakłady backports ogólnie lepiej.
d -_- b
1
Tak. Backports są znacznie bezpieczniejszym zakładem. Apt-pinning nie zawsze zadziała i czasami pociągnie o wiele więcej niż chcesz (nikt nie będzie chciał pomóc, jeśli wyciągniesz libc6 z sid!)
Rob
4

Ten pakiet jest dostępny w Backports Debiana , co znacznie ułatwi ci życie. Są to zazwyczaj pakiety pobrane z wersji testowej lub niestabilnej (sid) i „przeniesione” do bieżącej stabilnej wersji.

Dodaj ten wiersz do swojego sources.list

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

następnie uruchomić:

apt-get update && apt-get -t squeeze-backports install ibus-sunpinyin
Chad Feller
źródło
0

Jednym ze sposobów obejścia tego problemu jest cdebootstrapzainstalowanie podstawowego systemu sid, a następnie chrooturuchomienie potrzebnego programu w nowym systemie.

cdebootstrapinstaluje nowy system debian z dowolnej dystrybucji w katalogu. Następnie chrootpozwala uruchamiać programy w tej innej dystrybucji bez ponownego uruchamiania komputera lub czegokolwiek.

Możesz także użyć, mount --bindaby pozwolić chrootowanemu systemowi na dostęp do twojego folderu domowego, / proc itp.

Z systemu chrootowanego apt-get zainstaluje się z repozytorium sid.

Aby uzyskać bardziej szczegółowe wyjaśnienie, zobacz https://wiki.ubuntu.com/DebootstrapChroot .

Neil
źródło