Vraag Hoe kan het updaten van een specifiek pakket worden voorkomen?


Omdat bug # 693758 Ik wil het graag voorkomen apt-get upgrade en Update Manager van het bijwerken van het pakket "libgtk2.0-0".

Hoe kan dit worden bereikt?


324
2017-12-23 17:29


oorsprong


@hhlp: Maar deze vraag is vragen over een pakket dat nooit is geïnstalleerd. - Nathan Osman
@George Edison - Er is ook pakketbeheer, waarmee u het pakket niet kunt bijwerken. Dus een pakket houden betekent feitelijk dat je de pakketbeheerder vertelt om de huidige versie te behouden, ongeacht wat. Dit is handig als een recentere versie van een werkend programma breekt na een update. (je kunt een pakket niet vasthouden dat nooit is geïnstalleerd, zie ook mijn vraag is hetzelfde) .... ik heb dat nu getest - zie hij zei disable packages from the auto-update - hhlp


antwoorden:


Holding

Er zijn vier manieren om pakketten tegen te houden: met dpkg, apt, aptitude of dselect.

dpkg

Zet een pakket in de wacht:

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

Verwijder het ruim:

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

Toon de status van uw pakketten:

dpkg --get-selections

Toon de status van een enkel pakket:

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

geneigd

Houd een pakket vast:

sudo apt-mark hold <package-name>

Verwijder het ruim:

sudo apt-mark unhold <package-name>

dselect

Met dselect, opent u het scherm [S] elect, zoekt u het pakket dat u in de huidige staat wilt houden en drukt u op = of H. De wijzigingen worden onmiddellijk van kracht na het verlaten van het scherm [S] elect.


De volgende benaderingen zijn beperkt omdat het vergrendelen / vasthouden van een pakket binnen aptitude of synaptic apt-get / apt niet beïnvloedt.

aanleg

Houd een pakket vast:

sudo aptitude hold <package-name>

Verwijder het ruim:

sudo aptitude unhold <package-name>

Vergrendelen met Synaptic Package Manager

Ga naar Synaptic Package Manager (Systeem> Beheer> Synaptic Package Manager).

Klik op de zoekknop en typ de naam van het pakket.

Wanneer u het pakket vindt, selecteert u het en gaat u naar Pakket menu en selecteer Versie vergrendelen.

Synaptic menu

Dat pakket wordt nu niet weergegeven in de updatebeheerder en zal niet worden bijgewerkt.


474
2017-12-23 18:04



Dit werkt ook om te voorkomen dat een pakket wordt geïnstalleerd. Bij installatie devscripts, veel pakketten worden getrokken als Aanbevolen pakketten. Omdat ik geen mailserver (postfix) nodig heb, kan ik de installatie ervan uitschakelen door het uit te voeren echo postfix hold | sudo dpkg --set-selections voor het hardlopen sudo apt-get install devscripts. Deze hold-actie blijft alleen bestaan ​​voor deze installatie, na de installatie worden de selecties opnieuw ingesteld. - Lekensteyn
Het is ook de moeite waard om erop te wijzen dat pakketruimtes upgrades en patches soms verbreken door een situatie te creëren waarin er geen juridische oplossing is die apt kan berekenen tot een afhankelijkheid. Als pakket foo een == <of <= afhankelijkheid van libbar heeft, zal apt weigeren om libbar en foo te upgraden. In de loop van de tijd kunnen deze trapsgewijze afhankelijkheden toenemen om een ​​groot aantal updates te blokkeren, inclusief belangrijke beveiligingsupdates. U moet de bewaarplicht verwijderen en de upgrade laten plaatsvinden, of de pakketten die u tegenkomt opnieuw samenstellen tegen nieuwere versies van de afhankelijkheden als dit gebeurt. - Stephanie
Gewoon een opmerking: apt-mark ondersteunt niet hold in versie 0.7.25 (Ubuntu Lucid) - Joril
Dit is vooral handig wanneer u probeert grafische stuurprogramma's tegen te houden. Voor ATI-gebruikers, apt-mark hold fglrx fglrx-amdcccle fglrx-dev && aptitude hold fglrx fglrx-amdcccle fglrx-dev. - earthmeLon
Op dit moment vergrendelen alleen synaptische en aptitude-pakketten binnen die programma's. "Al het andere dat pakketupgrades doet (lees: Update Manager, apt-get, aptitude, enz.) Negeert dit." Van deze vraag. - holocronweaver


Om een ​​pakket "foo" in de wacht te zetten:

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

In jouw geval gaan we wijn in de wacht zetten:

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

Om het ruim te verwijderen:

sudo -i
echo "wine install" | dpkg --set-selections

43
2017-12-08 20:15



Merk ook op dat terwijl een pakket in de wacht staat, jij kan installeer een specifieke versie via apt-get install wine=1.2.3. In de wachtstand staan ​​voorkomt apt-get (dist-)upgrade van veranderen. - rcoup
@rcoup Als u een oude versie in de wachtstand hebt staan ​​en vervolgens handmatig naar een nieuwe versie upgradet zonder de blokkering te verwijderen zoals u beschrijft, wordt de oude versie dan bewaard in de cache zodat u hiernaar terug kunt gaan? - cxrodgers
@cxrodgers de lokale cache (meestal /var/cache/apt/archives) is onafhankelijk van 'hold & upgrades & stuff', dus alle versies die je hebt gedownload, staan ​​daar tot je het spel uitvoert apt-get [auto]clean - rcoup


Ik was op zoek naar hetzelfde en na veel onderzoek ontdekte ik dat met behulp van de volgende syntaxis je een specifieke versie kunt verbieden, maar de volgende update toestaat:

Pakket: compiz-plugins-main
Pin: versie 1: 0.9.7.0 ~ bzr19-0ubuntu10.1
Pin-Priority: -1

Dit gaat in het bestand / etc / apt / preferences.


28
2017-07-22 11:13



Dit is een veel betere manier dan het voor onbepaalde tijd voorkomen van updates - Eero Aaltonen
Met deze methode denk ik dat de kans groter is dat ubuntu 'adware' zoals ubuntu one of het amazon-pictogram niet opnieuw wordt geïnstalleerd bij de volgende release-upgrade ... - Daniel Alder


Installeren synaptic gebruik makend van sudo apt-get install synaptic.

Rennen met gksudo synaptic en zoek in het zoekvak het pakket dat u wilt vergrendelen, dat wil zeggen: gedit

enter image description here

Selecteer uit het pakketmenu Versie vergrendelen:

enter image description here

En dat is alles, de versie die op het moment van het slot is geïnstalleerd, blijft zelfs tijdens upgrades geïnstalleerd.


19
2017-12-08 20:06



Kijk alsjeblieft naar "Lock-versie is niet zo slim als het klinkt. Het moet doen wat het zegt, de versie vergrendelen ... Maar het vergrendelt het alleen binnen Synaptic. Al het andere dat pakket-upgrades doet (lees: Update Manager) apt-get, aptitude, etc) negeert dit. Dit is waarschijnlijk buggedrag, dus ik verwacht dat dit op tijd zal worden opgelost. " van askubuntu.com/questions/9607/what-does-lock-version-do. Wat is de huidige staat? Als iets is vergrendeld in Synaptic, zullen andere pakketbeheerders het slot "eren"?
vasa1: Vanaf versie 0.75.13, nog steeds niet :( Hetzelfde probleem met aptitude. - syockit


Voorkomen dat een pakket wordt geïnstalleerd, wordt 'pakketbeheer' genoemd en het is heel eenvoudig om dit te doen:

echo verpakkingsnaam vasthouden dpkg --set-selecties

... waarbij * package_name * de naam is van het pakket dat u niet wilt installeren.

Notitie: de bovenstaande opdracht veronderstelt root-rechten. Met andere woorden, u zult waarschijnlijk moeten typen sudo su voordat u het uitvoert.


16
2018-02-05 01:18



Perfect deze was het antwoord. Dank je. - asoundmove
s/sudo su/sudo -s/g (of sudo -i). (-i zal een login-shell geven, -s zal niet). - derobert


Sinds enige tijd apt-get is vervangen door apt, dus bijvoorbeeld wil ik voorkomen dat Firefox de versie boven 56 zou updaten, omdat er veel add-ons zijn, zoals "Tab Groepen" werk niet meer met de nieuwe Firefox 57 (zie "WebExtensions Update").

Het is mogelijk om meer dan één pakket met één opdracht vast te houden en jokertekens te gebruiken.

Voorkomen dat Firefox wordt bijgewerkt

sudo apt-mark hold firefox firefox-locale-*

Als je ze later zou moeten onthouden, zou dat het bevel zijn:

sudo apt-mark unhold firefox firefox-locale-*

5
2017-11-19 07:45





Ik synaptisch u kunt de versie van een specifiek pakket bevriezen Ik ben niet 100% zeker of dit apt-get zal wijzigen, maar het zal zeker de update manager stoppen.

Om een ​​pakket te bevriezen, selecteert u het in de synaptische modus, opent u het pakketmenu en selecteert u de bevriesversie.

Ik hoop dat dit helpt

bewerken: dit vraag 16668 gaat over een soortgelijke situatie


4
2017-12-23 17:35





Alles wat u ooit wilde weten over het "vasthouden" en "vastzetten" van pakketten aan specifieke versies: https://help.ubuntu.com/community/PinningHowto


3
2017-12-23 21:09