Utilizați apt alegerilor selective pentru a fixa pachetul în debian si ubuntu - notează specialistul

Utilizați apt alegerilor selective pentru a fixa pachetul în debian si ubuntu - notează specialistul

Destul de des, atunci când se ocupă cu sistemul Linux este necesar să instaleze pachete într-o versiune diferită de cea care se află în depozitele. Cel mai des utilizate în acest scop a instala manual versiunea corectă a pachetului, urmat de congelare (dacă este cazul) sau de a construi un pachet de la sursă. În același timp, bazat pe Debian Linux standard de distribuție pachet de sistem de fixare APT de fixare, utilizarea care mai de preferat, cu atât mai mult pentru a lucra cu el este într-o clipă.

În primul rând, trebuie să înțelegem de ce să utilizeze instalarea manuală a pachetelor nedorite. Desigur, dacă este vorba despre un fel de bibliotecă separată pentru uz intern, de exemplu, pentru a construi PostgreSQL pe 1C, nu există nici un sens pentru a face un tam-tam, putem livra în condiții de siguranță pachetul manual și uitați în condiții de siguranță cu privire la aceasta. Destul de o altă problemă, dacă sunteți atât de stabilit un serviciu public, de exemplu, Apache server web și interpretul PHP.

În timpul nostru, accesul universal la informații pe Internet și canale de comunicare avansate de vulnerabilitate este distribuit pe scară largă în cel mai scurt timp posibil, ceea ce face ca o abordare responsabilă față de problema de actualizare software în timp util. În cazul setării manuale, și în special ansamblul sursei, responsabilitatea pentru susținerea în continuare se află în întregime pe tine. Va trebui să monitorizeze în mod independent, producția de actualizare și, de asemenea, să mențină în mod independent, software-ul curent pe server.

După cum arată practica - orice sistem vulnerabil, mai devreme sau mai târziu va fi hacked. Iar pentru a afla despre el, puteți cel puțin atunci când furnizorul de servicii de găzduire sau furnizorul de va pretinde că serverul trimite spam-ul, participa la DDoS-atac, sau chiar implicat în unele activități nefaste.

Ce este bun APT de fixare? Această tehnologie se bazează pe alegerea unei surse de pachete în funcție de preferințele pe care le setați. Ie este într-adevăr să devină un depozit conectat cu versiunile corecte ale pachetelor corect stabilite preferințele și primi toate pachetele de servicii de acolo, folosind mecanisme standard. Astfel, se elimină imediat un strat de probleme asociate cu suportul, în cazul în care pachetul dorit primește actualizări sistemul ei vor primi.

Lista de arhive este stocat în /etc/apt/sources.list. dacă vom deschide un fișier, de exemplu, în Debian 8, vom vedea următoarele:

Utilizați apt alegerilor selective pentru a fixa pachetul în debian si ubuntu - notează specialistul
În mod implicit, conectat trei depozit: principale, și securitate. Repository deb-src conține codul sursă pentru pachetele de construcții. Dintre tipurile de arhive conectate numai principal - software-ul care îndeplinesc criteriile de Debian Free Software. Există, de asemenea, un depozit contrib - Software-ul care nu îndeplinește criteriile pentru free software Debian și non-free - software non-free. Prin urmare, un set complet de arhive va arăta astfel:

Așa cum este ușor pentru a vedea acest set aparține real distro în prezent Debain 8 „Jessie“, alte aspecte ar trebui să fie înlocuit cu Jessie pe numele de cod al unui alt distribuție.

Pe lângă Debian numele de cod vă permite să utilizați eliberarea clasei: stabil, oldstable, testarea, instabilă. distribuție curentă - este stabilă. anterior - oldstable. în curs de dezvoltare - testare. instabil (sid) - instabil. Cu toate acestea, în practică, aceste denumiri nu sunt folosite, pentru că dacă în loc de Jessie dat stabil. cu lansarea următoarei versiune stabilă - întinde - este actualizat în mod automat la serverele dvs. de producție care poate duce la consecințe neașteptate. Cu toate că, dacă sunteți un entuziast, vă puteți înregistra toate de testare și să fie în mod constant pe marginea de taiere a progresului.

În depozitele Ubuntu set este un pic diferit:

Utilizați apt alegerilor selective pentru a fixa pachetul în debian si ubuntu - notează specialistul
La prima vedere mai multe arhive și de a face mai mult și mai confuz. Cu toate acestea, este de fapt foarte simplu. La fel ca în Debian ne interesează trei actualizări principale depozit, și de securitate. Care la rândul lor sunt împărțite în principal - software liber și restricționat - non-free software, susținută de Canonical, precum universul și multiversului - un software gratuit și non-free sprijinite de comunitate.

Ca urmare, o listă a principalelor magaziile de forma:

Versiunea Ubuntu a distribuției este definit doar prin numele de cod, în cazul nostru de încredere - Ubuntu 14.04 LTS (Trusty Tahr).

Adăugați noi arhive sunt două moduri de a le adăuga la fișierul /etc/apt/sources.list principal. sau pentru a crea un nou fișier cu extensia .list în dosarul /etc/apt/sources.list.d. de exemplu, precise.list Ubuntu 12.04 arhive, etc. Toate fișierele din acest dosar cu extensia corectă va fi conectat automat la lista de surse.

După ce ați adăugat un nou depozit, trebuie să actualizați lista de pachete:

Acum este momentul pentru a înțelege modul în care selecția unui pachet de instalare. Pentru a face acest lucru, puteți rula comanda:

Să aruncăm o privire mai atentă la imaginea de mai jos, în cazul în care vom rula următoarele comenzi pentru pachetul Nginx:

Utilizați apt alegerilor selective pentru a fixa pachetul în debian si ubuntu - notează specialistul
Ieșirea comenzii include toate pachetele disponibile ca un depozit Debian, și magazia de Nginx. Dar, prin setarea oferit (și instalate) - 1.9.14, cel mai nou. O altă notă privind cifrele din fața numelor surselor. Aceasta este prioritatea (greutate) a pachetului. Pachetele din depozitele au prioritate 500 set - 100. Instalarea oferă întotdeauna noul pachet cu cea mai mare prioritate.

ponderea valorii de prioritate poate fi după cum urmează:

  • P> = 1000 - pachetul va fi instalat, chiar dacă aceasta duce la o scădere în versiunea deja instalat pachetul
  • 990 <= P <1000 - пакет будет установлен, если не установлена более новая версия
  • 500 <= P <990 - пакет будет установлен, если нет пакета принадлежащего к целевому выпуску или не установлена более новая версия
  • 100 <= P <500 - пакет будет установлен, если нет кандидатов из других источников или установленного пакета более новой версии
  • 0

  • P <0 - пакет не будет установлен ни при каких условиях
  • P = 0 - nedefinit stare, nu este folosit

Utilizați o greutate mai mare de 1000 ar trebui să fie precaut, mai ales în cazul în care preferințele includ selectarea măștii, în acest caz, nu puteți solicita să efectueze o scădere dată întregului set de pachete (pentru dependențe), ceea ce poate duce la rezultate neașteptate.

Greutatea 990-1000 actualizează, de asemenea, pachetele deja instalate, dar crește doar versiunile lor. Pericolul utilizării necontrolate a acestor două moduri este că acestea pot fi rupte, dependențe și pachete de partid, prin urmare, șterse, ceea ce poate duce la funcționarea defectuoasă a sistemului parțial sau complet.

Separat se concentreze pe diferențele dintre greutatea în intervalul 500-990 și 990-1000.

Deci, cu greutatea de 500 și peste noul pachet va fi întotdeauna instalat și înlocuiți pachetul existent în cazul în care acțiunea ar fi în mod clar definite de către utilizator. Astfel echipa:

actualiza pachetul sau un set de pachete la cele mai recente versiuni la o greutate de 500 și de mai sus. De exemplu, am instalat 7 pe Debian 2.2 apache, se adaugă noi arhive de la Debain 8 și uita-te la stabilirea candidatului:

Utilizați apt alegerilor selective pentru a fixa pachetul în debian si ubuntu - notează specialistul
În acest caz, putem instala pachetul apache2 orice greutate 5-100, rezultatul va fi același. Deci, ce este diferența dintre 500-990 și 990-1000?

Diferența constă în conceptul de eliberare țintă. care în mod implicit nu este setat, astfel încât comportamentul sistemului cu greutăți 5-100 va fi la fel. Pentru a specifica eliberarea țintă în /etc/apt/apt.conf.d a crea un dosar de fișier gol, fără o extensie, de exemplu, implicit, și să facă următoarea linie:

Acesta a stabilit un obiectiv stabilit de versiunea Debian 7. Noi verifica ce se întâmplă acum:

Utilizați apt alegerilor selective pentru a fixa pachetul în debian si ubuntu - notează specialistul
Chiar și în ciuda faptului că am atribuit greutate apache2 Jessie de 900, un candidat pentru instalarea pachetului este de wheezing. din moment ce aparține eliberarea țintă. Pentru a schimba această situație, este necesar să se atribuie greutatea pachetului 990-1000:

Utilizați apt alegerilor selective pentru a fixa pachetul în debian si ubuntu - notează specialistul
Astfel, o indicație clară a eliberării țintă este o măsură de protecție bună împotriva distribuției accidentale de upgrade atunci când este conectat arhive de versiuni mai noi, dar nu exclude instalarea de noi pachete din alte surse, în cazul în care aparțin la eliberarea specificată. O alternativă este o reducere clară a greutății unei noi arhive de distribuție sub 500, dar această abordare credem că este mai puțin fiabile ca fiind mai sensibile la erori administrative.

În fișierul ar trebui să fie plasate una sau mai multe seturi de următoarele directive:

Numele pachetului poate fi specificat ca un întreg, și pe o mască, de exemplu, apache2 *. De asemenea, este posibil să specificați mai multe nume separate printr-un spațiu.

Ca o opțiuni de atașare poate fi un pachet de sursă, versiunea și originea lor. De exemplu, următorul set de orientări va consolida Perl la nivelul liniei de 5.10, iar pachetul de greutate țintă în 1001 va permite să reducă versiunea deja instalată (dacă este necesar).

Și acest design indică sqiud3 primi pachete de la example.com depozit. De exemplu, dacă trebuie să utilizați un ansamblu pachet special și pentru a preveni personalul său de înlocuire, chiar dacă acesta este mai nou.

În cele din urmă, legarea la o anumită problemă, de exemplu, toate pachetele de pe apache2 masca * luate de la eliberarea de wheezing arhive:

Pentru Debian este, de asemenea, conceput pentru a utiliza o construcție:

Pentru valoarea Ubuntu a ambelor n și un meci-cheie și trebuie să conțină numele codului de eliberare.

Nu a fi nefondate, ia în considerare unele scenarii practice.

pachete downgrade

Cel mai adesea are nevoie pentru a reduce versiunea Apache 2.4-2.2, de exemplu, pentru nevoile 1C Company. Deci, în primul rând în sistem ar trebui să fie adăugate la depozitul de la o ediție anterioară, care conține versiunea dorită a Apache este Debian șuierătoare sau precis pentru Ubuntu. Apoi, puteți merge două moduri, de exemplu, setați greutatea 1001 și să înlocuiască pachetele necesare:

Aceasta este o operație potențial periculoasă, astfel încât înainte de a efectua instalarea ar trebui să efectueze teste ale sale:

În cazul în care producția nu se încadrează în ecran, aceasta ar trebui să redirecționeze mai puțin de utilitate:

Apoi am ajuns la concluzia cu atenție de studiu. Cea mai mare atenție este acordată pachetele care vor fi eliminate sau înlocuite cu versiuni mai vechi.

Utilizați apt alegerilor selective pentru a fixa pachetul în debian si ubuntu - notează specialistul
Dacă totul merge bine, instalarea poate fi efectuată. Cu toate acestea, am fost sfătuiți să nu folosească greutatea mai mare de 1000, așa cum este pericolul de pachete accidentale de reducere, de exemplu, atunci când actualizarea. Este mai sigur pentru a seta greutatea 990-1000 și o pre-dezinstalare pachetele.

Pentru a elimina pachetele mai întâi a obține o listă a acestora, pentru aceasta este comanda dpkg -l, urmat de selecție pentru numele pachetului.

Utilizați apt alegerilor selective pentru a fixa pachetul în debian si ubuntu - notează specialistul

Eliminați comanda pachete instalate:

De asemenea, puteți elimina toate pachetele de configurare, pentru a efectua din nou

Cu toate acestea, rețineți că această operație va șterge toate setările și datele referitoare la pachetul, în cazul MySQL sau PostgreSQL acest lucru va duce la o pierdere completă a datelor, astfel încât face o copie a unui conținut și setările de pre-dorit.

Apoi, puteți instala pachetul, de pre-testat.

Utilizați apt alegerilor selective pentru a fixa pachetul în debian si ubuntu - notează specialistul
Rezultatul final este același, dar procesul este mai sigur, deoarece procesul de instalare adaugă numai la pachetele de pe sistemul dvs., o eliminare pachet se face manual, ceea ce oferă un control suplimentar. În viitor, pachetele deja instalate vor primi actualizări în sprijinul eliberării sale, dar nu trebuie să se teamă că orice pachete poate fi abandonat fără știrea noastră, de exemplu, din cauza unei erori în pachetele de instalare de fixare.

Actualizarea pachetelor

Teoretic, procesul de îmbunătățire nu este diferit de diapozitiv. Conectarea magaziei, setați preferințele și pachetele de actualizare. Dar, în practică, acest proces se confruntă cu multe dificultăți. Principala dificultate devine ca noua problema pachetelor sunt asamblate într-un mediu de noi biblioteci, și, prin urmare, trebuie să fie actualizate multe dependențe, care, la rândul său, trage pe ele dependența lor etc. etc.

În general, modul corect de a îmbunătăți pachetul este adunarea înconjurat de distribuția actuală a codului sursă deb-src din noua ediție a depozitului. Cu toate acestea, această metodă este dincolo de domeniul de aplicare al acestui articol.

Vă vom arăta un exemplu practic de încercări de a îmbunătăți versiunea pachetului. În primul rând, care leagă depozitele de o problemă proaspătă, asigurați-vă că pentru a specifica eliberarea țintă sau reduce prioritatea lor, de exemplu, următoarele directive:

Ei bine, se adaugă distribuții, prioritățile pus candidații testați, totul pare să fie bine. Încercați să instalați pachetul în modul de testare:

Utilizați apt alegerilor selective pentru a fixa pachetul în debian si ubuntu - notează specialistul
Imediat se confruntă cu problema dependenței. În plus, pachetul trebuie să fie actualizat dpkg, care este una dintre componentele cheie ale sistemului. În acest caz, vom încerca să instalați manual dependențele și a obține o listă de pachete care necesită în creștere:

Utilizați apt alegerilor selective pentru a fixa pachetul în debian si ubuntu - notează specialistul
Toate aceste pachete ar trebui, de asemenea, adăugați la setările de preferință, iar apoi efectuați din nou instalarea și să încercați să obțineți o nouă listă de dependențe nesatisfăcute. Pentru entuziasm, acest proces este asemănător cu trecerea o căutare bun și vă poate ține ocupat pentru o lungă perioadă de timp.

Ei bine, totul pare a fi adăugate, după cum putem vedea în lista de preferințe au fost cele mai neașteptate pachete (si am vrut doar să actualizeze Apache):

Utilizați apt alegerilor selective pentru a fixa pachetul în debian si ubuntu - notează specialistul

Testarea instalației și a vedea un rezultat neașteptat:

Utilizați apt alegerilor selective pentru a fixa pachetul în debian si ubuntu - notează specialistul
Da, dacă lăsați totul așa cum este, noul Apache vom livra, dar va elimina partea utilitarelor sistemului. Acest lucru se întâmplă din cauza dependențele rupte. Care este soluția? Upgrade-le la versiuni ale noii emisiuni, și anume din nou, vom începe încercarea de a rezolva dependențele. Acest lucru este cu siguranță un proces interesant, cel mai important lucru - să se oprească la timp, pentru a evalua gradul de schimbare în distribuție și să se gândească la trecerea completă la noua versiune, în schimb, pentru a construi un fel de monstru lui Frankenstein.

Resurse suplimentare: