Er zijn verschillende gereedschappen die gebruikt worden om pakketten op FreeBSD te beheren:
Het gereedschap sysinstall
kan op een
draaiend systeem worden gebruikt om beschikbare en
geïnstalleerde pakketten te installeren, te verwijderen,
en weer te geven. Zie voor meer informatie Paragraaf 2.10.11, “Pakketten installeren”.
De opdrachtregelgereedschappen om pakketten te beheren, welke het onderwerp van de rest van deze sectie zijn.
Met pkg_add(1) kan een FreeBSD softwarepakket geïnstalleerd worden vanaf een lokaal bestand of vanaf een server op het netwerk.
#
ftp -a ftp2.FreeBSD.org
Connected to ftp2.FreeBSD.org. 220 ftp3.FreeBSD.org FTP server (Version 6.00LS) ready. 331 Guest login ok, send your email address as password. 230- 230- This machine is in Vienna, VA, USA, hosted by Verio. 230- Questions? E-mail freebsd@vienna.verio.net. 230- 230- 230 Guest login ok, access restrictions apply. Remote system type is UNIX. Using binary mode to transfer files.ftp>
cd /pub/FreeBSD/ports/packages/sysutils/
250 CWD command successful.ftp>
get lsof-4.56.4.tgz
local: lsof-4.56.4.tgz remote: lsof-4.56.4.tgz 200 PORT command successful. 150 Opening BINARY mode data connection for 'lsof-4.56.4.tgz' (92375 bytes). 100% |**************************************************| 92375 00:00 ETA 226 Transfer complete. 92375 bytes received in 5.60 seconds (16.11 KB/s)ftp>
exit
#
pkg_add lsof-4.56.4.tgz
Als er lokaal geen bron is voor pakketten (zoals de FreeBSD
CD-ROM-verzameling) dan is het waarschijnlijk makkelijker om de
-r
optie te gebruiken met pkg_add(1).
Deze optie zorgt er voor dat het hulpprogramma automatisch het
correcte formaat en de juiste versie bepaalt en die daarna
binnenhaalt en installeert vanaf een FTP site.
#
pkg_add -r lsof
Het voorbeeld hierboven haalt het correcte pakket binnen
en installeert het zonder dat de gebruiker iets hoeft te doen.
Als u een alternatieve FreeBSD Pakkettenmirror wilt specificeren,
in plaats van de hoofddistributiesite, dan moet u de
omgevingsvariabele PACKAGESITE
overeenkomstig
instellen om de standaardinstellingen aan te passen.
pkg_add(1) gebruikt fetch(3) om de bestanden binnen te
halen, dat gebruik maakt van diverse omgevingsvariabelen zoals
FTP_PASSIVE_MODE
, FTP_PROXY
, en
FTP_PASSWORD
. Mogelijk moeten ook
één of meer van deze variabelen gebruikt worden
als een machine achter een firewall staat of als gebruik
gemaakt moet worden van een FTP/HTTP proxy. In fetch(3)
staat de complete lijst. In het voorbeeld hierboven is gebruik
gemaakt van lsof
in plaats van
lsof-4.56.4
. Als het pakket wordt
binnengehaald met behulp van de bovenstaande instellingen, dan
moet het versienummer van het pakket niet gebruikt worden.
pkg_add(1) haalt automatisch de laatste versie van de
applicatie binnen.
pkg_add(1) downloadt de meest recente versie van een
applicatie als FreeBSD-CURRENT of FreeBSD-STABLE. Als een
-RELEASE versie wordt gebruikt, wordt het pakket dat bij die
release hoort gebruikt. Het is mogelijk dit gedrag te
veranderen door PACKAGESITE
te wijzigen. Als u
bijvoorbeeld FreeBSD 8.1-RELEASE draait, dan haalt
pkg_add(1) standaard de pakketten uit
ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8.1-release/Latest/
.
Om pkg_add(1) de FreeBSD 8-STABLE pakketten te laten
downloaden kan PACKAGESITE
ingesteld worden op
ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8-stable/Latest/
.
Pakketbestanden worden gedistribueerd in de formaten
.tgz
en .tbz
. Ze
zijn te vinden op ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/
of op de FreeBSD CD-ROM-distributie. Iedere CD-ROM in de
FreeBSD 4-CD-ROM-verzameling (en de PowerPak, enzovoort) bevat
pakketten in de map /packages
. De opbouw
van de pakketten is ongeveer gelijk aan die van
/usr/ports
. Iedere categorie heeft zijn
eigen map en ieder pakket staat ook in de map
All
.
De mappenstructuur van het pakkettensysteem is gelijk aan die van het portssysteem. Samen vormen ze het pakket/portssysteem.
pkg_info(1) is een hulpprogramma dat de diverse geïnstalleerde pakketten toont en beschrijft.
#
pkg_info
cvsup-16.1 A general network file distribution system optimized for CV docbook-1.2 Meta-port for the different versions of the DocBook DTD ...
pkg_version(1) is een hulpprogramma dat een samenvatting van de versie van alle geïnstalleerde pakketten geeft. Het vergelijkt de versie van het pakket met de huidige versie in de Portscollectie.
#
pkg_version
cvsup = docbook = ...
De symbolen in de tweede kolom geven aan hoe de geïnstalleerde versie staat ten opzichte van de versie die beschikbaar is in de lokale Portscollectie.
Symbool | Betekenis |
---|---|
= | De versie van het geïnstalleerde pakket komt overeen met die in de lokale Portscollectie. |
< | De geïnstalleerde versie is ouder dan die beschikbaar is in de ports. |
> | De geïnstalleerde versie is nieuwer dan die in de lokale Portscollectie. De lokale Portscollectie is waarschijnlijk verouderd. |
? | Het geïnstalleerde pakket kan niet gevonden worden in index van de Portscollectie. Dit kan bijvoorbeeld gebeuren als een geïnstalleerde port uit de Portscollectie wordt verwijderd of hernoemd. |
* | Er zijn meerdere versies van het pakket. |
! | Het geïnstalleerde pakket bestaat in de index
maar om de een of andere reden was
pkg_version niet in staat om het
versienummer van het geïnstalleerde pakket met de
overeenkomstige ingang in de index te
vergelijken. |
Voor het verwijderen van een geïnstalleerd pakket wordt het hulpprogramma pkg_delete(1) gebruikt.
#
pkg_delete xchat-1.7.1
Merk op dat pkg_delete(1) de volledige naam en het
volledige nummer van het pakket nodig heeft; het bovenstaande
commando zou niet werken als xchat
in plaats van xchat-1.7.1
was
gegeven. Het is echter eenvoudig om pkg_version(1) te
gebruiken om de versie van het geïnstalleerde pakket te
achterhalen. U zou ook eenvoudigweg een wildcard kunnen
gebruiken:
#
pkg_delete xchat\*
In dit geval zullen alle pakketten waarvan de naam met
xchat
begint worden verwijderd.
All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/
Questions that are not answered by the
documentation may be
sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.