# Archiwa FTP Debiana

## Do czego służą te wszystkie katalogi w archiwach FTP Debiana?

Programy przystosowane dla Debiana dostępne są w jednym z kilku katalogów na każdym serwerze lustrzanym Debiana.

Katalog `dists` jest skrótem od "distributions" (z ang. dystrybucje) i jest miejscem, gdzie umieszczane są aktualnie dostępne wydania (i zapowiedzi wydań).

Katalog `pool` zawiera aktualne pakiety, zobacz pools.

Dodatkowo udostępnione są następujące katalogi:

/tools/:

- Narzędzia DOS'owe do tworzenia dyskietek startowych, dzielenia dysku na partycje, kompresji i dekompresji plików oraz startowania Linuksa.

/doc/:

- Podstawowa dokumentacja Debiana, czyli FAQ (najczęściej zadawane pytania), informacje o systemie zgłaszania błędów itp.

/indices/:

- Pliki Maintainers i override.[The Maintainers file and the override files.]

/project/:

- głównie materiały opiekunów takie jak:

  project/experimental/:

- Ten katalog zawiera pakiety i narzędzia, nad którymi ciągle trwają prace i są aktualnie na etapie testów alfa. Użytkownicy nie powinni tych pakietów używać, ponieważ może to być niebezpieczne, nawet dla najbardziej doświadczonych.

project/orphaned/:

- Pakiety osierocone, czyli porzucone przez swoich opiekunów i wycofane z dystrybucji.

## Ile dystrybucji Debiana jest w katalogu `dists`?

Zazwyczaj są tam trzy dystrybucje, "stable" (stabilna), "testing" (testowana), "unstable" (niestablina, rozwijana). Czasami jest także dystrybucja "frozen" (zamrożona) (zob. frozen).

## A co z tymi wszystkimi nazwami jak "slink", "potato" itp.?

Są to tylko swego rodzaju "kryptonimy". Kiedy dystrybucja Debiana jest w fazie przygotowywania, nie ma numeru wersji, tylko kryptonim. Zostały one nadane, żeby ułatwić pracę serwerom lustrzanym i uniknąć zbędnego kopiowania, kiedy dystrybucja np. zmienia stan z niestabilnego na stabilny.

Aktualnie, `stable` jest dowiązaniem symbolicznym do `woody` (i.e. Debian GNU/Linux 9) a `testing` do `sarge`. Oznacza to, że `woody` jest aktualnie dystrybucją stabilną, a `sarge` jest w fazie testów.

`unstable` jest stałym dowiązaniem symbolicznym do `sid`, jako że `sid` jest zawsze wersją niestabilną (see sid).

### Jakie inne nazwy były wcześniej?

Wcześniej używano nazw: `buzz` dla wydania 1.1, `rex` dla wydania 1.2, `bo` dla wydania 1.3.x, `hamm` dla wydania 2.0, `slink` dla wydania 2.1 i `potato` dla wydania 2.2.

### W jaki sposób powstają nazwy wydań?

Jak na razie były zapożyczane z filmu "Toy Story" wytwórni Pixar.

- buzz - (Buzz Lightyear) astronauta,

- rex - tyranozaur,

- bo - (Bo Peep) dziewczynka, która zaopiekowała się owieczką,

- hamm - świnka-skarbonka,

- slink - (Slinky Dog) "przegubowy" pies,

- potato - oczywiście Pan Ziemiak,

- woody - drewniany kowboj,

- sarge - sierżant w armii plastikowych żołnierzyków.

## A co z "frozen"?

Kiedy dystrybucja "testing" jest wystarczająco dojrzała, kierownik wydania zaczyna ją "zamrażać". Zmniejszane jest tempo aktualizacji pakietów, aby ograniczyć ilość błedów, które pojawiają się w wersji niestabilnej, przenoszonych do testowej.

Po pewnym czasie, dystrybucja "testing" jest całkowicie zamrożona, co oznacza wstrzymanie aktualizacji pakietów, o ile nie zawierają krytycznych dla wydania błędów. Dystrybucja zamrożona przechodzi przez kilkumiesięczny okres próbny składający się na przemian z aktualizacji i z okresów głębokiego zamrożenia nazywanych "cyklami testowymi".

Prowadzimy listę błędów w dystrybucji "testing", które mogą spowodować wstrzymanie konkretnego pakietu, lub całego wydania. W momencie, kiedy liczba takich błędów spadnie poniżej maksymalnej akceptowalnej wartości, dystrybucja uznawana jest za stabilną i wydawana z kolejnym numerem wersji.

Wraz z nowym wydaniem, zdezaktualizowana poprzednia dystrybucja "stable" przenoszona jest do archiwum. Więcej informacji znajdziesz pod adresem Debian - archiwum.

## Dystrybucja "sid"?

sid czyli unstable jest miejscem, do którego trafia większość nowych pakietów. Dystrybucja ta nigdy nie doczeka się bezpośredniego wydania, ponieważ pakiety przeznaczone do wydania muszą najpierw wejść do dystrybucji testing, aby mogły być poźniej wydane w dystrybucji stable. sid zawiera pakiety zarówno dla architektur przeznaczonych do wydania jak i tych nie wydawanych.

Nazwa "sid" także pochodzi z filmu "Toy Story": Sid był chłopcem z sąsiedztwa, który psuł zabawki :-)

### Zapiski historyczne o dystrybucji "sid"

Kiedy dzisiejszy Sid jeszcze nie istniał, organizacja sieciowych archiwów Debiana miała jedną dużą wadę: kiedy dokładano nową architekturę do bieżącej dystrybucji unstable, pakiety zrobione dla niej mogły być wydane dopiero wtedy, gdy ta dystrybucja stawała się nową dystrybucją stable. Dla wielu architektur nie dochodziło do tego i trzeba było przenosić odpowiadające im katalogi, gdy dochodziło do wydania dystrybucji. Było to niepraktyczne, ponieważ przenoszenie katalogów silnie obciążało łącza.

Administratorzy archiwów sieciowych przez kilka lat obchodzili ten problem, umieszczając binaria dla architektur jeszcze nie wydanych w specjalnym katalogu o nazwie sid. Dla architektur jeszcze nie wydanych, tworzono w chwili wydania dowiązanie z aktualnego katalogu stable do sid i od tej pory tworzono je w drzewie unstable, jak zwykle. Takie rozwiązanie było trochę mylące dla użytkowników.

Z nadejściem katalogu ,,pool'' (zobacz pools) zaczęto zapisywać pakiety binarne w lokalizacji kanonicznej w tymże katalogu, niezależnie od dystrybucji, więc wydanie dystrybucji przestało być związane z poddawaniem serwerów lustrzanych dużym obciążeniom (natomiast mamy do czynienia z dość sporymi, rozłożonymi w czasie obciążeniami w trakcie całego procesu rozwijania dystrybucji).

## Co zawiera katalog stable?

- stable/main/: Ten katalog zawiera pakiety oficjalnie uznawane za najbardziej aktualne wydanie systemu Debian GNU/Linux.

  Wszystkie z tych pakietów są zgodne z Wytycznymi Debiana dotyczącymi Oprogramowania Wolnodostępnego i można je swobodnie używać, a także rozpowszechniać.

- stable/non-free/: Ten katalog zawiera informacje o pakietach, których rozpowszechnianie zostało ograniczone przez wymagania stawiane dystrybutorowi, które mówią o zwróceniu szczególnej uwagi, na kwestie praw autorskich danego programu.

  Na przykład, licencje niektórych pakietów zabraniają komercyjnego rozpowszechniania. Inne znowu mogą być redystrybuowane, ale są typu shareware, a nie wolnym oprogramowaniem. Zanim włączy się którykolwiek z tych pakietów do jakiejś redystrybucji (np. na CD-ROMie), należy przestudiować jego licencję i prawdopodobnie przeprowadzić odpowiednie negocjacje.

- stable/contrib/: Ten katalog zawiera informacje o pakietach wolnych w rozumieniu DFSG (Debian Free Software Guidelines) i podlegających swobodnemu rozpowszechnianiu, ale w jakiś sposób zależnych od pakietu, który swobodnemu rozpowszechnianiu nie podlega i z tej przyczyny jest dostępny w sekcji non-free.

## Co zawiera katalog testing?

Pakiety są przenoszone do katalogu testing po tym gdy przejdą stosowny okres testowania w unstable. Muszą być zsynchronizowane ze wszystkimi architekturami na których były zbudowane i nie mogę posiadać zależności, które czyniłyby je niemożliwymi do zainstalowania. Muszą również posiadać mniej błędów krytycznych dla wydania od wersji która jest dostępna w testing. W ten sposób mamy nadzieję, że 'testing' jest zawsze bliżej by stać się kandydatem do wydania.

Więcej informacji o ogólnym stanie "testing" oraz o poszczególnych pakietach dostępnych jest na http://www.debian.org/devel/testing

## Co zawiera katalog unstable?

Katalog 'unstable' to aktualny stan prac deweloperów. Zapraszamy użytkowników do używania i testowania tych pakietów, ale ostrzegamy, o ich stanie gotowości. Przewagą używania dystrybucji niestabilnej jest fakt bycia zawsze na czasie z nowinkami systemu GNU/Linux, ale jeśli coś pójdzie nie tak to nie licz na pomoc ;)

W 'unstable' istnieją również podkatalogi main, contrib, non-free o takim samym przeznaczeniu jak w 'stable',

## Czym są te wszystkie katalogi wewnątrz `dists/stable/main`?

W każdym z głównych drzew katalogów (`dists/stable/main`, `dists/stable/contrib`, `dists/stable/non-free`, `dists/unstable/main/`, itd.), pakiety binarne przechowywane są w podkatalogach których nazwy wskazują na jaką architekturę zostały skompilowane:

- binary-all/, dla pakietów, które są niezależne od architektury. Katalog zawiera na przykład skrypty Perla lub czystą dokumentację.

- binary-i386/, dla pakietów uruchamianych na maszynach PC 80x86.

- binary-m68k/, dla pakietów uruchamianych na maszynach opartych na procesorach Motorola 680x0. Aktualnie jest to robione głównie dla komputerów Atari i Amiga oraz dla niektórych płyt przemysłowych opartych na standardzie VME.

- binary-sparc/, dla pakietów uruchamianych na stacjach Sun SPARC.

- binary-alpha/, dla pakietów uruchamianych na maszynach DEC Alpha.

- binary-powerpc/, dla pakietów uruchamianych na maszynach PowerPC.

- binary-arm/, dla pakietów uruchamianych na maszynach ARM.

Zauważ, że aktualne pakiety binarne dla woodiego i kolejnych wydań nie znajdują się już w tych katalogach, ale w głównym katalogu `pool`. Pliki indeksów (Packages i Packages.gz) zostały zostawione dla zgodności.

Zobacz arches by dowiedzieć się więcej.

## Gdzie jest kod źródłowy?

Udostępniony jest kod źródłowy każdego elementu systemu Debian. Co więcej, ustalenia licencji większości programów w systemie nakazują aby kod źródłowy, albo informacja, gdzie jest udostępniony była rozpowszechniana razem z programami.

Zazwyczaj kod źródłowy jest umieszczony w katalogach "source", które są umieszczone w tym samym miejscu, co katalogi z binariami przeznaczonymi dla konkretnych architektur. Aktualnie można go znaleźć w katalogu `pool` (zobacz pools). Aby pobrać źródła bez zagłębiania się w strukturę archiwum, spróbuj użyć polecenia `apt-get source nazwapakietu`.

Niektóre pakiety, ze względu na ograniczenia zawarte w ich licencji, publikowane są tylko w postaci źródeł. Przykładem takiego pakietu jest `pine`, zajrzyj do pine aby dowiedzieć sie więcej.

Kod źródłowy może, ale nie musi być dostępny dla pakietów w katalogach "contrib" i "non-free", które formalnie nie są częścią systemu Debian.

## Co jest w katalogu `pool`?

Dawniej pakiety były składowane w podkatalogach katalogu `dists` odpowiadających dystrybucji, która je zawierała. Wynikały z tego różne trudności, np. serwery lustrzane musiały pobierać duże ilości danych, kiedy wprowadzano większe poprawki.

Pakiety przechowywane są w wielkim "worku" ("pool"), którego struktura oparata jest na nazwach pakietów źródłowych. Aby dało się nim łatwiej zarządzać, podzielono go na podkatalogi według sekcji ("main", "contrib", "non-free") oraz pierwszych liter nazw pakietów. W tym drzewie umieszczone są katalogi dla każdego pakietu, które zawierają binaria dla wszystkich architektur oraz źródła, z których je wygenerowano.

Możesz sprawdzić gdzie jest umieszczony pakiet wydając polecenie `apt-cache showsrc nazwapakietu` i odczytując linię "Directory:". Na przykład pakiety `apache` są przechowywane w `pool/main/a/apache/`. Ponieważ jest bardzo dużo pakietów `lib*`, są one traktowane w nieco odmienny sposób: na przykład pakiety libpaper umieszczone są w `pool/main/libp/libpaper/`.

Katalogi `dists` są ciągle używane do przechowywania plików z indeksami przez programy takie jak `apt`. Także, starsze dystrybucje nie zostały przystosowane do używania mechanizmu "pools".

Nie musisz zaprzątać sobie głowy tymi informacjami, `apt` i przypuszczalnie `dpkg-ftp` (zobacz howtocurrent) zajmą się tym za ciebie.

## Co jest w "incoming"?

Kiedy opiekun przesyła pakiet do archiwum, umieszcza się go w katalogu "incoming" do czasu potwierdzenia jego pochodzenia i sprawdzenia, czy rzeczywiście ma zostać tam umieszczony.

Zazwyczaj nikt nie powinien instalować pakietów z tego katalogu. Jednakże dla bardzo rzadkich przypadków awaryjnych jest on udostępniony pod adresem http://incoming.debian.org/. Możesz pobrać z niego pakiety samodzielnie, sprawdzić podpisy GPG i sumy kontrolne MD5 w plikach .changes i .dsc a następnie je zainstalować.