Ako downgradovať balíčky

Ako downgradovať balíčky

Niekedy sa môžete stretnúť s problémami s nedávno aktualizovaným balíkom a budete chcieť prejsť na nižšiu verziu. Aby ste mohli prejsť na nižšiu verziu balíka v Debian, Ubuntu alebo Linux Mint (a iných distribúciách Linuxu založených na Debiane/Ubuntu), verzia balíka, na ktorú chcete prejsť, musí byť dostupná v úložisku.

Ak chcete prejsť na nižšiu verziu balíka na konkrétnu verziu, musíte ho pripojiť =versionza názvom balíka v príkaze inštalácie s versionide o verziu, na ktorú chcete balíček downgradovať:
 

sudo apt install <package>=<version>


Príklad 1

Pozrime sa na jednoduchý príklad. Momentálne mám Firefox 65 nainštalovaný v Ubuntu 18.10 a chcem ho downgradovať pomocou apt. Prvá vec, ktorú musíte urobiť, je pozrieť sa na dostupné verzie spustením apt policy firefox ( apt-cachepolitika funguje tiež):
 

$ apt policy firefox
firefox:
  Installed: 65.0+build2-0ubuntu0.18.10.1
  Candidate: 65.0+build2-0ubuntu0.18.10.1
  Version table:
 *** 65.0+build2-0ubuntu0.18.10.1 500
        500 http://security.ubuntu.com/ubuntu cosmic-security/main amd64 Packages
        500 http://archive.ubuntu.com/ubuntu cosmic-updates/main amd64 Packages
        100 /var/lib/dpkg/status
     63.0+build1-0ubuntu1 500
        500 http://archive.ubuntu.com/ubuntu cosmic/main amd64 Packages


Tento príkaz apt ukazuje, že verzia Firefoxu nainštalovaná v mojom systéme je 65.0+build2-0ubuntu0.18.10.1 a je k dispozícii v úložiskách kozmickej bezpečnosti a kozmických aktualizácií. V hlavnom úložisku je k dispozícii staršia verzia, 63.0+build1-0ubuntu1, takže Firefox možno prejsť na túto verziu.

Na downgrade Firefoxu z nainštalovanej verzie 65.0+build2-0ubuntu0.18.10.1 na verziu 63.0+build1-0ubuntu1 z hlavného úložiska by príkaz bol:
 

sudo apt install firefox=63.0+build1-0ubuntu1


Tento príkaz zníži verziu Firefoxu bez toho, aby musel prejsť na nižšiu verziu akýchkoľvek iných balíkov, pretože Firefox nezávisí od žiadnych striktných verzií balíkov:
 

$ sudo apt install firefox=63.0+build1-0ubuntu1
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be DOWNGRADED:
  firefox
0 upgraded, 0 newly installed, 1 downgraded, 0 to remove and 51 not upgraded.
Need to get 46.1 MB of archives.
After this operation, 4,243 kB disk space will be freed.
Do you want to continue? [Y/n]


Existujú prípady, v ktorých musíte vyriešiť niektoré závislosti, aby ste mohli prejsť na nižšiu verziu balíka, a na takýto príklad sa pozrieme nižšie.

Príklad 2

Pozrime sa na komplikovanejší príklad – balík, ktorý nie je možné priamo downgradovať pomocou apt bez toho, aby sa zároveň znížili niektoré jeho závislosti.
 

$ apt policy chromium-browser
chromium-browser:
  Installed: 72.0.3626.81-0ubuntu1~ppa2~18.10.1
  Candidate: 72.0.3626.81-0ubuntu1~ppa2~18.10.1
  Version table:
 *** 72.0.3626.81-0ubuntu1~ppa2~18.10.1 500
        500 http://ppa.launchpad.net/saiarcot895/chromium-beta/ubuntu cosmic/main amd64 Packages
        100 /var/lib/dpkg/status
     71.0.3578.98-0ubuntu0.18.10.1 500
        500 http://security.ubuntu.com/ubuntu cosmic-security/universe amd64 Packages
        500 http://archive.ubuntu.com/ubuntu cosmic-updates/universe amd64 Packages
     69.0.3497.100-0ubuntu1 500
        500 http://archive.ubuntu.com/ubuntu cosmic/universe amd64 Packages


The apt policypríkaz vyššie ukazuje, že mám momentálne nainštalovanú beta verziu prehliadača Chromium (verzia 72) zo Saiarcot Chromium Beta PPA, pričom dve staršie verzie sú dostupné v zabezpečení/aktualizáciách a hlavných úložiskách Ubuntu.

Skúsme downgradovať prehliadač chromium z verzie 72.0.3626.81-0ubuntu1~ppa2~18.10.1 na verziu 71.0.3578.98-0ubuntu0.18.10.1 (z repozitárov zabezpečenia/aktualizácií) pomocou apt a uvidíme, čo sa stane:
 

$ sudo apt install chromium-browser=71.0.3578.98-0ubuntu0.18.10.1
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 chromium-browser : Depends: chromium-codecs-ffmpeg-extra (= 71.0.3578.98-0ubuntu0.18.10.1) but 72.0.3626.81-0ubuntu1~ppa2~18.10.1 is to be installed or
                             chromium-codecs-ffmpeg (= 71.0.3578.98-0ubuntu0.18.10.1) but it is not going to be installed
                    Recommends: chromium-browser-l10n but it is not going to be installed
E: Unable to correct problems, you have held broken packages.


Prechod na staršiu verziu prehliadača Chromium nefunguje, pretože závisí od chromium-codecs-ffmpeg-extraalebo chromium-codecs-ffmpeg, s presne rovnakou verziou ako samotný balík chromium-browser. V tomto prípade tiež znížme hodnotenie chromium-codecs-ffmpeg-extrabalík na rovnakú verziu:
 

$ sudo apt install chromium-browser=71.0.3578.98-0ubuntu0.18.10.1 chromium-codecs-ffmpeg-extra=71.0.3578.98-0ubuntu0.18.10.1
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Suggested packages:
  webaccounts-chromium-extension unity-chromium-extension adobe-flashplugin
Recommended packages:
  chromium-browser-l10n
The following packages will be REMOVED:
  chromium-browser-l10n chromium-chromedriver
The following packages will be DOWNGRADED:
  chromium-browser chromium-codecs-ffmpeg-extra
0 upgraded, 0 newly installed, 2 downgraded, 2 to remove and 51 not upgraded.
Need to get 58.8 MB of archives.
After this operation, 61.5 MB disk space will be freed.
Do you want to continue? [Y/n]


Výstup príkazu apt downgrade ukazuje, že prehliadač chromium-browser je teraz možné znížiť, ale príkaz chce odstrániť 2 balíky. Toto sú odporúčané balíky, ktoré boli automaticky nainštalované pri inštalácii chromium-browser (a tiež musia mať rovnakú verziu ako balík chromium-browser), a hoci ich chromium-browser nevyžaduje, stále ich možno budete potrebovať. Preto je dobré znížiť aj ich hodnotenie, aby neboli odstránené.

V tomto prípade sa príkaz apt downgrade zmení na:
 

sudo apt install chromium-browser=71.0.3578.98-0ubuntu0.18.10.1 chromium-codecs-ffmpeg-extra=71.0.3578.98-0ubuntu0.18.10.1 chromium-browser-l10n=71.0.3578.98-0ubuntu0.18.10.1 chromium-chromedriver=71.0.3578.98-0ubuntu0.18.10.1


Pozrime sa, čo sa stane, keď ho použijeme:
 

$ sudo apt install chromium-browser=71.0.3578.98-0ubuntu0.18.10.1 chromium-codecs-ffmpeg-extra=71.0.3578.98-0ubuntu0.18.10.1 chromium-browser-l10n=71.0.3578.98-0ubuntu0.18.10.1 chromium-chromedriver=71.0.3578.98-0ubuntu0.18.10.1
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Suggested packages:
  webaccounts-chromium-extension unity-chromium-extension adobe-flashplugin
The following packages will be DOWNGRADED:
  chromium-browser chromium-browser-l10n chromium-chromedriver chromium-codecs-ffmpeg-extra
0 upgraded, 0 newly installed, 4 downgraded, 0 to remove and 51 not upgraded.
Need to get 64.9 MB of archives.
After this operation, 35.8 MB disk space will be freed.
Do you want to continue? [Y/n]


Ako môžete vidieť, downgrade je možné vykonať a žiadne balíky sa nechystajú odstrániť. Keďže to teraz vyzerá dobre, môžeme pokračovať v downgrade.

Marek Mihók