De ports & packages collectie ondergaat NIET dezelfde uitvoerige veiligheidsaudit die OpenBSD krijgt. Alhoewel we ernaar streven om de kwaliteit van de packages hoog te houden hebben we gewoonweg niet genoeg mankracht om hetzelfde niveau van robuustheid en veiligheid te garanderen.
De ports collectie, oorspronkelijk geleend van FreeBSD, vult dit gat. Het idee is om voor alle software van een derde partij een Makefile te hebben dat bepaalt
Packages zijn de binaire equivalenten van ports. Een gecompileerde port wordt een package dat geregistreerd kan worden in het systeem met pkg_add(1)
Packages lijken op gewone .tgz bundels, maar ze moeten
altijd toegevoegd worden met
pkg_add(1),
omdat er extra informatie bij kan zitten waar alleen
pkg_add(1)
mee om kan gaan.
Tip: u kunt packages en .tgz bundels van elkaar onderscheiden
met
pkg_info(1).
pkg_add pkgname.tgz.
Wanneer u packages van een en dezelfde bron haalt (zoals een package
repository), stel dan PKG_PATH in op de URL van de repository om
afhankelijkheden op te halen.
Bijvoorbeeld, om de Gimp package voor uitgave 4.3 op een i386-machine te installeren vanaf de ftp-site (inclusief afhankelijkheden):
# export PKG_PATH=ftp://ftp.openbsd.org/pub/OpenBSD/4.3/packages/i386/
# pkg_add gimp-2.4.3p0.tgz
Versie 2.7 was een stable branch geïntroduceerd voor de ports tree.
Om bijvoorbeeld de stable branch voor uitgave 4.3 op te halen:
$ cd /usr/ports
$ cvs -q -d anoncvs@some.anon.server:/cvs up -r OPENBSD_4_3 -Pd
Vanaf uitgave 2.8 worden ook bepaalde binaire packages beschikbaar gemaakt. Kijk alstublieft op de stable packages pagina voor updates van packages en voor belangrijke updates aan de stable branch. Indien u veiligheidsaankondigingen wilt ontvangen kunt u zich inschrijven op de ports-security mailinglijst.
Namen van packages worden altijd gewijzigd bij het updaten van een package om elk risico op verwarring tussen een package van de uitgave en een package met een bugfix te vermijden.
Vanaf OpenBSD 2.8 moet u om een package te updaten:
U kunt de uitgave versie halen van de pub/OpenBSD/[versie] (waar [versie] het uitgavenummer is) directory op elk van de ftp mirror sites. De uitgaveversies zijn degenen die we uitbrengen op onze CDROM en zijn uitvoeriger getest dan de snapshots. Meer informatie is beschikbaar in de ports(7) man pagina.
De ports tree wordt, net als de rest van OpenBSD, constant gewijzigd.
De huidige ports tree mag niet gebruikt worden met de vorige uitgave. Dit is vanwege wijzigingen, meestal in de make-routine van de port, die afhankelijk zijn van code gebaseerd op de OpenBSD-current broncode tree.
De ports tree is een geheel. Het is niet te garanderen dat het updaten van
een enkele directory werkt, omdat u door afhankelijkheden van een package
geforceerd bent om een groot deel van de ports tree te hercompileren.
Het wordt sterk aangeraden dat men ports-current niet volgt tenzij men
bereid is verschillende conflicten op te lossen.
Mailinglijsten zoals
ports-changes@openbsd.org of
tech@openbsd.org zullen waarschijnlijk van onschatbare waarde zijn.
U wordt aangeraden om op een productiemachine ports-stable te volgen: we zullen proberen om bij problemen de stable ports tree bij te houden en ook te voorzien in binaire updates.
Merk op dat het verdwijnen van distfiles geen kwaad kan, aangezien ftp.openbsd.org de complete repository bevat. Zelfs veranderde checksums zijn geen probleem: u kunt het commando
make checksum REFETCH=truegebruiken om er zeker van te zijn dat u de juiste distfile ophaalt voor uw ports tree. Zie voor beschrijvingen van current en stable de OpenBSD flavors.
Er is een lijst beschikbaar met dagelijkse wijzigingen aan ports en ports-current.
De ports-current tree kan opgehaald worden via:
Stel u heeft het voor elkaar gekregen om een ports tree te verkrijgen en u wilt het archiefprogramma unzip compileren en installeren. U zou zoiets als dit kunnen doen:
% cd /usr/ports/archivers/unzip
% su
# make
# make install
# exit
Makkelijk, niet ? Zeker gezien wat zich allemaal op de achtergrond afspeelde:
Met OpenBSD 3.0 maken bijna alle ports packages bij het installeren.
Wanneer ports gebouwd worden wordt de directory /usr/ports/distfiles gevuld met broncode van programma's en /usr/ports/packages wordt gevuld met binaire packages. Gebruikers met een langzame verbinding kunnen mirroring-ports(7) raadplegen voor een efficiënte manier om alle distfiles in een keer op te halen. In OpenBSD-current kunt u het script /usr/ports/infrastructure/fetch/clean-old gebruiken om oude distfiles te volgen. Merk op dat de OpenBSD-CD alleen de ports tree en bepaalde packages bevat. Als u de distfiles wilt hebben moet u ze op een andere manier verkrijgen.
De ports tree heeft voor de geavanceerde gebruiker veel mogelijkheden wat het tot een waardevol programma maakt naast de standaardinstallaties. Geavanceerde gebruikers willen mogelijk de makefiles aanpassen (lees eerst de make(1) man pagina) of verschillende variabelen instellen vanaf de make command line of in /etc/mk.conf. Deze variabelen worden gedetailleerd beschreven in de bsd.port.mk(5) man pagina en in de documenten over het porten hieronder.
Als u geïnteresseerd bent in het uitbreiden van de OpenBSD ports tree moet u eerst porting.html lezen. Die pagina verwijst zowel naar de FreeBSD Porter's Handbook als het OpenBSD-specifieke beleid en hints.
De ports collectie is een vrijwilligersproject. Soms heeft het project gewoon niet genoeg mankracht om alles up-to-date te houden. Ontwikkelaars pakken de dingen op die ze interessant vinden en in hun eigen omgeving kunnen testen. Uw schenkingen bepalen voor welke platformen de ports getest kunnen worden.
Sommige individuele ports kunnen hierdoor achterliggen op de mainstream-versie. De ports verzameling kan een versie van een programma bevatten uit Januari terwijl een nieuwe versie door haar ontwikkelaars in Mei drie maanden geleden is uitgebracht. Vaak is dit een bewuste keuze; de nieuwe versie kan problemen bevatten op OpenBSD die de onderhouder probeert op te lossen of de applicatie simpelweg slechter hebben gemaakt dan de oude versie: OpenBSD kan andere doelen hebben dan de ontwikkelaars van de mainstream-ontwikkelaars van andere projecten wat soms kan resulteren in functionaliteiten en keuzes wat betreft het ontwerp of de implementatie die vanuit het standpunt van OpenBSD onwenselijk zijn. De update kan ook uitgesteld zijn omdat de nieuwe versie niet wordt beschouwd als een cruciale update.
Als u echt een nieuwe versie van een port nodig heeft moet u de ONDERHOUDER van de port vragen om de port te updaten (kijk hieronder om uit te vinden wie de onderhouder is); als u hiervoor patches kunt opsturen, des te beter. Voor het maken van geschikte patches moet u de documentatie over het bouwen van ports raadplegen.
Wanneer u problemen heeft met een bestaande port stuur dan alstublieft een e-mail naar de onderhouder van de port. Om de onderhouder van de port te zien, type bijvoorbeeld:
% cd /usr/ports/archivers/unzip
% make show=MAINTAINER
Als er geen onderhouder is of u kunt hem/haar niet bereiken stuur dan een mail
naar de OpenBSD ports mailinglijst,
ports@openbsd.org.
Gebruik alstublieft niet de misc@openbsd.org mailinglijst voor vragen over
ports.
Verbeteringen zijn altijd welkom, maar geef in ieder geval de volgende
informatie:
uname -a,
% cd /usr/ports/archivers/unzip
% su
# mkdir -p ~/portslogs
# make clean install 2>&1 | /usr/ports/infrastructure/build/portslogger \
~/portslogs
Hierna zou u een logbestand van de compilatie in uw ~/portslogs directory moeten
hebben die u op kunt sturen naar de onderhouder van de port. Zorg ervoor dat u
geen speciale opties tijdens de compilatie gebruikt, bijvoorbeeld in
/etc/mk.conf.
Anderzijds kunt u