Debian za kulisami

Post on 23-Jan-2015

2.177 views 1 download

description

"Debian: Behind the Scenes" talk given by Adam Byrtek back in 2003 (in Polish). Quite old, but the overall structure of Debian project haven't changed that much since then.

Transcript of Debian za kulisami

Debian, za kulisamiAdam Byrtek <alpha@debian.org>

Wstęp

O czym wykład nie będzie● Instalacja, konfiguracja, obsługa, administracja

– http://www.debian.org– http://www.debianusers.pl– http://debian.linux.org.pl

O czym wykład będzie (z grubsza)● Historia, sprawy techniczne, filozofia, struktura,

społeczność● Pytania

Wstęp, c.d.

Czym jest Projekt Debian?● "Projekt Debian to grupa osób, które wspólnie

zdecydowały się stworzyć wolny system operacyjny"

Zasadnicze różnice● Członkami społeczność ochotników● Projekt niekomercyjny● Tylko otwarte narzędzia● Wspiera różnorodność

Początki Debiana

Rys historyczny

● Ian Murdock, manifest w roku 1993● Motywacja

– dystrybucja "w duchu Linuksa"– zły stan ówczesnych dystrybucji

● Wsparcie FSF przez pierwszy rok (GNU/Linux)● Nazewnictwo dystrybucji, wersji● Prawidłowa wymowa: "deb ee n"● Pierwszt system pakietów (z zależnościami)● Powołanie SPI

Fakty

● Edycja stablina: Woody 3.0, wydana w lipcu 2002r.● 10 lat istnienia, silna pozycja wśród dystrybucji● 11 wspieranych architektur

alpha, arm, hppa, i386, ia64, m68k, mips, mipsel, powerpc, s390, sparc

● Jedyna dystrybucja wspierająca różne jądraLinux, Hurd, BSD

● 1134 osób, 7264 pakietów źródłowych, 11758 binarnych, 318 serwerów lustrzanych

● Polska na piątym miejscu w (nieoficjalnym) rankingu ilości użytkowników

Organizacje

● Linux International● Linux Professional Institute● Linux Magazine advisory council● Linux Standards Base● Free Standards Group● SchoolForge● GNOME Foundation advisory board● OASIS: Organization for the Advancement of Structured

Information Standards● Desktop Linux Consortium

Oparte na Debianie

● Xandros (dawniej Corel)● Progeny (instalator)● Lindows● Knoppix● i inne...

FILOZOFIA

Zasady stanowiące fundament● Debian Free Software Guidelines● Umowa społeczna Debiana● Debian Policies

Kontrakt społeczny

● Debian pozostanie w pełni wolny (patrz DFSG)● Spłacimy dług społeczności oprogramowania

wolnodostępnego● Nie będziemy ukrywać problemów● Naszymi priorytetami są nasi użytkownicy i wolne

oprogramowanie● Wsparcie dla programów nie spełniających standardów

DFSG (archiwum non-free)

Debian Free Software Guidelines

● Wolna redystrybucja● Dołączony kod źródłowy (i możliwość jego

redystrybucji)● Dzieła pochodne, możliwość ich tworzenia i dystrybucji

na tej samej licencji● Brak ograniczeń integralności kodu● Nie dyskryminuje żadnych osób bądź grup

Debian Free Software Guidelines, c.d.

● Nie ogranicza zakresu użytkowania● Licencja musi dotyczyć wszystkich● Licencja nie może dotyczyć wyłącznie Debiana● Licencja nie może 'zanieczyszczać' innego

oprogramowania

● Przykłady: GPL, BSD, Artistic● Bruce Perens i manifest Open Source

Debian Policy

● Wytyczne techniczne: najważniejsze zasady gwarantujące spójność pakietów w dystrybucji

● Pełna zgodność z FHS● Niektóre dodatkowe policies

– Perl– Java– Menu– Emacs– ...

Konstytucja

● Konstytucja: podstawa formalna● Głosowania● Decyzje podejmuje

– Zgromadzenie Ogólne Deweloperów– Lider Projektu– Komitet Techniczny i/lub jego Przewodniczący– deweloper odpowiedzialny za dane zadanie– delegaci wyznaczeni przez Lidera do danego zadania– Sekretarz Projektu

Gałęzie

● stable (obecnie woody)gałąź do zastosowań produkcyjnych, zamrożona i gruntowanie przetestowana, do niej pojawiają się poprawki bezpieczeństwa

● testing (obecnie sarge)gałąź najprawdopodobniej pozbawiona ciężkich błędów, ale nie jest to gwarantowane

● unstable (zawsze sid)najświeższe pakiety prosto z pieca, bywają z nimi kłopoty

● experimentalużycie wysoce niewskazane

● Archiwa: main, non-free, contrib

System pakietów

● dpkg: nadzór nad bazą pakietów, manipulacja pakietami– zależności– pliki konfiguracyjne– szablony debconf

● APT: zarządzanie pakietami pochodzącymi z różnych źródeł– repozytoria oficjalne, nieoficjalne– priortety, pinning

● Liczne nakładki (dselect, aptitude, synaptic, ...)

Struktura pakietu źródłowego

● Oficjalne źródła: foo_x.y.orig.tar.gz● Debianowa łata: foo_x.y-z.diff.gz

– katalog ./debian/*– debian/rules: makefile budujący pakiet

● Z pakietu źródłowego powstaje jeden lub więcej pakietów binarnych:– foo_x.y-z_i386.deb– foo-doc_x.y-z_all.deb

Struktura pakietu binarnego

plik DEB

control.tar.gz data.tar.gz

/etc/.../usr/.../var/......

controlconffilesmd5sumspreinstpostinstprermpostrm...

Droga pakietu

pakiet

incoming

unstable testing stable

nowa wersja upstream

brak RC,wydanie

upload (podpisany), x.y-z

max 1 dzień (chyba że pakiet nowy)

10 dni (low),brak“excuses”

mirror mirror mirror

NMU

experimental

x.y

Edycja stabilna

● "Release when ready", rządzi Release Manager● Zamrożenie testing gdy nie ma już poważniejszych

problemów (RC)● Dokładne testowanie● Wydanie nowej edycji stabilnej● Co jakiś czas edycje poprawiające (najnowsza 3.0r1)● Około roczne wsparcie starej wersji stabilnej

Portowanie

● i386 to nie cały świat, deweloper odpowiedzialny za inne architektury

● Ekipa odpowiedzialna za porty● Dobra praktyka programistyczna● Problemy usprawiedliwione w rzadkich przypadkach● System auto-builderów● Non-Maintainer Upload (NMU)

Walka z błędami

● BTS: informacje zgłaszane przez email (reportbug preferowanym sposobem)– informacje dostępne publicznie– flagi i waga błędu (RC)– deweloper manipuluje stanem błędu– deweloper ma obowiązek przesyłać wszystkie

poprawki do upstreamu– nie tylko dla pakietów (np. WNPP, debian-policy)

● Od niedawna PTS● Lintian: pomoc dla deweloperów

Bezpieczeństwo

● Jeden z priorytetów, Security Team● Publiczne informacje, otwartość (DFSG)● Najlepiej korzystać ze stable● Advisories

– debian-security-announce@lists.debian.org– http://www.debian.org

● Automatyczny upgrade dla stable przez APTdeb http://security.debian.org/ woody/updates main contrib non-free

Pozostałe cechy Debiana

● Instalator● Inicjalizacja systemu (update-rc.d)● Budowanie własnego jądra (make-kpkg)● System menu● System alternatyw● ...

Lokalizacja

● Strona WWW● Task "polish", pakiety z polską dokumentacją● Wsparcie locales (teraz już standard)● Instalator● Mapy klawiatury, czcionki● Opisy pakietów● Szablony debconf● DWN (na 7thguard.net oraz stronach Debiana)

LUDZIE

● Rdzeń projektu● Baza danych informacji o

deweloperach (vacation)● Od rodziny do społeczności● Od dłuższego czasu (mniej więcej)

liniowy wzrost● Różne cele, spojrzenia, poglądy, równe prawo głosu● Podział na podgrupy, podprojekty● Specjaliści z danych dziedzin (porty, instalator)

Mapa lokalizacji deweloperów

źródło: http://www.debian.org/devel/developers.loc

POLSCY DEWELOPERZY

Krzysztof KrzyżaniakPawel WięcekGrzegorz ProkopskiMarcin OwsianyPiotr RoszatyckiRobert LuberdaJanusz A. UrbanowiczRyszard Lach

Marek HabersackŁukasz JachowiczMirosław BaranAdam Byrtek

Kontakt

● Przede wszystkim email (nick@debian.org)– wykorzystanie PGP, keyring Debiana

● IRC: dyskusje robocze, BSP (serwer freenode)● Listy dyskusyjne (ponad 100 różnych)

– debian-devel, debian-private● Listy ogłoszeniowe

– debian-announce, debian-devel-announce– debian-security-announce

● Debian Weekly News

Praca grupowa

● CVS– np. strona WWW

● Alioth, klon SourceForge– projekty których założycielem jest deweloper

Debiana

Jak pomóc

● Nie trzeba być deweloperem aby pomagać (sponsoring)● Promować Debiana (i Linuksa jako takiego)● Zgłaszać informacje o błedach i sugestie, korzystać z

testing/unstable● Przeglądać zgłoszenia, przesyłać patche, komentować

bugreporty (PTS)● Pomagać przy tłumaczeniu i tworzeniu dokumentacji

Jak wstąpić

● Uwaga na 1 kwietnia!● Proces NM (New Maintainer), lista debian-mentors

– adwokat– przydzielenie AM (Application Manager)– pierwszy kontakt– potwierdzenie tożsamości– filozofia i procedury– zadania i umiejętności– ankieta i podumowanie

Jak taki projekt może działać?

● Wartościowi ludzie, "karma" deweloperów● Władze formalne ingerujące jedynie gdy jest to

konieczne● Współpraca i wymiana poglądów przez Internet● Ścisłe reguły i procedury, ale minimum formalizmu● Narzędzia, szczegółowa dokumentacja● Infrastruktura fundowana przez sponsorów

Przyszłość

● Sarge (“release when ready”)– GCC 3.2– KDE 3.1– Gnome 2

● Nowy instalator (stary największą zmorą)– pełna integracja z debconf– zróżnicowany interface

● Jeszcze większy nacisk na wielonarodowość● Pełna zgodność z LSB (Linux Software Base)

To tylko wierzchołek góry lodowej.

Dziękuję za wysłuchanie wykładu.Proszę o pytania.

W razie czego mój adres:alpha@debian.org