Ik weet dat officiële CentOS 6 (zelfs 7) update-opslagplaatsen geen beveiligingsinformatie bieden. Het gevolg is dat yum-plugin-securityplug-in en yum check-update --securitycommando geen updates zoals on RHELof OELdistro's vermelden.

Er is een mooi script generation_updateinfo dat in staat is om ontbrekende beveiligingsinformatie in de lokale yumrepository te injecteren . De plug-in werkt dan zelfs op CentOS.

Helaas heb ik er een klein probleempje mee. Ik weet niet zeker of het probleem bij het script ligt of bij de manier waarop het yumwerkt.

Hoe het probleem te reproduceren (getest op CentOS 6.8, x86_64, maar IMO, vorige/nieuwere versies hebben hetzelfde probleem):

  1. laten we eerst alles opruimen om te beginnen met een schone tafel
yum clean all
  1. laten we eens kijken welke beveiligingsupdates beschikbaar zijn (het systeem is niet up-to-date)
yum check-update --security
...
56 package(s) needed for security, out of 28 available

kernel.x86_64                                 2.6.32-642.15.1.el6                         local-centos-6-x86_64-updates
kernel-devel.x86_64                           2.6.32-642.15.1.el6                         local-centos-6-x86_64-updates
kernel-firmware.noarch                        2.6.32-642.15.1.el6                         local-centos-6-x86_64-updates
kernel-headers.x86_64                         2.6.32-642.15.1.el6                         local-centos-6-x86_64-updates
libtiff.x86_64                                3.9.4-21.el6_8                              local-centos-6-x86_64-updates
openssl.x86_64                                1.0.1e-48.el6_8.4                           local-centos-6-x86_64-updates
sudo.x86_64                                   1.8.6p3-25.el6_8                            local-centos-6-x86_64-updates
  1. laten we nu bijvoorbeeld squidpakket installeren
yum install -y squid 
...
Resolving Dependencies
--> Running transaction check
---> Package squid.x86_64 7:3.1.23-16.el6_8.6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================================
 Package           Arch               Version                          Repository                              Size
====================================================================================================================
Installing:
 squid             x86_64             7:3.1.23-16.el6_8.6              lp-centos-6-x86_64-updates             1.8 M

Transaction Summary
====================================================================================================================
Install       1 Package(s)

Total download size: 1.8 M
Installed size: 6.3 M
Downloading Packages:
squid-3.1.23-16.el6_8.6.x86_64.rpm                                                           | 1.8 MB     00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
  Installing : 7:squid-3.1.23-16.el6_8.6.x86_64                                                                 1/1
  Verifying  : 7:squid-3.1.23-16.el6_8.6.x86_64                                                                 1/1

Installed:
  squid.x86_64 7:3.1.23-16.el6_8.6

Complete!
  1. Ik wil de update van het pakket testen, dus laten we proberen het eerst te downgraden
yum downgrade -y squid
...
Resolving Dependencies
--> Running transaction check
---> Package squid.x86_64 7:3.1.23-16.el6_8.5 will be a downgrade
---> Package squid.x86_64 7:3.1.23-16.el6_8.6 will be erased
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================================
 Package           Arch               Version                          Repository                              Size
====================================================================================================================
Downgrading:
 squid             x86_64             7:3.1.23-16.el6_8.5              lp-centos-6-x86_64-updates             1.8 M

Transaction Summary
====================================================================================================================
Downgrade     1 Package(s)

Total download size: 1.8 M
Downloading Packages:
squid-3.1.23-16.el6_8.5.x86_64.rpm                                                           | 1.8 MB     00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : 7:squid-3.1.23-16.el6_8.5.x86_64                                                                 1/2
  Cleanup    : 7:squid-3.1.23-16.el6_8.6.x86_64                                                                 2/2
  Verifying  : 7:squid-3.1.23-16.el6_8.5.x86_64                                                                 1/2
  Verifying  : 7:squid-3.1.23-16.el6_8.6.x86_64                                                                 2/2

Removed:
  squid.x86_64 7:3.1.23-16.el6_8.6

Installed:
  squid.x86_64 7:3.1.23-16.el6_8.5

Complete!
  1. laten we liever dubbel controleren wat het is geïnstalleerd
rpm -qa | grep -i squid
squid-3.1.23-16.el6_8.5.x86_64
  1. op dit moment zou ik verwachten dat wanneer ik de beveiligingsupdates opnieuw controleer, het squidpakket opnieuw zou moeten worden vermeld, maar dat is niet het geval
yum check-update --security
...
56 package(s) needed for security, out of 28 available

kernel.x86_64                                 2.6.32-642.15.1.el6                         local-centos-6-x86_64-updates
kernel-devel.x86_64                           2.6.32-642.15.1.el6                         local-centos-6-x86_64-updates
kernel-firmware.noarch                        2.6.32-642.15.1.el6                         local-centos-6-x86_64-updates
kernel-headers.x86_64                         2.6.32-642.15.1.el6                         local-centos-6-x86_64-updates
libtiff.x86_64                                3.9.4-21.el6_8                              local-centos-6-x86_64-updates
openssl.x86_64                                1.0.1e-48.el6_8.4                           local-centos-6-x86_64-updates
sudo.x86_64                                   1.8.6p3-25.el6_8                            local-centos-6-x86_64-updates
  1. laten we eens kijken welke inktvis errata op het systeem zijn geïnstalleerd. Dit is ergens raar. Uit het bovenstaande kan ik zien dat de inktvis is gedowngraded naar squid-3.1.23-16.el6_8.5.x86_64( CEBA_2016__1412 bugfix) maar squid-3.1.23-16.el6_8.6.x86_64( CESA_2016__1573) lijkt nog steeds te zijn gemarkeerd als geïnstalleerd
yum updateinfo list all | grep squid-3

i CESA_2011__1791 Moderate/Sec.  squid-3.1.10-1.el6_2.1.x86_64
i CEBA_2012__0122 bugfix         squid-3.1.10-1.el6_2.2.x86_64
i CEBA_2012__0470 bugfix         squid-3.1.10-1.el6_2.3.x86_64
i CEBA_2012__0557 bugfix         squid-3.1.10-1.el6_2.4.x86_64
i CEBA_2012__1290 bugfix         squid-3.1.10-9.el6_3.x86_64
i CESA_2013__0505 Moderate/Sec.  squid-3.1.10-16.el6.x86_64
i CEBA_2013__0985 bugfix         squid-3.1.10-18.el6_4.x86_64
i CEBA_2013__1396 bugfix         squid-3.1.10-19.el6_4.x86_64
i CEBA_2014__0048 bugfix         squid-3.1.10-20.el6_5.x86_64
i CESA_2014__0597 Moderate/Sec.  squid-3.1.10-20.el6_5.3.x86_64
i CESA_2014__1148 Important/Sec. squid-3.1.10-22.el6_5.x86_64
i CEBA_2014__1446 bugfix         squid-3.1.10-29.el6.x86_64
i CEBA_2015__1314 bugfix         squid-3.1.23-9.el6.x86_64
i CEBA_2016__0896 bugfix         squid-3.1.23-16.el6.x86_64
i CESA_2016__1138 Moderate/Sec.  squid-3.1.23-16.el6_8.4.x86_64
i CEBA_2016__1412 bugfix         squid-3.1.23-16.el6_8.5.x86_64
i CESA_2016__1573 Moderate/Sec.  squid-3.1.23-16.el6_8.6.x86_64
  1. Als ik informatie voor die errata probeer te krijgen, is er niets
yum update info CESA_2016__1573
--- NOTHING NOTHING NOTHING ---
  1. Als ik probeer alle errata op te sommen, maar grep die ik kan zien
yum updateinfo info all | grep CESA_2016__1573 -B3 -A8
===============================================================================
  Moderate CentOS squid Security Update
===============================================================================
  Update ID : CESA_2016__1573
    Release : CentOS 6
       Type : security
     Status : stable
     Issued : 2016-08-04 12:51:39
Description : Moderate CentOS squid Security Update
   Severity : Moderate
  Installed : true

Ik wil erop wijzen dat ik dit scenario (downgrade/upgrade) op RHEL6 heb getest en dat het werkt. Ik heb ook geprobeerd om de oude versie van het squidpakket rechtstreeks te installeren om de volgorde van downgraden/upgraden te vermijden, maar het resultaat was ook hetzelfde. En het probleem heeft niet alleen betrekking op het squidpakket. In principe kan ik het probleem met elk pakket reproduceren. Ik heb ook geprobeerd de yumcache op te schonen na een pakketdowngrade, maar het helpt niet.

Enig idee wat er mis kan zijn?!? Waarom is het gemarkeerd als geïnstalleerd terwijl het dat eigenlijk niet is?!? Bij het testen op RHEL6 kan ik zien dat het niet is geïnstalleerd en vervolgens wordt het opgenomen in de lijst met pakketten die moeten worden bijgewerkt.

Bedankt voor elk antwoord.

answer

Volg de stap om uit te zoeken welke transactie dit probleem veroorzaakt en voer de nodige actie uit met opnieuw uitvoeren/ongedaan maken en terugdraaien met de yum-geschiedenistool:

toon alle geschiedenis met het commando: yum history

argumenten info/lijst/samenvatting kan een transactie-ID/pakketnaam hebben

yum history list all

getoond detail van de geschiedenis

check geschiedenis info inktvis: jammie geschiedenis info inktvis

deze opdracht toonde transacties van inktvis en met het doorgeven van de transactie-ID kun je transactie-informatie vinden

yum history info transaction_no

u kunt de geschiedenis van uw pakket in de repository controleren met het commando:

#yum history package-list squid mirrorlist_name 

bijvoorbeeld: epel_release

nadat u een bottleneck heeft gevonden, kunt u transacties ongedaan maken/opnieuw doen/terugdraaien:

bijvoorbeeld:

yum geschiedenis ongedaan maken 2

zal pakketinktvis verwijderen [geïnstalleerd in transactie 2]

yum history redo 2   

zal pakket squid opnieuw installeren [geïnstalleerd in transactie 2]

yum history rollback 2

zal pakketten verwijderen [geïnstalleerd in transactie 2]

Deze opdracht heeft ook een subcommando voor forceren om het te verwijderen of opnieuw te installeren, bijvoorbeeld:

yum history redo force-reinstall 16

verder kun je je DB synchroniseren en ook de staat van yum controleren:

yum history stats
yum history sync