Cărui pachet îi aparține un fișier în Linux? Manageri de pachete pe sistemele Linux

Un sistem ușor de utilizat este format din multe (sute și mii) de programe și utilitare. În Linux, fiecare componentă a sistemului este reprezentată ca pachet. Toate operațiunile asociate cu modificarea compoziției sistemului: instalarea, îndepărtarea, verificarea, actualizarea componentelor sunt efectuate pe pachete. În general, punga de plastic- acesta este un mijloc de a vă asigura că utilizatorul administrator, la modificarea sau actualizarea conținutului software al sistemului, nu funcționează cu fişiere(ale cărui nume îi sunt uneori necunoscute), dar cu anumite funcţionalitate sistemul în sine: de exemplu, nu i-a adăugat „500 de fișiere”, ci „server Apache WWW”.

Arhiva fișierelor

La prima vedere, programul constă dintr-un fișier - executabil -: rulăm fișierul, obținem un program de lucru. Cu toate acestea, în timpul muncii, chiar și cel mai mult program simplu folosește alte fișiere care conțin diverse resurse: biblioteci, fișierele de configurare, file găuri și chiar lansează alte programe. Pentru ca programul să funcționeze cu adevărat, este necesar, pe lângă fișierul executabil principal, să se asigure că toate fisierele necesare cu resurse.

Este clar că atunci când instalați sau dezinstalați un program, trebuie să aveți grijă de toate fișierele pe care le folosește (dintre care chiar pot fi multe). Acest - prima sarcină de lot: toate fișierele utilizate de program sunt combinate într-un singur fișier - Arhiva. Acest lucru vă permite să nu copiați toate fișierele separat atunci când instalați programul și apoi să le ștergeți în același mod, ci să lucrați cu toate datele programului ca un întreg - instalați și eliminați un pachet.

Arhivă de fișiere Un arbore de directoare reprezentat ca un singur fișier constând din conținutul tuturor fișierelor din arbore și informații despre numele și atributele fiecărui fișier.

Nu există o cerință strictă ca un pachet să conțină un singur program. Este firesc să combinați într-un pachet astfel de resurse cu care este convenabil să lucrați ca un întreg. Ar putea fi program separat sau un set de utilitare (de exemplu, coreutils, utilitățile de bază pe care Linux le-a moștenit de la UNIX) sau un modul cu capabilități suplimentare de program sau resurse comune mai multor programe. În proces de dezvoltare și/sau perimire software Separarea unor sarcini într-un pachet separat poate face sau distruge sensul, astfel încât modul în care sunt grupate resursele nu este ceva care este ales o dată pentru totdeauna: pachetele pot fi împărțite și îmbinate.

Cel mai simplu și mai tradițional modul Linux combinați mai multe fișiere într-unul singur - utilizați utilitarul tar.

tar a apărut mult mai devreme decât Linux și a fost folosit inițial pentru a crea arhive de fișiere pe bandă magnetică. De aici numele său - t maimuţă ar chiver, „arhivator pentru benzi (magnetice)”. În prezent, tar este prezent în orice sistem asemănător UNIX și vă permite să lucrați cu arhive de fișiere pe orice suport.

Methodius, după ce a scris mai multe programe și scripturi, a decis să le colecteze într-o arhivă de fișiere, astfel încât să fie mai convenabil să le transfere pe toate sistemele în care se întâmplă să lucreze. Pentru a face acest lucru, Methodius a creat o arhivă cu tot conținutul bin/subdirectorului său.

Methody@localhost:~ $ tar -cf methody.progs.tar bin/ methody@localhost:~ $ tar -tf methody.progs.tar bin/ bin/loop bin/script bin/to.sort bin/two

Exemplul 1. Crearea unei arhive de fișiere folosind tar

Primul parametru al tarului este format din două părți: operația care trebuie efectuată pe arhivă, în acest caz „c” ( c reate, create) și cheia „f” care specifică că arhiva trebuie creată într-un fișier, numele fișierului arhivă este următorul parametru. Numele arhivei poate fi orice, dar Gurevich a sfătuit să îi furnizeze extensia „.tar” pentru a nu fi confundat mai târziu. Numele arhivei este urmat de numele fișierelor și directoarelor care ar trebui să fie împachetate.

Cu fiecare directorul specificat tar funcționează recursiv, adică împachetează toate fișierele și subdirectoarele pe care le conține.

Pentru a verifica ce fișiere au fost incluse în arhivă, Methodius a vizualizat conținutul arhivei rezultate cu comanda „tar -tf” nume_arhivă"("t" - vizualizare, "f" folosește fișierul specificat de următorul parametru). Aici Metodiu a atras atenția asupra a două împrejurări. În primul rând, numele fișierelor sunt salvate în arhivă împreună cu calea. În al doilea rând, toate căile salvate în arhivă sunt relative.

La despachetare arhiva tar fișierele sunt extrase împreună cu calea, subdirectoarele lipsă sunt create după cum este necesar. tar ia în considerare toate căile în raport cu directorul său de lucru. Dacă Methodius își despachetează acum arhiva (cu comanda „tar xf nume_arhivă"), atunci va fi creat un subdirector „bin/” în directorul de lucru și toate fișierele din arhivă vor fi scrise în acesta.

Methody@localhost:~ $ tar -xvf methody.progs.tar bin/ bin/loop bin/script bin/to.sort bin/two

Exemplul 2. Despachetarea arhivei

Comutatorul „v” îi spune tarului să fie „verbos”, adică să scoată mai multe mesaje de diagnosticare, astfel încât la despachetarea tar va tipări numele (cu calea) tuturor fișierelor pe care le scrie. Dacă există deja un fișier în directorul de lucru pe care tar intenționează să îl creeze la despachetare, atunci acel fișier va fi pur și simplu înlocuit fisierul din arhiva. Deci, când Methodius și-a despachetat arhiva, subdirectorul „bin/” cu tot conținutul său înlocuitîntr-un subdirector din arhivă. În această situație, acest lucru nu este înfricoșător, deoarece fișierele din arhivă sunt aceleași, dar dacă Methodius și-ar fi schimbat unele dintre fișierele în „bin/” înainte de a despacheta, ar fi pierdut toate modificările.

Format pachet

Un pachet are alte scopuri în afară de stocarea unei arhive de fișiere (discutate în următoarele două secțiuni), așa că o arhivă de fișiere obișnuită precum .tar nu este foarte potrivită pentru un pachet pe Linux, dar necesită un format special. Există mai multe astfel de formate în Linux (o scurtă listă și descriere sunt în secțiunea de instalare Package.Package), sistemul Methodius folosește unul dintre cele mai comune - rpm, așa că toate exemplele din această prelegere îl vor folosi. Pentru a lucra cu pachete într-un format special, aveți nevoie de un program de instalare special, care se numește și rpm: instalează, elimină, actualizează și verifică pachetele.

Un pachet rpm este un singur fișier cu toate datele necesare. Există anumite convenții (deși nu foarte stricte și consecvente) referitoare la numele fișierelor pachet. De exemplu, fișier rpm care contine trusa utilități standard coreutils, în sistemul Methodius se numește coreutils-5.2.1-some5.rpm: first - numele pachetului, apoi separate printr-o cratimă - informații de serviciu despre numerele de versiune ale software-ului și pachetul în sine.

Înregistrarea în sistem

Deci, pachetul cu componenta de sistem este, în primul rând, arhiva fisierelor, care stochează totul fisierele necesareîmpreună cu căile către acestea (adică directoare). Când există multe componente, trebuie să vă asigurați că pachetele diferite nu conțin fișiere cu același nume și cale, astfel încât un fișier aparținând unui pachet să nu poată fi înlocuit cu un fișier dintr-un alt pachet în timpul instalării. Urmăriți acest tip conflicte pachete - a doua sarcină de lot.

Pentru a preveni conflictele, sistemul trebuie să stocheze informații despre toate pachetele deja instalate și fișierele care le aparțin. Odată ce știți exact ce fișiere aparțin unui pachet, puteți elimina complet pachetul fără a lăsa sau a elimina nimic în plus. Această abordare previne formarea de „gunoi” în sistem - fișiere inutile rămase din programe de la distanță- si face operatiunea de instalare/demontare a pachetului complet reversibila.

Rpm stochează informații despre toate pachetele instalate în sistem și fișierele acestora și poate furniza aceste informații la cererea utilizatorului. După ce a citit manualul rpm, Methodius a aflat că o listă cu toate pachetele instalate pe sistem (cel mai probabil foarte lungă, câteva mii de linii) poate fi obținută cu comanda „rpm -qa”, o listă cu toate fișierele aparținând pachetului. poate fi obținut cu comanda „rpm -ql” numele pachetului" El a decis să verifice dacă sistemul său avea pachetul coreutils deja cunoscut de el din prelegerile anterioare și să afle ce utilități îi aparțineau:

Metodă@localhost:~ $ rpm -qa | grep coreutils coreutils-5.2.1-some5 methody@localhost:~ $ rpm -ql coreutils | grep bin /bin/basename /bin/cat /bin/chgrp /bin/chmod

Exemplul 3. Ce fișiere aparțin pachetului?

Methodius a primit o listă destul de lungă de nume de fișiere, printre care a găsit multe dintre utilitățile cu care era deja familiarizat și unele necunoscute. Mai mult, la solicitarea unei liste de fișiere, Methodius a folosit doar Nume pachet, fara versiuni- rpm permite oricare dintre pachetele instalate 2.

De asemenea, puteți efectua procedura inversă - aflați despre orice fișier și pachetului căruia îi aparține:

Metoda@localhost:~ $ rpm -qf /etc/passwd setup-2.2.5-some1

Exemplul 4. Cărui pachet îi aparține fișierul?

Fișierele aparținând unui pachet nu pot fi doar șterse, ci și modificate. Acest lucru se poate face în mod deliberat (de exemplu, se editează un fișier de configurare), caz în care la actualizarea sau ștergerea unui pachet, fișierul modificat ar trebui salvat, deoarece conține rezultatul muncii depuse de administrator. Pentru a face acest lucru, sistemul trebuie să poată determina dacă un fișier aparținând unui pachet s-a modificat. Pentru a face acest lucru, pachetul trebuie să stocheze informații despre toate fișierele de arhivă: dimensiune, atribute, verifica suma - în acest caz, procedura de verificare va putea verifica dacă atributele fișierului din pachet corespund atributelor fișierului instalat în sistem. Methodius poate verifica ce s-a schimbat în pachet cu comanda „ rpm -V numele pachetului ».

Metoda@localhost:~ $ rpm -V setup S.5....T c /etc/X11/fs/config S.5....T c /etc/exports S.5....T c / etc/fstab S.5....T c /etc/printcap ..?..... c /etc/securetty

Exemplul 5. Ce s-a schimbat la pachet?

Methodius a primit o listă de fișiere care s-au schimbat de la instalarea pachetului. Aparent, toate acestea sunt fișiere de configurare editate de administratorul de sistem. Methodius a ghicit că combinația de numere, litere și puncte este o listă de atribute prin care se compara rpm fișierele instalate cu datele pachetului, dar pentru a-și da seama ce înseamnă exact fiecare literă, va trebui să citească manualul cu mai multă atenție.

Sistemul Linux este complet descompus în componente: fiecare un fișier în Linux aparține unui singur pachet (și doar unui singur!).

Desigur, cu excepția acelor fișiere care sunt create de utilizatori.

Acest lucru vă permite să reduceți orice modificări în compoziția sistemului la operațiunile pe pachete - de la instalare inițială la upgrade-uri complexe și cuprinzătoare. În acest caz, același program de instalare, de exemplu rpm, va fi utilizat pentru toate modificările.

Modificarea setărilor sistemului

Pentru a înregistra complet un pachet în sistem, de obicei nu este suficient ca sistemul să stocheze o listă de fișiere aparținând pachetului. Când instalați, dezinstalați sau actualizați un pachet, adesea trebuie să efectuați o serie de operațiuni pentru a actualiza informațiile pachetului, a adapta setări- atât pachetul în sine, cât și cele deja disponibile în sistem, și invers. În plus, unele modificări în sistem, cum ar fi adăugarea și ștergerea pseudo-utilizator, nu se limitează la adăugarea și ștergerea fișierelor și, în plus, depind de actual starea sistemului. Se pare că înregistrarea în sistem nu este doar o chestiune a sistemului, ci și a pachetului în sine. Prin urmare, fiecare pachet trebuie să stocheze informații despre ce acțiuni ar trebui efectuate în momentul diferitelor operațiuni cu acesta - aceasta este a treia sarcină de loturi.

Liste acțiunile necesare prezentat în pachet ca scenarii. Aceste scripturi sunt legate de procedurile de instalare și dezinstalare a unui pachet și pot fi apelate după cum este necesar, atât înainte, cât și după procedura corespunzătoare. Ca rezultat, procedurile de instalare și eliminare a pachetului arată astfel:

  • executarea scripturilor de preinstalare/eliminare;
  • copierea fișierelor din arhivă în sistem sau ștergerea fișierelor din sistem
  • Executarea următoarelor scripturi de instalare/eliminare.

Methody@localhost:~ $ rpm -q --scripts coreutils preinstall scriptlet (prin /bin/sh): # Eliminați paginile de informații din fileutils, textutils și sh-utils. pentru f în /usr/share/info/(fileutils,textutils,sh-utils).info*; face [ -f "$f" ] || continua RPM_INSTALL_ARG1=0 /usr/sbin/uninstall_info „$f” ||: terminat scriptlet postinstalare (prin /bin/sh): /usr/sbin/install_info coreutils.info scriptlet predezinstalare (prin /bin/sh): /usr/ sbin/uninstall_info coreutils.info

Exemplul 6. Vizualizați scripturile într-un pachet

Methodius a aflat că scripturile din pachetul coreutils sunt executate înainte de instalare (preinstalare), după instalare (postinstalare) și înainte de dezinstalare (preuninstall), sunt executate conform standardului. interpret de comenzi(/bin/sh). Toate aceste scripturi sunt necesare pentru a înregistra documentația instalată de pachet în sistemul de informații sau pentru a elimina această documentație din sistem (folosind comenzile /usr/sbin/install_info și, respectiv, /usr/sbin/uninstall_info). Deoarece informațiile construiesc un cuprins general al tuturor documentației disponibile în sistem, copiere simplă dosarele nu ar fi suficiente.

Ca urmare a unor astfel de operațiuni pentru a integra un pachet în sistem, fișiere care nu aparțin acest pachet, sunt create fișiere noi. Dacă programul conținut în pachet folosește serviciile unora serviciu instalat(de exemplu, syslogd), poate fi necesar să înregistrați acest program în fișierele de configurare a serviciului. Desigur, schimbarea fișierelor „străine” în timpul instalării unui pachet este nedorită: mai târziu, când ștergeți pachetul, va trebui să returnați fișierul la starea initiala, ceea ce nu este întotdeauna posibil (de exemplu, după o editare atentă de către administrator). „.scheme” vă permite să evitați editarea fișierelor de configurare. d”, descrise în prelegerea Etapele încărcării sistemului.

Prețul comodității

Comoditatea pe care o primește utilizatorul atunci când lucrează cu pachete nu se realizează de la sine, ci de munca umană: pachetele trebuie create de o persoană, munca sa se numește „menținător de pachete” sau „ambalator”. Responsabilitățile întreținătorul pachetului includ pregătirea unei arhive de fișiere necesare pentru instalarea și dezinstalarea scripturilor și a altor informații despre pachet și conținutul acestuia și combinarea acestora într-un singur fișier pachet.

Funcțiile de creare a unui pachet în format rpm sunt îndeplinite și de program rpm.

Aflați cine a creat pachetul și când, obțineți informatie scurta despre software-ul pe care îl conține, puteți folosi comanda „ rpm -qi numele pachetului ».

Methody@localhost:~ $ rpm -qi setup Nume: setup Relocari: (nu se poate reloca) Versiune: 2.2.5 Furnizor: Some Linux Team Lansare: some1 Data construirii: joi 29 ianuarie 2004 18:08:05 Data instalării: Luni 23 aug 2004 15:08:45 Build Gazdă: shogun.somelinux.org Grup: Sistem/Setări/Alte sursă RPM: setup-2.2.5-some1.src.rpm Dimensiune: 39969 Licență: GPL Ambalator: Leon B. Gourievitch Rezumat: Setul inițial de fișiere de configurare Descriere: Setul inițial de fișiere de configurare care urmează să fie plasate în /etc.

Exemplul 7. Descrierea pachetului

Trebuie luat în considerare faptul că orice pachet care conține software pentru Linux nu este universal. Doar pentru că aveți un astfel de pachet nu înseamnă că acesta poate fi instalat pe sistemul dumneavoastră. Faptul este că diferitele distribuții Linux diferă tocmai prin modul în care este organizat software-ul sistem(distribuțiile vor fi discutate în cadrul prelegerii). Distribuțiile pot diferi în ceea ce privește locația fișierelor și procedurile prevăzute pentru integrarea în sistemul software, ca să nu mai vorbim de faptul că diferite distribuții folosesc format diferit pachete. Aceasta înseamnă că un pachet pregătit pentru o distribuție poate să nu fie compatibil cu alta. Pentru ca un program să apară în distribuția dvs., cineva trebuie să pregătească și să pună la dispoziție pachetul corespunzător.

Pachetul Resurse necesare pentru instalarea și integrarea unei anumite componente în sistem (arhivă de fișiere, scripturi de pre și post-instalare, informații despre pachet și pachetul însoțitor), combinate într-un singur fișier.

În ciuda diferențelor lor specifice, distribuțiile Linux sunt variante ale aceluiași sistem, astfel încât în ​​cele din urmă orice program care rulează pe o distribuție poate fi „adaptat” la oricare alta. Doar pentru asta trebuie să ai textele sursă programul corespunzător. Până acum am discutat doar despre așa-zis pachete binare, în care programele sunt conținute sub formă de fișiere binare (executabile) deja compilate, în această formă programul poate depinde de unele proprietăți ale sistemului și poate să nu funcționeze peste tot. Pentru a obține un program de lucru pe sistem, trebuie să instalați pachetul binar. Cu toate acestea, un pachet poate conține și cod sursă pentru programele care sunt numite original. Disponibilitatea codurilor sursă - condiție cerută distribuția majorității software-ului pentru Linux, consultați prelegerea Politica de licențiere gratuită. Istoria Linux: de la kernel la distribuții. Dacă se dovedește că nimeni nu a pregătit un pachet cu programul de care aveți nevoie pentru distribuția dvs., aveți posibilitatea să instalați pachetul sursă și să compilați singur programul.

Zvonuri că pentru a construi un program din textele sursă nici nu trebuie să știi ce este un „compilator”, este departe de realitate.

După compilarea cu succes, pachetul sursă produce un pachet binar corespunzător care poate fi instalat pe sistem.

operațiunile legate de modificarea compoziției sistemului - instalarea, eliminarea, verificarea, actualizarea componentelor - se efectuează pe pachete. În general, pachetul este un mijloc de a se asigura că utilizatorul administrator, la modificarea sau actualizarea conținutului software al sistemului, nu funcționează cu fişiere(ale cărui nume îi sunt uneori necunoscute), dar cu anumite funcții sistemul în sine: de exemplu, nu i-am adăugat „500 de fișiere”, ci „server Apache WWW”.

Arhiva fișierelor

La prima vedere, programul constă dintr-unul - un fișier executabil: rulăm fișierul, obținem un program de lucru. Cu toate acestea, în timpul rulării, chiar și cel mai simplu program folosește alte fișiere care conțin diverse resurse: biblioteci, fișiere de configurare, fișiere hole și chiar lansează alte programe. Pentru ca programul să funcționeze cu adevărat, este necesar, pe lângă fișierul executabil principal, să se asigure că toate fișierele necesare cu resurse sunt prezente în sistem.

Este clar că atunci când instalați sau dezinstalați un program, ar trebui să aveți grijă de toate fișierele pe care le folosește (dintre care chiar pot fi multe). Acest - prima sarcină de lot: Toate fișierele utilizate de program sunt combinate într-un singur fișier – Arhiva. Acest lucru vă permite să nu copiați toate fișierele separat atunci când instalați programul și apoi să le ștergeți în același mod, ci să lucrați cu toate datele programului ca un întreg - instalați și eliminați un pachet.

Arhiva fisierelor. Un arbore de directoare reprezentat ca un singur fișier constând din conținutul tuturor fișierelor din arbore și informații despre numele și atributele fiecărui fișier.

Nu există o cerință strictă ca un pachet să conțină un singur program. Este firesc să combinați într-un pachet astfel de resurse cu care este convenabil să lucrați ca un întreg. Acesta poate fi un singur program sau un set de utilitare (de exemplu, coreutils, utilitățile de bază pe care Linux le-a moștenit de la UNIX) sau un modul cu capabilități suplimentare de program sau resurse partajate de mai multe programe. Pe măsură ce software-ul evoluează și/sau devine învechit, separarea unor sarcini într-un pachet separat poate deveni mai mult sau mai puțin semnificativă, astfel încât modul în care sunt împachetate resursele nu este ceva care este decis pentru totdeauna: pachetele pot fi împărțite și îmbinate.

Cel mai simplu și mai tradițional mod pentru Linux de a combina mai multe fișiere într-unul singur este utilizarea utilitarului tar 1 a apărut mult mai devreme decât Linux și a fost folosit inițial pentru a crea arhive de fișiere pe bandă magnetică. De aici și numele său - tape archiver, „arhivator pentru benzi (magnetice)”. În prezent, tar este prezent în orice sistem asemănător UNIX și vă permite să lucrați cu arhive de fișiere pe orice suport. Methodius, după ce a scris mai multe programe și scripturi, a decis să le colecteze într-o arhivă de fișiere, astfel încât să fie mai convenabil să le transfere pe toate sistemele în care se întâmplă să lucreze. Pentru a face acest lucru, Methodius a creat o arhivă cu tot conținutul bin/subdirectorului său:

Methody@localhost:~ $ tar -cf methody.progs.tar bin/ methody@localhost:~ $ tar -tf methody.progs.tar bin/ bin/loop bin/script bin/to.sort bin/two Exemplul 13.1. Crearea unei arhive de fișiere folosind tar

Primul parametru al tarului este format din două părți: operația care trebuie efectuată asupra arhivei, în acest caz „c” ( create , create), și cheia „f” care specifică că arhiva trebuie creată într-un fișier, numele fișierului arhivă este următorul parametru. Numele arhivei poate fi orice, dar Gurevich a sfătuit să îi furnizeze extensia „.tar” pentru a nu fi confundat mai târziu. Numele arhivei este urmat de numele fișierelor și directoarelor care ar trebui să fie împachetate. 2 Funcționează recursiv cu fiecare director specificat, adică împachetează toate fișierele și subdirectoarele pe care le conține.

Pentru a verifica ce fișiere au fost incluse în arhivă, Methodius a vizualizat conținutul arhivei rezultate cu comanda „tar -tf archive_name” (“t” – vizualizare, „f” utilizați fișierul specificat de următorul parametru). Aici Metodiu a atras atenția asupra a două împrejurări. În primul rând, numele fișierelor sunt stocate în arhivă împreună cu calea. În al doilea rând, toate căile salvate în arhivă sunt relative.

La despachetarea unei arhive tar, fișierele sunt extrase împreună cu calea, subdirectoarele lipsă sunt create după cum este necesar. tar consideră că toate căile sunt relative, pornind de la directorul său de lucru. Dacă Methodius își despachetează acum arhiva (cu comanda „tar -xf archive_name”), atunci un subdirector „bin/” va fi creat în directorul de lucru și toate fișierele din arhivă vor fi scrise în el:

Methody@localhost:~ $ tar -xvf methody.progs.tar bin/ bin/loop bin/script bin/to.sort bin/two Exemplul 13.2. Despachetarea arhivei

Comutatorul „v” îi spune tarului să fie verbos, adică să imprime mai multe mesaje de diagnosticare, iar acest lucru face ca tar să imprime numele (cu calea) tuturor fișierelor pe care le scrie la despachetare. Dacă există deja un fișier în directorul de lucru pe care tar intenționează să îl creeze la despachetare, atunci acel fișier va fi pur și simplu înlocuit fisierul din arhiva. Deci, când Methodius și-a despachetat "), sistemul lui Methodius folosește unul dintre cele mai comune - rpm, așa că toate exemplele din această prelegere îl vor folosi. Pentru a lucra cu pachete într-un format special, aveți nevoie de un program de instalare special, care este numit și - rpm: Acesta este responsabil pentru instalarea, dezinstalarea, actualizarea și verificarea pachetelor.

Un pachet rpm este un singur fișier cu toate datele necesare. Există anumite convenții (deși nu foarte rigide și consecvente) referitoare la numele fișierelor pachetelor. De exemplu, un fișier rpm care conține un set de utilitare coreutils standard se numește coreutils-5.2.1-some5.rpm în sistemul Methodius: mai întâi - numele pachetului, apoi separate printr-o cratimă - informații de serviciu despre numerele de versiune ale software-ului și pachetul în sine.


Autor: David M Williams
Data: 16 ianuarie 2008
Traducere gratuită: Alexey Dmitriev
Data traducerii: 24 ianuarie 2008

Căutați aplicații open source? Distribuțiile Linux au o tradiție lungă de a împacheta programele în pachete ușor de instalat. Cu toate acestea, căutarea acestor pachete în sine nu este întotdeauna intuitivă și nu se găsesc întotdeauna în forma dorită. Acest articol este despre cum să profitați la maximum de pachetele Linux.

Primul loc de căutat este setul de distribuție CD sau DVD. Toate distribuțiile Linux, cu excepția celor „mai mici”, conțin multe mai multe programe, decât setat de obicei. Când instalați o distribuție, aveți posibilitatea de a alege tipul de sistem pe care îl instalați, ceea ce se reduce adesea la o alegere între stație de lucru si serverul. În funcție de alegere, se instalează seturile corespunzătoare de pachete.

Puteți instala oricând software-ul folosind program de grafică instalarea și dezinstalarea aplicațiilor, dacă distribuția dvs. acceptă acest lucru. În unele cazuri, poate fi necesar să căutați manual pachete activate disc de instalare, unde sunt cel mai probabil toate în același director și listate în ordine alfabetică fără nicio organizare aparentă după subiect. Acest lucru este grozav, atâta timp cât nu trebuie să cauți un pachet al cărui nume nu-l cunoști, ci doar ce face.

Și aici internetul vine în ajutor. Consultați site-uri cu sursă deschisă grozave precum FreshMeat sau . Răsfoiți prin ele pentru noi aplicații interesante.

Nu totul este întotdeauna simplu, chiar dacă găsești ceva potrivit: ia asta ca exemplu. Acest sistem puternic vă permite să operați conținutul site-urilor web și conținutul intranet dedicat open source - sună foarte tare. Este conceput pentru a permite utilizatorilor non-tehnici să creeze și să-și mențină propriile proiecte online în siguranță, profesional și ieftin. Aceasta este aplicația ta clasică LAMP, scrisă în PHP și folosind Apache și MySQL.

Între timp, MySource Classic este disponibil pentru descărcare în două formate: Cum. fișier Zip, sau ca fișier .tar.gz. Ambele formate sunt de arhivă. Aproape toată lumea știe ce este un fișier zip, în timp ce .tar.gz (cunoscut și ca .tgz) este un format specific Linux/UNIX, cunoscut sub numele de tarball.

Tarball este un format convenabil pentru distribuirea codului sursă, este foarte versatil și ușor de portat (cuvântul tar provine de la Tape ARchive - de pe vremea când se foloseau dispozitivele de arhivare pe bandă) Cu toate acestea, este foarte diferit de formatul pachetelor care conțin aplicații din distribuția dvs. Pachetele conțin fișiere binare executabile, plus fișiere de configurare, plus unele fișiere necesare, toate așezate într-o anumită ordine de către creatorul pachetului, fără nicio introducere obositoare din partea dvs.

Lansați un terminal și utilizați comanda tar pentru a răsfoi arhiva; La fel ca în orice în Linux, există mai multe opțiuni.

Puteți dezarhiva tarball-ul folosind comanda gunzip:

gunzip mysource-2.16.2.tar.gz

Aceasta va crea fișier nou numit mysource-2.16.2.tar, examinează-i conținutul cu:

tar -tvf mysource-2.16.2.tar | Mai mult

Conținutul este acum vizibil. Există o altă modalitate de a vizualiza conținutul unui tarball fără a-l dezarhiva, folosind o altă variantă a aceleiași comenzi tar:

tar -tzvf mysource-2.16.2.tar | Mai mult

În general, dezambalarea arhivelor nu este deloc periculoasă, trebuie doar să ai puțină grijă pentru ca fișierele de pe sistemul tău să nu fie deteriorate. Unele tarball-uri creează un subdirector în interiorul directorului curent, unde își despachetează fișierele. Cu toate acestea, alții despachetează totul în directorul curent - acest lucru este deja neplăcut, deoarece trebuie să curățați directorul manual. Dar cel mai neplăcut lucru este că dacă acest director conținea fișiere cu același nume cu cele despachetate - acestea vor fi suprascrise, adică. distrus.

Este și mai rău dacă un administrator neatent despachetează tarball-ul într-un loc complet nepotrivit, de exemplu în directorul rădăcină sisteme. O arhivă rău intenționată poate suprascrie cu ușurință configurația importantă a sistemului sau fișierele executabile. Prin urmare, cel mai bine este să despachetați tarball-ul ca utilizator neprivilegiat într-un director special desemnat și, după despachetare, aranjați conținutul la locul lor.

Deci hai să-l despachetăm. Să folosim din nou gudron:

tar -xf mysource-2.16.2.tar

Sau, ca mai înainte, ocolind etapa gunzip, adăugați opțiunea -z:

tar -xzf mysource-2.16.2.tar.gz

Acum în fața ta sursă sub formă de fișiere și foldere accesibile, exact la fel ca pe computerul creatorului său.

Tarball-urile sunt cel mai comun format de arhivă, dar nu singurul; Uneori puteți găsi arhive cpio care se termină cu extensia (sufix) .cpio. Acest format este de obicei folosit în pachetele rpm și aproape niciodată nu se găsește singur. Dar dacă întâlniți acest format, rețineți că, deși comanda cpio are opțiuni similare cu comanda tar, cpio funcționează la intrarea și ieșirea fluxurilor (conducte), nu a fișierelor, așa că pentru a vizualiza arhiva nu ezitați să scrieți:

cpio-tv< examplefile.cpio

și pentru a despacheta conținutul arhivei:

cpio -i -d< examplefile.cpio

Odată ce tarball-ul este primit și despachetat, sarcina dvs. este să compilați și să instalați programul. Acest format este cel mai universal și nu depinde de tipul de distribuție pe care îl aveți. Există șanse mari ca aplicația să se instaleze, cu condiția să știți ce faceți. Din fericire, „știi ce faci” se reduce de obicei la o serie de trei comenzi:

./configure
face
face instalarea

cu condiția ca dezvoltatorul să fie destul de amabil să furnizeze instrumentul de configurare și Makefile.

Spre deosebire de cele de mai sus, managerii de pachete sunt mult mai inteligenți și mai prietenoși - dar și mult mai puțin universali în ceea ce privește aplicabilitatea la diferite distribuții. Oricum ar fi, au o mulțime de avantaje. Managerul de pachete va ține evidența a ceea ce a fost instalat unde și unde se află acele fișiere. Managerul de pachete vă poate ajuta cu ușurință să găsiți altele noi versiuni disponibile dintre aplicațiile dvs. și, cel mai bine, se asigură că dependențele sunt satisfăcute. Dacă încercați să instalați un pachet care necesită o componentă (cum ar fi o bibliotecă) pentru a funcționa, managerul de pachete se va asigura că versiunea corecta a fost instalată și această componentă (în cazul nostru, biblioteca).

Cele mai multe două format normal pachetele sunt: ​​pachete Debian și pachete RPM. Primul format este folosit de distribuții precum Debian, Ubuntu, Knoppix și altele; Formatul RPM este utilizat în palarie rosie, Fedora, Suse și alții.

Dacă nu vă creați propria distribuție Linux, alegerea managerului de pachete este deja făcută pentru dvs. Am subliniat întotdeauna că diferența dintre distribuțiile Linux este în principal ce manager de pachete este utilizat și ce set de pachete este instalat implicit. De fapt, toate versiunile de Linux folosesc aceleași nuclee, aproape aceleași instrumente GNU - dar principala diferență între distribuții este managerul de pachete.

Deci, dacă cauți noi aplicații open source și găsești un pachet, înseamnă imediat două lucruri. În primul rând, pachetul poate fi sau nu utilizabil pe sistemul dvs., în funcție de formatul său și de formatul pe care îl puteți gestiona. În al doilea rând, atâta timp cât pachetul este în formatul potrivit, poți fi sigur că se va instala fără agitație, fără a fi nevoie să compilați sau să depuneți eforturi herculeene.

Ca ultimă soluție, este posibil să extrageți toate fișierele din pachet și apoi să le instalați manual. După cum am menționat mai devreme, formatul pachetului RPM utilizează formatul de arhivă cpio intern. Comandă simplă rpm2cpio vă va ajuta să dezarhivați arhiva internă. Pentru a extrage toate fișierele dintr-un pachet fără a-l instala, utilizați comanda:

rpm2cpio examplepackage.rpm | cpio -i

În mod similar, un pachet Debian conține un set de tarball-uri arhivate într-un format numit ar; după cum ați putea ghici, acesta este o rudă a formatului tar, dar mult mai fundamental. Faptul că nu acceptă directoare spune multe.

Extrageți conținutul unui pachet Debian astfel:

ar -x examplepackage.deb

Acest lucru va avea ca rezultat două tarball-uri: control.tar.gz și data.tar.gz, plus unul fisier text:debian-binary.

Fișierul debian-binar conține o linie - acesta este pur și simplu numele versiunii pachetului folosit pentru a crea pachetul. Tarball control.tar.gz conține scripturi de instalare și Informatii utile; tarball data.tar.gz conține fișiere binare și de configurare, toate fișierele, necesare programului pentru munca. Dacă este absolut necesar, puteți deschide această arhivă cu tar -xf, deși dacă aplicația este complexă, veți specifica buna treaba scripturi de instalare.

Chiar mai sus, am spus deja că una dintre marile proprietăți ale unui manager de pachete este capacitatea sa de a vă actualiza în mod regulat aplicațiile ultimele versiuni. Instrumentele folosite pentru aceasta variază în funcție de distribuție, dar verificați dacă aveți: Apt (Advanced Package Tool), Yum (Yellowdog updater modificat), Synaptic (extensie grafică Apt) și up2date.

Apt este vechi program bun, care provine din Debian și din distribuțiile aferente, dar acum acceptă și RPM. Nu este atât un singur instrument, cât este un set de utilități; cele mai utilizate sunt apt-get, care descarcă pachete din depozite și apt-cache, care dă seama ce trebuie descărcat de fapt. Synaptic nu oferă funcții noi, dar reunește totul într-o interfață grafică ușor de utilizat.

La fel ca Apt, Yum este un utilitar de linie de comandă pentru pachetele RPM. Poate afla ce este disponibil, poate instala pachete și poate face alte lucruri, cum ar fi listarea pachetelor instalate și eliminarea versiunilor vechi ale pachetelor.

up2date funcționează și cu Pachete RPM, dar oferă acces imediat atât la depozitele Yum, cât și la Apt, oferind astfel mai multe opțiuni.

Așa că intră online, instalează software gratuit, folosește sisteme de operare gratuite.

Salutări, dragi prieteni, cunoștințe și alte personalități.

După cum probabil știți și vă amintiți, am promis că voi acoperi treptat (la cererea dvs.) ciclul Linux, introducându-vă în diferite elemente de bază și trecând foarte treptat de la teorie la practică.

Astăzi vom continua subiectul cunoașterii teoriei și elementelor de bază și, prin urmare, vom vorbi despre un astfel de lucru precum depozitele și tot ceea ce este legat de acestea, de exemplu. Să ne dăm seama cum arată software-ul din interior Linux, cum sunt stocate toate și toate acele lucruri.

Toate această grămadă imensă de pachete cu grămada lor de dependențe unele de altele, gestionate de un manager de pachete, este ceea ce alcătuiește distribuția ta Linux. Dar acesta nu este doar o grămadă de gunoi, ci un sistem ordonat numit - ta-dam! - depozite de pachete software . Cercul este închis - am revenit la primul concept - ce este repertoriu:)

Câteva cuvinte despre nuanțe

În cele din urmă, tot vreau să spun asta, indiferent de ce Linux nu a fost stabil, stabil și indestructibil, totuși utilizatorul trebuie să fie precaut. De exemplu:

  1. Nu este nevoie să ispitești soarta și să instalezi programe în Linux ocolind managerul de pachete, compilare simplă, vor funcționa, dar manager de pachete nu veți ști nimic despre ele, motiv pentru care atunci când actualizați sistemul sau programele riscați să obțineți mai multe probleme pe propriul tău cap decât îți imaginezi. Instalați programe numai ca pachete.
  2. Nu este nevoie să conectați acele depozite despre care aveți o idee foarte vagă. De exemplu, nu este nevoie să conectați depozitele cu cuvinte testarea, depanareși termeni similari, deoarece aceste depozite sunt destinate în primul rând dezvoltatorilor de distribuție înșiși și nu sunt întotdeauna stabile.
  3. Nu conectați toate depozitele disponibile la rând, acest lucru vă poate juca și o glumă crudă. Conectați doar cele mai necesare, nu trebuie să fiți lacomi :)

De exemplu, la instalare sistem de operare FedoraÎn mod implicit, două depozite sunt conectate simultan:

  • Fedora(pachete care se potrivesc cu orice combinație de CD-uri sau DVD-uri)
  • Actualizări(pachete actualizate, mai noi decât depozitul Fedora)

Pentru operatie normala trebuie să te conectezi depozit suplimentar rpmfusion(chiar nu te poți descurca fără el), ceea ce va oferi acces la programe care nu au putut fi incluse în distribuție din cauza restricțiilor de licențiere (aplicații care sunt necesare, cum ar fi mp3, DVD etc.; – acestea includ drivere proprietare pentru ATIȘi NVIDIA; jocuri: Bub's Brothers, Secret Maryo Chronicles, OZN: Alien Invasion, Wörms of Prey, xrick, GLtronși multe, multe altele; emulators: emulator Commodore 64, și Commodore 8bit, emulator Amiga, Nestopia, ZSNESși multe altele). Pentru a conecta acest depozit, este suficient să Linie de comanda(terminal) de la superutilizator () introduceți comenzile:
$ sudo rpm -ivh https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm
$ sudo rpm -ivh https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm

Vă rugăm să rețineți că depozitul rpmfusion este împărțit în două părți: gratuitȘi neliberă. Primul conține programe pur gratuite în înțelegere FSF, distribuit sub GPLși licențe compatibile. Conținutul celui de-al doilea, contrar numelui, este, de asemenea, în mare parte programe gratuite, dar supuse restricțiilor notorii de brevet ale unor state (de exemplu, codecuri audio și video).

Același lucru este valabil și pentru managerul de pachete în Fedora. Pentru normal și lucru convenabil manager de pachete (yum) în Fedora Se recomandă conectarea unui plugin suplimentar cea mai rapidă oglindă. Acest plugin este foarte important: determină nu doar cea mai apropiată oglindă, așa cum fac utilitare similare din alte sisteme de gestionare a pachetelor, ci instalează exact oglindă rapidăîn momentul de față – după timpul de răspuns.
$ sudo yum install yum-plugin-fastestmirror
Pe scurt, ceva de genul asta :)

Postfaţă

Înțeleg că fără practică este destul de dificil să percepi toate acestea din mers, dar nu e nimic de făcut - acestea sunt cele mai de bază și de bază informatii teoretice, cu care fiecare utilizator ar trebui să fie cel puțin familiarizat pentru a avea o idee despre ce este ce și de ce, și să nu bată orbește butoane și să citească termeni necunoscuti.

În articolele următoare ne vom uita la ce este exact să instalezi pachete Linux, cum funcționează acest sistem de operare, ce înseamnă un utilizator (și care este un superutilizator, aka root), și vom vorbi, de asemenea, despre programe și altceva. Stai cu noi.

Ca întotdeauna, dacă există întrebări, completări etc., voi fi bucuros să le văd în comentariile acestui material.

P.S. Mulțumim unui membru al echipei Pantera pentru existența acestui articol.