1 pkgsrc: System pakietów NetBSDTomasz Luchowski
2 pkgsrc: System pakietów NetBSDAgenda Informacje ogólne Trochę historii pkgsrc a bezpieczeństwo Gałęzie Przenośność, Buildlink, Package Views Plany na przyszłość pkgsrc: System pakietów NetBSD
3 pkgsrc: System pakietów NetBSDOficjalny system pakietów NetBSD Łatwy w użyciu oraz utrzymaniu Przenośny Wsparcie dla bezpieczeństwa Wersja rozwojowa pkgsrc-current, oraz publikowane kwartalnie gałęzie stabilne pkgsrc: System pakietów NetBSD
4 Dlaczego warto używać systemu pakietów?Konieczność zarządzania ogromną ilością niezależnego oprogramowania Ręczna instalacja – powtarzające się, uciążliwe czynności Problemy przy aktualizacji oprogramowania Może pojawić się konieczność samodzielnego „portowania” aplikacji do naszego systemu operacyjnego Ściągnięcie plików dystrybucyjnych Sprawdzenie sum kontrolnych Instalacja wymaganych pakietów – zależności Rozpakowanie źródeł Zaaplikowanie patch’y Kompilacja Instalacja pkgsrc: System pakietów NetBSD
5 Proces budowania pakietucheck vulnerabilities fetch checksum buildlink, tools, wrapper extract patch install-depends configure build install Ściągnięcie plików dystrybucyjnych Sprawdzenie sum kontrolnych Instalacja wymaganych pakietów – zależności Rozpakowanie źródeł Zaaplikowanie patch’y Kompilacja Instalacja pkgsrc: System pakietów NetBSD
6 Dlaczego warto używać pkgsrc?Dostępne dla wielu systemów operacyjnych Łatwe budowanie pakietów ze źródeł oraz utworzenie pakietu binarnego Wsparcie dla bezpieczeństwa Możliwość kompilacji z konta zwykłego użytkownika Dostępne na licencji BSD Wygodne skrypty startowe rc.d Spójna obsługa plików konfiguracyjnych (PKG_SYSCONFBASE) .include „../../bsd.pkg.mk” pkgsrc: System pakietów NetBSD
7 pkgsrc: System pakietów NetBSDHistoria Sierpień 1994 – FreeBSD (ports) Czerwiec 1996 – OpenBSD (ports) Sierpień 1997 – NetBSD (pkgsrc) W każdym z tych systemów dokonano wielu zmian Początkowo planowano zintegrować modyfikacje z powrotem do ports FreeBSD pkgsrc: System pakietów NetBSD
8 Wiele systemów pakietów…Swobodne dostosowanie do własnych potrzeb Konieczność duplikowania tej samej pracy Zmiany nie są synchronizowane (dane z 2003) FreeBSD ports: ~8500 pakietów OpenBSD ports: ~1800 pakietów NetBSD pkgsrc: ~3700 pakietów Inne projekty: OpenPackages, OpenPKG pkgsrc: System pakietów NetBSD
9 pkgsrc a bezpieczeństwo (1)Utrzymywana jest baza danych z listą vulnerabilities Przy próbie kompilacji pakietu przeglądana w poszukiwaniu problemów bezpieczeństwa Sprawdzanie pakietów zainstalowanych w systemie audit-packages Aktualizacja bazy download-vulnerability-list pkgsrc: System pakietów NetBSD
10 pkgsrc a bezpieczeństwo (2)Można wykorzystać system pakietów do łatania dziur w bezpieczeństwie systemu operacyjnego Możliwe jest przezroczyste dla użytkowników aktualizowanie programów Podpisywane pakiety binarne (gpg) pkgsrc: System pakietów NetBSD
11 pkgsrc: System pakietów NetBSDjust-in-time su(1) Pakiety możemy kompilować z konta zwykłego użytkownika Dodatkowe przywileje potrzebne jedynie na czas instalacji Aby nie wprowadzać hasła z klawiatury można użyć narzędzia typu sudo pkgsrc: System pakietów NetBSD
12 Wspierane platformy systemoweNetBSD Sierpień 1997 Solaris Marzec 1999 Linux Czerwiec 1999 Mac OS X Październik 2001 FreeBSD Listopad 2002 OpenBSD Listopad 2002 IRIX Grudzień 2002 BSD/OS Grudzień 2003 AIX Grudzień 2003 MS Windows Services for UNIX Marzec 2004 pkgsrc: System pakietów NetBSD
13 Przenośność - problemyPLIST: manuale (gz) Współdzielone biblioteki – różna ilość suffixów ncurses pkgsrc: System pakietów NetBSD
14 Przenośność - rozwiązania${ECHO}, ${TOUCH}, ${CAT} REPLACE_PERL pthread.buildlink3.mk java-vm.mk: PKG_JVM_DEFAULT, USE_JAVA Buildlink! pkgsrc: System pakietów NetBSD
15 pkgsrc: System pakietów NetBSDbootstrap-pkgsrc (1) Zestaw narzędzi, pozwalający używać pkgsrc na platformie innej niż NetBSD Zawiera: pkg_install, bmake, ftp, mtree, pax Zastąpiło rozwijany kiedyś projekt Zoularis pkgsrc: System pakietów NetBSD
16 pkgsrc: System pakietów NetBSDbootstrap-pkgsrc (2) Dla niektórych platform dostępne są binaria: gzip -c -d bootstrap-pkgsrc-IRIX mips tar.gz \ | (cd /; tar -xpf -) pkgsrc: System pakietów NetBSD
17 pkgsrc: System pakietów NetBSDbootstrap-pkgsrc (3) Kompilacja oraz instalacja ze źródeł: cd pkgsrc/bootstrap ./bootstrap pkgsrc: System pakietów NetBSD
18 pkgsrc: System pakietów NetBSDbootstrap-pkgsrc (4) Używamy komendy bmake zamiast make Należy dodać /usr/pkg/bin do PATH Należy dodać /usr/pkg/man do MANPATH pkgsrc: System pakietów NetBSD
19 pkgsrc: System pakietów NetBSDBuildlink Ścisła kontrola zależności Nagłówki użyte w czasie kompilacji Zwiększa przenośność pkgsrc: System pakietów NetBSD
20 pkgsrc: System pakietów NetBSDBuildlink 1 Katalog tymczasowy wypełniany linkami symbolicznymi w czasie budowania pakietu – nagłówki, biblioteki ${PREFIX} -> ${WRKDIR}/.buildlink Konieczność usuwania referencji do BUILDLINK_DIR pkgsrc: System pakietów NetBSD
21 pkgsrc: System pakietów NetBSDBuildlink 2 Wrapper CC, AS Podmiana ścieżek pkgsrc: System pakietów NetBSD
22 pkgsrc: System pakietów NetBSDBuildlink 3 Zaprojektowany aby zwiększyć przenośność Wsparcie dla Package Views Skrypt CC symulujący GCC Podmienia argumenty, ścieżki Możliwość używania „systemowe” kompilatora – SUN PRO, MIPS PRO WRKDIR/{bin,include,lib} Linki symboliczne Silniejsze sprawdzanie zależności (DEPENDS) pkgsrc: System pakietów NetBSD
23 Oprogramowanie systemowe czy z pakietu?Różnice w standardowo dostępnym oprogramowaniu pomiędzy systemami operacyjnymi PREFER_PKGSRC PREFER_NATIVE Podajemy: nazwa_pakietu | YES | NO pkgsrc: System pakietów NetBSD
24 Tworzenie pakietów dla pkgsrcStosunkowo proste i dobrze udokumentowane Szczegółowa dokumentacja w pliku Packages.txt Można wykorzystać narzędzie url2pkg pkgsrc: System pakietów NetBSD
25 pkgsrc-wip (work in progress)Projekt utrzymywany na SourceForge Każda chętna osoba może otrzymać konto z dostępem do CVS Pakiety po zaakceptowaniu są przenoszone do oficjalnej kolekcji pkgsrc Jest to sugerowana metoda zgłaszania własnych pakietów pkgsrc: System pakietów NetBSD
26 pkgsrc: System pakietów NetBSDGałęzie pkgsrc Kwartalnie pkgsrc jest zamrażane, dokonuje się stabilizacji i tworzona jest nowa gałąź Obecnie najnowsze wydanie – pkgsrc-2004Q3 Wersja rozwojowa – pkgsrc-current (HEAD) Pull-up’s pkgsrc: System pakietów NetBSD
27 Gdzie utrzymywane jest pkgsrc?W repozytorium CVS projektu NetBSD Główny serwer - cvs.netbsd.org Dla użytkowników – anoncvs.netbsd.org oraz serwery lustrzane pkgsrc: System pakietów NetBSD
28 pkgsrc: System pakietów NetBSDPlany na przyszłość Pełne wsparcie dla wszystkich ważniejszych systemów operacyjnych Package Views, dynamic PLIST Bulk builds na platformach różnych od NetBSD pkgsrc: System pakietów NetBSD
29 pkgsrc: System pakietów NetBSDLinki The NetBSD Project The NetBSD Packages Collection The pkgsrc guide pkgsrc: System pakietów NetBSD
30 Pytania? Tomasz Luchowski The NetBSD Project The NetBSD Project pkgsrc: System pakietów NetBSD