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