pkgsrc: System pakietów NetBSD Tomasz Luchowski [email protected] Agenda 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.
Download ReportTranscript pkgsrc: System pakietów NetBSD Tomasz Luchowski [email protected] Agenda 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.
pkgsrc: System pakietów NetBSD Tomasz Luchowski [email protected] Agenda 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 2 pkgsrc Oficjalny 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 3 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 pkgsrc: System pakietów NetBSD 4 Proces budowania pakietu check vulnerabilities fetch checksum buildlink, tools, wrapper extract patch install-depends configure build install pkgsrc: System pakietów NetBSD 5 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 6 Historia 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 7 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 8 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 9 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 10 just-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 11 Wspierane platformy systemowe NetBSD Solaris Linux Mac OS X FreeBSD OpenBSD IRIX BSD/OS AIX MS Windows Services for UNIX Sierpień 1997 Marzec 1999 Czerwiec 1999 Październik 2001 Listopad 2002 Listopad 2002 Grudzień 2002 Grudzień 2003 Grudzień 2003 Marzec 2004 pkgsrc: System pakietów NetBSD 12 Przenośność - problemy PLIST: manuale (gz) Współdzielone biblioteki – różna ilość suffixów ncurses pkgsrc: System pakietów NetBSD 13 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 14 bootstrap-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 15 bootstrap-pkgsrc (2) Dla niektórych platform dostępne są binaria: gzip -c -d bootstrap-pkgsrc-IRIX64-6.5mips-20040912.tar.gz \ | (cd /; tar -xpf -) pkgsrc: System pakietów NetBSD 16 bootstrap-pkgsrc (3) Kompilacja oraz instalacja ze źródeł: cd pkgsrc/bootstrap ./bootstrap pkgsrc: System pakietów NetBSD 17 bootstrap-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 18 Buildlink Ścisła kontrola zależności Nagłówki użyte w czasie kompilacji Zwiększa przenośność pkgsrc: System pakietów NetBSD 19 Buildlink 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 20 Buildlink 2 Wrapper CC, AS Podmiana ścieżek pkgsrc: System pakietów NetBSD 21 Buildlink 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 22 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 23 Tworzenie pakietów dla pkgsrc Stosunkowo proste i dobrze udokumentowane Szczegółowa dokumentacja w pliku Packages.txt Można wykorzystać narzędzie url2pkg pkgsrc: System pakietów NetBSD 24 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 25 Gałę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 26 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 27 Plany 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 28 Linki The NetBSD Project http://www.NetBSD.org/ The NetBSD Packages Collection http://www.pkgsrc.org/ The pkgsrc guide http://www.NetBSD.org/Documentation/pkgsrc/ pkgsrc: System pakietów NetBSD 29 Pytania? Tomasz Luchowski <[email protected]> http://www.luchowski.com/ The NetBSD Project http://www.NetBSD.org/ <[email protected]> pkgsrc: System pakietów NetBSD 30