it-swarm-eu.dev

Jak zabránit aktualizaci konkrétního balíčku?

Z důvodu chyba # 693758 Chtěl bych zabránit apt-get upgrade a Update Manager z aktualizace balíčku „libgtk2.0-0“.

Jak toho lze dosáhnout?

402
Ivan

Držení

Existují čtyři způsoby, jak zadržet balíčky: s dpkg, apt, aptitude nebo dselect.

dpkg

Pozastavte balíček:

echo "<package-name> hold" | Sudo dpkg --set-selections

Odebrat blokování:

echo "<package-name> install" | Sudo dpkg --set-selections

Zobrazit stav vašich balíčků:

dpkg --get-selections

Zobrazit stav jednoho balíčku:

dpkg --get-selections | grep "<package-name>"

apt

Držte balíček:

Sudo apt-mark hold <package-name>

Odebrat blokování:

Sudo apt-mark unhold <package-name>

Zobrazit všechny pozastavené balíčky:

Sudo apt-mark showhold

dselect

Pomocí dselect přejděte na obrazovku [S] elect, najděte balíček, který chcete držet v jeho současném stavu, a stiskněte = nebo H. Změny se projeví okamžitě po opuštění obrazovky [S] elect.


Následující přístupy jsou omezeny v tom, že uzamčení/držení balíčku v aptitude nebo synaptic neovlivní apt-get/apt.

aptitude

Držte balíček:

Sudo aptitude hold <package-name>

Odebrat blokování:

Sudo aptitude unhold <package-name>

Zamykání pomocí Správce balíků Synaptic

Přejděte na Synaptic Package Manager (Systém> Správa> Synaptic Package Manager).

Klikněte na tlačítko pro vyhledávání a zadejte název balíčku.

Když najdete balíček, vyberte jej a přejděte do nabídky Package a vyberte Lock Version.

Synaptic menu

Tento balíček se nyní nezobrazí ve správci aktualizací a nebude aktualizován.

588
hhlp

Přidržení balíčku „foo“:

echo "foo hold" | dpkg --set-selections

Ve vašem případě zastavíme víno:

Sudo -i
echo "wine hold" | dpkg --set-selections

Postup odebrání blokování:

Sudo -i
echo "wine install" | dpkg --set-selections
44
Panther

Hledal jsem totéž a po mnoha průzkumech jsem zjistil, že pomocí následující syntaxe můžete zakázat jednu konkrétní verzi, ale povolit další aktualizaci:

 Balíček: compiz-plugins-main 
 Pin: version 1: 0.9.7.0 ~ bzr19-0ubuntu10.1 
 Pin-Priority: -1 

To přejde do souboru/etc/apt/preferences.

35
soger

Nainstalujte synaptic pomocí Sudo apt-get install synaptic.

Spustit pomocí gksudo synaptic a do vyhledávacího pole vyhledejte balíček, který chcete zamknout, tj .: gedit

enter image description here

Z nabídky balíčku vyberte Zamknout verzi:

enter image description here

A to je vše, verze aktuálně nainstalovaná v době zámku zůstane nainstalována i během upgradů.

20
Bruno Pereira

Zabránění instalace balíčku se nazývá „držení balíčku“ a je velmi jednoduché:

echo název_balíku hold | dpkg --set-selections 

... kde * název_balíku * je název balíčku, kterému chcete zabránit v instalaci.

Poznámka: výše uvedený příkaz předpokládá oprávnění root. Jinými slovy, pravděpodobně budete muset zadat Sudo su před spuštěním.

16
RobotHumans

Od nějakého času apt-get je nahrazeno apt, takže například chci zabránit Firefoxu v aktualizaci na verzi nad 56, protože mnoho doplňků, jako „Skupiny karet“ ne pracovat s novým Firefoxem 57 (viz „Aktualizace WebExtensions“).

Je možné držet více než jeden balíček s jedním příkazem a používat zástupné znaky.

Zabraňte aktualizaci Firefoxu

Sudo apt-mark hold firefox firefox-locale-*

Pokud byste se měli rozhodnout je později opomenout, byl by to příkaz:

Sudo apt-mark unhold firefox firefox-locale-*
7
rubo77

Vše, co jste kdy chtěli vědět o balíčcích „hold“ a „pinning“ do konkrétních verzí: https://help.ubuntu.com/community/PinningHowto

5
Jeff Ferland

Jsem synaptický, můžete zmrazit verzi konkrétního balíčku. Nejsem si stopercentně jistý, zda to změní apt-get, ale definitivně to zastaví správce aktualizací.

Chcete-li zmrazit balíček, vyberte jej v synaptické podobě, poté otevřete nabídku balíčku a vyberte zmrazenou verzi.

Snad to pomůže

edit: Toto otázka 16668 se zabývá podobnou situací

4
Allan

Viz chyby # 75332 , # 158981 a # 72806 .

Shrnutí je, že pozdržení na úrovni apt-get/aptitude nespouští stav pozdržení v dpkg (viz zejména chyba 72806) a správce aktualizací přečte stav z dpkg.

řešení je spuštěno jako root: echo "package hold" | dpkg --set-selections

3
jasper

Na aptitude můžete použít „specifické přepsání“, například:

aptitude reinstall ~i Oracle-Java8-jre:

Jedná se o jednorázové použití (neukládáno pro budoucí opětovné instalace), udržení konkrétního potlačení, k přeinstalaci všech balíčků ve vašem systému, ale nikoli Oracle-Java8-jre.

Pokud použijete přepsání specifické pro udržení, balíček se na okamžik nachází ve stavu udržení, aptitude se jej nepokusí nainstalovat.

Velmi dobrá věc, pokud si myslíte, že váš systém byl nějakým způsobem ohrožen.

2
cabonamigo

Přidávání podrobností k komentářům @ soger ve vztahu k Ubuntu 16.04.

Ubuntu 16.04 ve výchozím nastavení nemá existující soubor/etc/apt/preferences. Pokud jej nemáte, vytvořte nový soubor a vyplňte jej stanzou, jak je výše popsáno v @soger, aby byl daný balíček a jeho závislosti vyloučen z aktualizací.

Poté spusťte apt update a vy jste GTG. : 0)

Například mám server Ubuntu 16.04.5 LTS s integrovanou grafickou kartou Intel a kartou NVidia. Jako jediná použitá byla použita karta NVidia. Server také používá ovladače CUDA. Měl jsem problém, kde apt trval na tom

va-driver-all

(Ovladače Intel) vyžadovala aktualizaci, ale nedokázala určit, kterou verzi nainstalovat. To mě přivádělo k šílenství a stejně jsem ovladače Intel nepotřeboval. Vložil jsem tento text do souboru preferencí a vyprázdnil apt, problém vyřešen.

Package: va-driver-all
Pin: release *
Pin-Priority: -1
1
MrPotatoHead

Pokud máte nainstalovánu Synaptic, můžete vybrat balíček a zabránit jeho aktualizaci pomocí nabídky Package -> Lock Version.

Můžete nainstalovat Synaptic pomocí Sudo apt-get install synaptic. Osobně to považuji za užitečnější než softwarové centrum ... pak jsem zase docela stará škola. :)

1
dinchamion

Někdy je možné, že budete chtít zadržet všechny aktuálně nainstalované balíčky. Zde je návod.

Nejprve uložte aktuální stav, abyste mohli vrátit zpět:

dpkg --get-selections > current_selections.txt

Poté zadržte všechny balíčky:

dpkg --get-selections | sed -r "s/\tinstall/hold/" |dpkg --set-selections

Nakonec, když se chcete vrátit zpět do předchozího stavu:

dpkg --set-selections < current_selections.txt

Jedním případem použití může být při vytváření snímku VM nebo Amazon AMI snapshot) pro migraci z QA do produkčního prostředí.

0
Jennifer Wood