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 Report

Transcript 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