Cum să gestionezi fișierele .pacnew în Arch Linux
Înțelegeți cum creează Arch Linux fișiere .pacnew în timpul actualizărilor și cum să gestionați modificările de configurare fără a vă afecta configurația.
Dacă folosești Arch Linux, probabil ai observat că, după un timp, și mai ales după actualizări ale sistemului, fișiere cu extensia .pacnew încep să apară pe sistemul tău. Și pentru că citești asta, este probabil motivul pentru care ai ajuns aici: să înțelegi ce sunt aceste fișiere, de ce apar și ce ar trebui să faci cu ele.
Ei bine, ai ajuns în locul potrivit. În rândurile de mai jos, voi încerca să explic totul clar și direct. Așadar, să începem cu întrebarea principală.
Ce sunt fișierele .pacnew în Arch Linux?
Când îți actualizezi sistemul Arch Linux prin comenzi precum pacman -Syu, unele pachete deja instalate includ fișiere de configurare, de obicei stocate în /etc. Totuși, dacă ai personalizat unul dintre aceste fișiere și între timp întreținătorul pachetului îl modifică într-o versiune actualizată, Arch (desigur) nu va suprascrie versiunea ta locală instalată.
Aceasta este o măsură de siguranță care împiedică pierderea modificărilor locale. În schimb, în fundal, Pacman creează un fișier .pacnew — o versiune „nouă” a fișierului de configurare livrat cu pachetul actualizat, oferindu-ți astfel acces la configurația actualizată pe care o oferă acum pachetul. Gândește-te la asta în felul următor:
- Configurația ta actuală=setările tale personalizate.
- Fișierul
.pacnew=versiunea actualizată de către întreținător.
De exemplu, dacă /etc/pacman.conf a fost modificat la sursă, după actualizare, vei vedea /etc/pacman.conf.pacnew. Poți apoi să deschizi ambele fișiere unul lângă altul (vom detalia mai jos) și să copiezi diferențele importante.
Apoi, odată ce ai fuzionat sau înlocuit fișierul, poți șterge în siguranță versiunea .pacnew pentru a menține lucrurile ordonate. Scopul final este să păstrezi configurația sistemului tău actualizată fără a pierde ajustările personalizate. Și dacă te întrebi deja cum să faci efectiv fuziunea, continuă să citești. De fapt, este o treabă destul de simplă.
Cum să compari și să îmbini fișiere .pacnew în Arch Linux
Acum că am acoperit teoria, este timpul să trecem la practică. Primul pas, așa cum era de așteptat, este să verificăm ce fișiere .pacnew sunt prezente pe sistemul nostru Arch. Pentru asta, Arch oferă un mic instrument util numit pacdiff, care se ocupă să le găsească pentru tine.
Nu este inclus implicit, totuși — face parte din pachetul pacman-contrib, așa că să începem prin a instala acesta.
sudo pacman -S pacman-contribDestul de simplu, nu-i așa? Acum că avem pacdiff pregătit, să aruncăm o privire asupra tuturor fișierelor .pacnew disponibile pe sistemul nostru Arch.
pacdiff -oDupă cum puteți vedea în imaginea de mai sus, actualizările sistemului au creat silențios șase fișiere .pacnew — stau pur și simplu acolo, așteptând să ne ocupăm de ele. Iată ce putem face de aici înainte.
Cea mai simplă și evidentă soluție — la care probabil te-ai gândit deja — este să copiezi (sau să muți) fișierul .pacnew peste cel original. Ceva de genul:
cp /etc/example.conf.pacnew /etc/example.confApoi, poți șterge fișierul .pacnew și continua. Sigur, acest lucru poate funcționa în unele cazuri, dar, în general, nu este o idee bună și recomand ferm să nu o faci.
Iată de ce: în primul rând, te lasă complet pe întuneric în privința a ceea ce s-a schimbat cu adevărat în noua versiune. Pur și simplu ai încredere oarbă că nu va strica nimic. În al doilea rând, această abordare funcționează doar — și subliniez doar — dacă ești absolut sigur că nu ai modificat anterior acel fișier de unul singur, pentru că, dacă acesta este cazul, vei pierde toate modificările valoroase făcute manual.
Dar cel mai important, ești un utilizator Arch (apropo). Asta înseamnă că ar trebui să fii imun la grijile obișnuite pe care linia de comandă le provoacă (din păcate) unor utilizatori. Așadar, în loc să faci scurtături, îți sugerez să urmezi o procedură corectă și consistentă pentru gestionarea fișierelor .pacnew, pe care ți-o arăt imediat.
Pentru a compara diferențele dintre fișierul tău original și versiunea sa .pacnew—și pentru a îmbina eventualele modificări—poți folosi utilitarul practic vimdiff, care vine împreună cu pachetul vim. Așadar, dacă nu l-ai instalat încă, rulează pur și simplu:
sudo pacman -S vimSunt sigur că mulți sunt deja pregătiți să se plângă, așa că de ce să nu facem lucrurile mai ușoare și să folosim una dintre multele aplicații GUI disponibile în acest scop? Motivul este simplu — acestea adaugă de obicei o mulțime de dependențe suplimentare, precum Qt sau GTK, în funcție de mediul tău desktop, ceea ce nu este ideal pentru fiecare configurație. Eu prefer o soluție universală, iar pentru această sarcină, vimdiff bazat pe terminal se potrivește perfect.
Așadar, executați următoarele, iar pacdiff va apela vimdiff implicit:
sudo pacdiffPentru claritate, acest lucru va procesa toate fișierele .pacnew pe care le găsește, unul câte unul. Din păcate, pacdiff nu acceptă un argument de nume de fișier. Lucrul esențial aici sunt opțiunile pe care le ai:
- (V)izualizare: Deschide o comparație alăturată între fișierul dvs. curent și versiunea
.pacnew. - (M)erge: Încearcă să îmbine fișierul
.pacnewcu cel existent interactiv. - (S)ăriți: Ignoră acest fișier pentru moment și trece la următorul.
- (R)emove pacnew: Șterge fișierul
.pacnewfără a afecta configurația ta curentă. - Suprascrie cu pacnew: Înlocuiește fișierul tău de configurare existent cu versiunea
.pacnew. - (I)eșire: Părăsește
pacdiffimediat, fără a procesa restul fișierelor.
Următorul pas, desigur, este să revizuiești diferențele. Apasă „v”, apasă „Enter” și vei fi dus la următorul ecran vimdiff care arată primul fișier pe care pacdiff l-a găsit — în acest exemplu, /etc/hosts.
Lucrul esențial de reținut, deoarece formează baza pentru ceea ce vom face în continuare, este că panoul din stânga afișează fișierul .pacnew, în timp ce panoul din dreapta arată fișierul tău original curent, pe care sistemul îl folosește efectiv.
Aici, poți muta modificările între cele două fișiere comparate folosind puternicele comenzi diff, dp și do.
dp: Copiază (inserează) diferența din fișierul curent în celălalt. Gândește-te: „Vreau să trimit această modificare acolo.”do: Copiază (obține) diferența din celălalt fișier în cel curent. Gândește-te: „Vreau să iau acea modificare și să o aduc aici.”
Pur și simplu mută cursorul pe linia care diferă și tastează unul dintre cele două comenzi de mai sus pentru a face modificările dorite. Când ai terminat, tastează comanda Vim :wqa (write și quit all) și apasă „Enter” — asta te va readuce la ecranul principal.
Deoarece am aplicat deja toate modificările noastre, este sigur să eliminăm fișierul .pacnew tastând r și apăsând „Enter“. Fișierul va fi eliminat, iar pacdiff va trece automat la următorul, unde ți se va cere din nou să alegi ce vrei să faci în continuare.
După cum puteți vedea, puteți sări peste tot acest proces prin simpla fuzionare sau suprascriere directă a fișierului, dar recomand cu tărie să nu faceți asta. Cea mai sigură (și profesională) abordare este să revizuiți fiecare modificare personal și să decideți cum doriți să o gestionați.
În final, doar o notă rapidă: când ești în modul de comparație (vimdiff), poți comuta între ferestre apăsând Ctrl + W, apoi folosind săgeata stânga sau dreapta pentru a muta cursorul în fereastra dorită.
Concluzie
Gestionarea fișierelor .pacnew face pur și simplu parte din menținerea unui sistem Arch Linux sănătos și previzibil. Așa cum ați învățat deja, aceste fișiere apar pentru a proteja configurațiile personalizate de a fi suprascrise, dar ele semnalează și că ceva s-a schimbat în sursa principală. Este în întregime responsabilitatea dumneavoastră să revizuiți și să decideți cum ar trebui integrate acele schimbări.
Pentru mai multe informații, recomand și consultarea Arch Wiki.
Îți mulțumesc pentru timpul acordat! Sper că sfaturile mele îți sunt utile. Ca întotdeauna, orice feedback este foarte apreciat.





