Ștergeți în siguranță un blocaj Zypper pe SUSE Linux Enterprise

Dacă SUSE Linux Enterprise raportează că Zypper este blocat de un alt proces, permiteți mai întâi finalizarea oricărei actualizări de software active, a operațiunii de pachet YaST sau a oricărei operațiuni de întreținere automată. Verificați ce proces de gestionare a pachetelor deține lucrarea înainte de a opri orice. Dacă nicio operațiune de pachet nu rulează și blocarea persistă, investigați starea învechită fără a șterge orbește fișierele de blocare; apoi încercați din nou Zypper. O blocare de pachet creată cu zypper addlockeste o problemă diferită și necesită o remediere diferită.

Ce înseamnă „blocat de un alt proces”?

Zypper și instrumentele de gestionare a pachetelor subiacente protejează tranzacțiile pachetelor de modificările care se suprapun. O reîmprospătare, o aplicare a unui patch, o instalare, o sarcină software YaST sau o actualizare programată poate împiedica temporar o a doua tranzacție. Blocarea este un mecanism de coordonare: eliminarea ei în timp ce RPM sau Zypper încă modifică pachetele poate lăsa baza de date a pachetelor sau sistemul într-o stare inconsistentă.

Distincție verificată: o blocare a procesului previne operațiunile simultane pe pachete; o blocare a pachetului previne selectarea unui pachet denumit pentru instalare, actualizare sau eliminare. Documentația SUSE descrie blocările pachetelor ca o caracteristică separată. Ghidul SUSE pentru ambalare RPM explică blocările pachetelor Zypper . Dacă eroarea denumește un alt proces sau indică faptul că managerul de pachete este ocupat, începeți cu verificările de proces de mai jos. Dacă indică faptul că un anumit pachet este blocat sau exclus, rulați sudo zypper locksși examinați în schimb regulile de pachet listate.

1. Verificați dacă o operațiune de pachet este încă în execuție

Așteptați câteva minute dacă tocmai a început o actualizare, o instalare sau o reîmprospătare a depozitului. Pe un server, verificați mai întâi cu administratorul sau proprietarul automatizării de mentenanță; o lucrare de corecție în fundal poate să nu aibă un terminal vizibil.

ps -eo pid,ppid,etime,stat,cmd | grep -E '[z]ypper|[r]pm|packagekit|YaST|yast'

Căutați o sarcină reală Zypper, RPM, YaST sau PackageKit și notați PID-ul acesteia, timpul scurs și comanda. Expresia grep evită potrivirea comenzii de căutare în sine pentru Zypper și RPM. O listă de procese este o instantanee, așa că repetați-o după o scurtă așteptare dacă rezultatul este neclar. Exemplul de mai jos este o vizualizare ilustrativă a terminalului, nu un raport de la o mașină reală.

Listarea proceselor terminalului care arată un proces de reîmprospătare Zypper și RPM
Verificați numele procesului, PID-ul și timpul scurs înainte de a decide dacă managerul de pachete este încă activ.

Ceea ce nu este încă stabilit: faptul că vezi un proces nu dovedește că este blocat. O tranzacție de pachet poate descărca metadate sau poate aștepta spațiu de stocare sau un depozit. Nu o închideți doar pentru că comanda a fost silențioasă. Dacă progresează, permiteți-i să se termine și rulați din nou comanda Zypper originală ulterior.

2. Verificați joburile de service și întreținere a software-ului

Instalările desktop pot utiliza PackageKit, în timp ce serverele gestionate pot rula actualizări programate prin intermediul temporizatoarelor systemd sau SUSE Manager. Bifați doar serviciile care există pe gazda dvs.:

systemctl status packagekit
systemctl list-timers --all

Dacă PackageKit lipsește, systemd raportează că unitatea nu a putut fi găsită; asta nu înseamnă că Zypper este defect. Dacă este activ, verificați intrările recente din jurnal și confirmați că nu este în curs nicio instalare sau actualizare înainte de a lua în considerare o oprire:

sudo journalctl -u packagekit --since "30 minutes ago"

Când o operațiune PackageKit confirmată s-a finalizat, dar serviciul său rămâne activ și blochează Zypper, coordonați-vă cu persoana sau automatizarea care gestionează actualizările. Pe o gazdă unde oprirea acesteia este potrivită, utilizați sudo systemctl stop packagekit, apoi verificați cu systemctl status packagekit. Nu dezactivați serviciul și nu opriți temporizatoarele de actualizare fără legătură ca soluție generală. Numele și programele de actualizare depind de componentele instalate ale sistemului și de politica de gestionare.

Vizualizarea stării Systemctl afișează PackageKit inactiv
Folosește starea serviciului și jurnalul pentru a determina dacă PackageKit efectuează lucrări la pachet înainte de a-l opri.

3. Dacă niciun proprietar nu este activ, investigați în siguranță o încuietoare veche

O blocare învechită poate apărea în urma unei sesiuni întrerupte, a unei reporniri sau a unei sarcini de gestionare eșuate, dar prezența sa în sine nu identifică cauza. Documentația utilizatorului SUSE nu oferă o instrucțiune universală pentru a șterge un fișier de blocare pentru fiecare versiune și configurație SLES. Evitați comenzi precum cele rmîmpotriva căilor ghicite și nu utilizați kill -9pe un PID necunoscut. Un fișier de blocare poate fi recreat sau înlocuit în timp ce o tranzacție este activă, iar ștergerea acestuia nu oprește procesul care deține tranzacția.

Verificați din nou lista de procese, inspectați jurnalele de service relevante și asigurați-vă că nu este în curs nicio operațiune asupra pachetului. Dacă puteți identifica un fișier PID sau o cale de blocare învechită, verificați proprietarul acestuia și confirmați procedura documentată pentru pachetul service pack SLES exact sau instrucțiunile de asistență înainte de a le modifica. Pentru sistemele de producție, capturați eroarea și jurnalele exacte și urmați procesul de asistență SUSE al organizației dvs. Acesta este punctul în care contează detaliile locale: textul erorii, pachetul service pack SLES, instrumentele desktop instalate și agentul de gestionare pot modifica acțiunea de recuperare corectă.

4. Încercați din nou Zypper și verificați tranzacția

După finalizarea operațiunii concurente, actualizați metadatele depozitului:

sudo zypper refresh

O reîmprospătare reușită confirmă faptul că Zypper poate acum accesa depozitele sale și că blocarea procesului nu mai blochează acea comandă. Dacă sarcina inițială a fost să aplicați patch-uri la sistem, previzualizați modificările propuse înainte de a le aplica:

sudo zypper patch --dry-run

Examinați pachetele și acțiunile din rezultat. O rulare preliminară este o verificare a planificării; nu instalează actualizările listate. Când propunerea este așteptată și fereastra de mentenanță o permite, executați comanda sudo zypper patch. Documentația SLES 15 SP7 de la SUSE acoperă gestionarea software-ului din linia de comandă, inclusiv instalarea și eliminarea software-ului; comportamentul comenzilor și opțiunile disponibile pot varia în funcție de versiune. Consultați documentația de gestionare a software-ului SLES 15 SP7 și referința Zypper de la SUSE .

Terminalul afișează o reîmprospătare sudo zypper reușită
După ce sarcina concurentă se termină, actualizați metadatele depozitului pentru a confirma că Zypper poate continua.
Terminalul afișează o rulare practică a patch-ului Zypper fără modificări aplicate
Previzualizați tranzacția de patch și examinați modificările propuse înainte de a aplica actualizările.

Presupuneri comune de evitat

  • „Blocarea este mereu veche.” Nu este verificată doar de mesaj. Este posibil să aparțină unei actualizări reale. Verificați mai întâi procesele active și jurnalele.
  • „O blocare a pachetului și o blocare a procesului sunt aceleași lucruri.” Sunt controale separate. Se utilizează zypper locksatunci când un pachet denumit este blocat explicit; nu eliminați regulile pachetului pentru a șterge o tranzacție care rulează.
  • „Ștergerea unui fișier de blocare corectează proprietarul.” Nu termină un proces activ și nu finalizează în siguranță tranzacția acestuia. Identificați mai întâi proprietarul și utilizați îndrumările specifice versiunii pentru starea învechită.
  • „Repornirea serverului este soluția normală.” O repornire poate întrerupe modificările pachetului și nu este justificată doar de eroare. Folosiți-o numai atunci când procedura de întreținere sau îndrumările de asistență o solicită.

Verificați remedierea

Problema este rezolvată atunci când sudo zypper refreshprocesul se finalizează fără o eroare de blocare și comanda dorită poate fi executată. Pentru aplicarea corecțiilor, inspectați sudo zypper patch --dry-runși confirmați acțiunile propuse înainte de a aplica orice. Dacă blocarea reapare, înregistrați eroarea exactă, lista de procese, starea serviciilor relevante, ieșirea recentă a jurnalului și versiunea SLES, apoi investigați procesul sau instrumentul de gestionare care o redobândește, în loc să ștergeți în mod repetat starea de blocare.

Lasă un comentariu

Eroare la încărcarea modulului de pornire SLES: Găsiți driverul și remediați-l

Eroare la încărcarea modulului de pornire SLES: Găsiți driverul și remediați-l

Urmăriți un modul kernel defect la pornirea SLES, corectați o intrare de boot învechită sau reparați driverul necesar și verificați următoarea bootare.

Configurați DM-Multipath pe SLES 15 pentru căi SAN fiabile

Configurați DM-Multipath pe SLES 15 pentru căi SAN fiabile

Pregătiți căile SAN SCSI, activați multipathd, inspectați setările implicite hardware ale SUSE și verificați hărțile stabile ale dispozitivelor fără a ghici setările matricei.

Ștergeți în siguranță un blocaj Zypper pe SUSE Linux Enterprise

Ștergeți în siguranță un blocaj Zypper pe SUSE Linux Enterprise

Găsește procesul care deține blocarea pachetului Zypper, distinge conflictele de proces de blocările pachetului și reîncearcă actualizările fără a șterge orbește fișierele de blocare.

Construiți un cluster SLES 15 HA acceptat cu Fencing First

Construiți un cluster SLES 15 HA acceptat cu Fencing First

Înregistrați SLE HA, bootați SLES 15 noduri, apoi adăugați fencing, cvorum și resurse de servicii testate înainte de a vă baza pe failover.

SLES Zypper HTTP 500: Găsiți depozitul defect

SLES Zypper HTTP 500: Găsiți depozitul defect

Urmăriți o eroare de reîmprospătare Zypper către SUSE, RMT sau un endpoint terț, apoi aplicați remedierea corectă la nivelul serverului sau al memoriei cache fără a dezactiva actualizările esențiale.

SLES Thin Pool fără spațiu: Extindeți LVM în siguranță și restaurați scrierile

SLES Thin Pool fără spațiu: Extindeți LVM în siguranță și restaurați scrierile

Rezolvați erorile de spațiu din pool-ul subțire SUSE LVM prin verificarea utilizării datelor și metadatelor, extinderea pool-ului în siguranță și prevenirea întreruperilor repetate.

Când SLES Btrfs devine doar pentru citire: Diagnosticare înainte de remontare

Când SLES Btrfs devine doar pentru citire: Diagnosticare înainte de remontare

Identificați dacă Btrfs este intenționat doar pentru citire, are puțin spațiu sau protejează datele după erori, apoi alegeți o cale de recuperare care corespunde cauzei.

Înregistrați SLES 15 cu SUSE Manager într-o rețea offline

Înregistrați SLES 15 cu SUSE Manager într-o rețea offline

Pregătiți canalele oglindite, creați o cheie de activare și porniți un client SLES 15 fără acces direct la internet, păstrând în același timp conexiunea necesară pentru înregistrările Manager.

Faceți ca redirecționarea X11 a YaST să funcționeze prin SSH

Faceți ca redirecționarea X11 a YaST să funcționeze prin SSH

Corectează eroarea de lansare XIO a YaST prin SSH, verifică redirecționarea X11 și xauth și comută la interfața ncurses atunci când o fereastră la distanță nu este necesară.

Revenirea în siguranță la o actualizare SLES eșuată cu Snapper

Revenirea în siguranță la o actualizare SLES eșuată cu Snapper

Găsește snapshot-ul Btrfs de dinainte de actualizare, testează-l în modul doar pentru citire și fă recuperarea permanentă cu Snapper, înțelegând în același timp ce date rămân în afara rollback-ului rădăcină.