Debian depozit - o colecție de pachet Debian, plasat într-un copac director special, care au, de asemenea, mai multe fișiere suplimentare cu indici și checksum de pachete. În cazul în care utilizatorul adaugă un depozit la dosarul lui /etc/apt/sources.list, el va putea vedea cu ușurință și instala pachetele din depozit, ca și în cazul în care pachetele sunt stocate în Debian.
Depozitul poate fi accesat tot timpul, dar poate nu (de exemplu, CD-ROM), cu toate că primul caz este mai frecventă.
Acest document explică modul în care funcționează depozitele Debian, cum să le creați și cum să adăugați în mod corect fișierul sources.list.
feedback-ul
Cum să opereze magazia
Depozitul este format din cel puțin un director, care stochează pachete deb două fișiere speciale: Packages.gz pentru pachetele binare și Sources.gz pentru pachete de sursă.
În cazul în care depozitul este listat corect în sources.list (mai mult pe acest lucru mai târziu), apoi apt-get va descărca Packages.gz fișier index pentru pachetele binare (cuvântul cheie deb) și fișierul Sources.gz pentru pachetele sursă (cuvinte cheie deb-src) .
Packages.gz conține numele, versiunea, dimensiunea, descrierea scurtă și completă și dependențele pentru fiecare pachet, plus unele informații suplimentare care nu ne interesează. Toate aceste informații sunt citite (și utilizate de către) Debian administratorii de pachete, cum ar fi dselect sau aptitudini.
Sources.gz conține numele, versiunea și de a construi dependențe (pachetele necesare pentru a construi programul) fiecărui pachet (plus unele informații suplimentare, care nu este interesant pentru noi din nou). Această informație este utilizată de sursa de apt-get și programe similare.
În plus, poate exista un fișier de lansare opțională. conține informații despre depozit, care este utilizat pentru Fixarea. lucruri interesante, dar aici este considerat nu va. Despre fix puteți citi în ghid APT.
Astfel, după propriile sale setări de depozitare, puteți obține o listă și a stabilit propriile pachete cu pachete din magazia Debian; dacă actualizați un pachet, acesta va fi actualizat atunci când utilizatorul execută apt-get upgrade; În plus, fiecare utilizator poate vedea cu ușurință o scurtă descriere și alte informații importante despre pachetele.
În plus, în mod corespunzător de către registrele centrale pot oferi pachete diferite pentru fiecare distribuție susținută și pentru fiecare (în prezent, unsprezece) a sprijinit arhitecturi; apt va prelua în mod automat cel potrivit pentru pachetul de mașină al utilizatorului, utilizatorul nu trebuie să se împovăreze cu cunoștințe inutile tuturor acestor arhitecturi. De asemenea, puteți grupa pachete în componente, la fel ca pachetele Debian sunt împărțite în principal. non-free și contrib. Din acest motiv, mai ales în cazul în care programul poate rula pe mai multe arhitecturi, vei iubi arhive de pachete.
depozit Setare
Există două tipuri de arhive: cele mai complexe, în cazul în care utilizatorii au nevoie pentru a specifica nu numai calea la magazia, dar, de asemenea, distribuția și componentele (în cazul în care există o alegere, apt va descărca automat fișierul în arhitectura dorită), și simplu, în cazul în care utilizatorul trebuie să specifice numai calea completă (și apt nu aveți nevoie pentru a afla care pachete sunt cele corecte). Primul tip este un pic mai complex pentru a configura, dar mai ușor de utilizat, și acestea ar trebui să fie întotdeauna utilizate pentru arhive complexe și / sau pe platforme; al doilea este mai ușor de configurat, dar numai potrivit pentru arhive-o singură arhitectură mică sau.
Deși nu este destul de bine, dar voi suna fostele Repositories automate. depozit convențional și în al doilea rând.
depozit automat
Structura magaziei automată cu arhitecturi și componentele standard Debian arată astfel:
Exemplul 1. Standard Repository Debian
pachete gratuite sunt în directorul principal; nu liber la non-free. și liber, în funcție de non-free în contrib. În momentul de față, în Debian suportă 11 arhitecturi; cele mai multe directoare pentru ei nu sunt afișate pentru concizie.
Fiecare binary- * director conține fișier Packages.gz și un fișier de lansare opțională; fiecare director sursă conține un fișier Sources.gz și un fișier de lansare opțional. Rețineți că pachetele în sine nu sunt situate în același director ca și fișierele index, deoarece fișierele index conțin căi către fiecare pachet; De fapt, acestea ar putea fi oriunde în depozit. Acest lucru face posibil pentru a crea bazine.
Puteți crea cât mai multe distribuții și componente și să le numim așa cum doriți; ceea ce este prezentat în exemplul de mai utilizat în Debian. Puteți, de exemplu, de a crea distribuțiile curente și beta (în loc de stabil (stabil). Testul (testare) și instabilă (instabilă)), și foo componente. bar. Baz și QUX (în locul principal. contrib și non-free).
Deși puteți utiliza orice componentă nume este de obicei cel mai bine să rămânem la standardul Debian, deoarece scopul lor este deja clar utilizatorii Debian.
depozit obișnuit
arhive triviale constau în directorul rădăcină unul și mai multe subdirectoare după cum doriți. Deoarece utilizatorii trebuie să specificați calea către directorul rădăcină al magaziei și calea relativă între rădăcină și directorul cu fișierul index, puteți crea foldere cum doriți (chiar și pentru a pune totul într-un singur director rădăcină, o cale relativă în acest caz este „/“).
Exemplul 2. repository normal cu două subdirectoare
Crearea fișier index
dpkg-scanpackages creează un fișier Pachete. și dpkg-scansources fișier Surse.
Rezultatul ambelor programe direcționate către stdout (stdout); astfel, pentru a comprima fișiere, puteți utiliza lanțul de comandă: dpkg-scanpackages argumente | gzip -9c> Packages.gz.
Aceste programe de lucru într-un mod similar; au trecut două argumente (în realitate există și altele, dar acestea nu sunt prezentate aici, puteți citi despre ele în paginile manualului); primul parametru specifică directorul cu pachetul, iar al doilea fișier de înlocuire. Pentru arhive simple de fișiere nu este nevoie de suprascriere, dar încă este nevoie de acest argument, pur și simplu treci / dev / null.
dpkg-scanpackages pachete .deb scanează; -scansources dpkg scanează .dsc fișiere. Necesare pentru a avea fișiere .orig.gz. .diff.gz și .dsc împreună. .changes fișiere sunt opționale.
Să presupunem că avem un depozit banal, cum ar fi în exemplul 2, „Un trivială Repository cu două subdirectoare“. Pentru a crea cele două fișiere index trebuie să fie introduse pentru el:
Dacă aveți un depozit la fel de complex ca și exemplul 1, „Standard Repository Debian». atunci trebuie să scrie unele script-uri pentru a automatiza procesul.
De asemenea, puteți utiliza parametrul pathprefix pentru a simplifica sintaxa; cititorul este invitat să facă acest lucru ca un exercițiu. (Acest lucru este descris în pagina de manual).
Crearea fișierelor de lansare
Dacă doriți să permiteți utilizatorilor magazia dumneavoastră de a utiliza mecanismul de blocare. acesta trebuie să includă un fișier de lansare în fiecare director care conține un fișier index. (Pentru detalii privind fixarea în ghid APT).
Fișierele de lansare sunt simple și scurte fișiere text din formularul de mai jos:
Numele distribuției Debian, care include pachetele din acest director (sau pentru care sunt destinate), cum ar fi un stabil (stabil). testare (testare) sau instabilă (instabilă).
Componenta, la care pachetele sunt în directorul, de exemplu principal. non-free. sau contrib.
Orice informație referitoare la pachetele sau la magazia. Dezlănțui imaginația.
Mașini Arhitectura că pachetele în acest director, cum ar fi i386. SPARC sau sursa.
Este foarte important pentru a obține Arhiva și Arhitectură. deoarece acestea sunt utilizate pentru fixarea. Câmpurile rămase sunt mai puțin importante.
punerea în comun
Cu arhive automate, distribuirea pachetelor în diferite directoare va duce rapid la probleme. Aceasta presupune, de asemenea, o risipă de spațiu și de lățime de bandă, cât mai multe pachete (de exemplu, pachete de documentare), care sunt aceleași pentru toate arhitecturile.
In astfel de cazuri, o posibilă soluție este un bazin. Poole - un director opțional în magazia care conține toate pachetele (pachetele pentru toate distribuțiile arhitecturi binare, componenta și toate pachetele cu codul sursă). În combinație cu combinația potrivită de fișiere Override (care nu sunt descrise în acest document) și de script-uri pot fi evitate multe probleme. Un exemplu excelent este depozitul cu piscina in sine Debian depozit.
Piscinele sunt utile numai pentru arhive mari; Sunt încă singur și nu cred că va avea nevoie în viitorul apropiat, așa că nu explică cum să-l creați. Dacă credeți că o astfel de secțiune ar trebui să fie adăugate și scrie-l și contactați cu mine.
instrumente
Există diverse instrumente pentru a automatiza și a simplifica crearea de arhive Debian; Acesta este listat cele mai importante.
apt-ftparchive - este folosit pentru a muta o colecție de fișiere de pachete Debian într-o ierarhie corectă arhivă corespunzătoare arhiva oficială a Debian. Acest program face parte din pachetul apt-utils.
apt-mutare - este folosit pentru a muta o colecție de fișiere de pachete Debian într-o ierarhie arhiva adecvată corespunzătoare arhiva oficială a Debian.
Utilizarea magaziei
Folosind un depozit este foarte simplu, dar aceasta depinde de ce tip de depozit: binar sau sursă, și automată sau obișnuită.
Fiecare depozit devine o linie în sources.list; pentru magazia cu pachete binare deb folosind comanda. și la codul sursă al echipei depozit deb-src.
Fiecare linie are următoarea sintaxă:
Pentru arhive automate, trebuie să specificați distribuția și unul sau mai multe componente; de distribuție nu trebuie să se termine cu un slash.
Exemplul 3. Două Repozitorii automate din sources.list mea
Două linii afișate indică un circuit binar și o ftp://sunsite.cnlab-switch.ch/mirror/debian/ rădăcină sursă depozit având. distribuția instabilă (instabilă) și componentele principale. contrib și non-free.
În cazul în care depozitul nu este automată, atunci distribuția specifică calea în raport cu fișierul index și calea trebuie să se termine cu un slash, și pot fi specificate componentele.
Exemplul 4. Două depozit comun de la sources.list meu
Prima linie conectează binar depozit / home / aisotton / rep-exactă / binare. stocate pe mașina mea locală; a doua linie leagă codul sursă depozit / home / aisotton / recalificări-exactă / sursă.