Chci nainstalovat jeden balíček (a jeho závislosti, ale pouze do té míry, do jaké nejsou ve Wheezy uspokojivé) z Debian Jessie na můj systém Wheezy, aniž bych upgradoval „vše a kuchyňský dřez“ na verze Jessie. Konkrétně bych chtěl nainstalovat kpcli, který je k dispozici zabalený v Jessie, ale ne ve Wheezy.
Vše, co jsem našel, naznačuje, že bych měl přidat úložiště Jessie do svého seznamu zdrojů, nastavit připínání, aby vše zůstalo bez sípání, a vzít si pouze jeden balíček od jessie, a v podstatě to zapadne na své místo. Nicméně mi to nějak nesedí. Pokud vytvořím /etc/apt.d/sources.list.d/jessie.list s následujícím obsahem:
deb ftp://ftp.debian.org/debian/ jessie main
deb-src ftp://ftp.debian.org/debian/ jessie main
a poté vytvořte /etc/apt/preferences.d/jessie pomocí:
Package: *
Pin: release a=wheezy
Pin-Priority: 1001
Package: kpcli
Pin: release a=jessie
Pin-Priority: 450
a spusťte apt-get -u update
následuje apt-get -u install kpcli/jessie
, pak očekávám, že apt-get zatáhne kpcli a možná malou hrstku dalších balíčků od Jessie a zbytek mého nainstalovaného systému ponechám nedotčený. (Můj systém je plně aktuální instalace Wheezy.) Případně, pokud mám prioritu pinů příliš nízkou, očekával bych, že nic neudělá. Spíše v mém systému chce apt-get upgradovat několik stovek balíčků.
Co, přesně je potřeba nainstalovat pouze tento jediný balíček verze Jessie a ponechat zbytek mého systému Wheezy nedotčený?
Všimněte si, že v tomto konkrétním případě je software ve skutečnosti napsán v Perlu, takže se nejedná o žádnou kompilaci do binárního kódu nebo něco podobného; existuje však několik závislostí modulu Perl. Jednou z možných alternativ by tedy byla instalace .deb (staženého ručně) pomocí něčeho, co pouze (1) umožňuje specifikovat jeden místní archiv .deb, který se má nainstalovat, jako dpkg -i
a (2) zpracovává závislosti inteligentním způsobem, což je jednoduché dpkg -i
ne Nicméně přes veškeré hledání, které jsem několikrát provedl a nepodařilo se mi přijít s jednoduchým návodem, jak to udělat, by bylo skvělé obecné řešení (které funguje i pro binární, zkompilované balíčky). .
Přijatá odpověď:
Pro každý záznam (stabilní, testovací, nestabilní) máte pin s prioritou 500. Neměli byste používat pin> 1000. 1001 používám pouze tehdy, když chci něco snížit. Mám položky testing+sid+experimental specifikované v /etc/apt/sources.list
a následující /etc/apt/preferences
soubor:
Package: *
Pin: release o=Debian,a=testing
Pin-Priority: 900
Package: *
Pin: release o=Debian,a=experimental
Pin-Priority: 130
Hodnota 500 je výchozí pro nestabilní. Takže zkusme zkontrolovat iceweasel:
# apt-cache policy iceweasel
iceweasel:
Installed: (none)
Candidate: 17.0.10esr-1~deb7u1
Version table:
26.0-1 0
130 http://ftp.pl.debian.org/debian/ experimental/main amd64 Packages
24.2.0esr-1 0
500 http://ftp.pl.debian.org/debian/ sid/main amd64 Packages
17.0.10esr-1~deb7u1 0
900 http://ftp.pl.debian.org/debian/ testing/main amd64 Packages
Pokud bych se tedy pokusil nainstalovat iceweasel, stáhlo by se z testovací větve, protože má nejvyšší prioritu.
Související:Vlastní rozložení xkb, ve kterém jedna klávesa vytvoří dva body kódu unicode?Zkuste změnit priority na:
Package: *
Pin: release a=wheezy
Pin-Priority: 900
Package: kpcli
Pin: release a=jessie
Pin-Priority: 910