2 .\" Copyright (c) 1997 David E. O'Brien
4 .\" All rights reserved.
6 .\" Redistribution and use in source and binary forms, with or without
7 .\" modification, are permitted provided that the following conditions
9 .\" 1. Redistributions of source code must retain the above copyright
10 .\" notice, this list of conditions and the following disclaimer.
11 .\" 2. Redistributions in binary form must reproduce the above copyright
12 .\" notice, this list of conditions and the following disclaimer in the
13 .\" documentation and/or other materials provided with the distribution.
15 .\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
16 .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
17 .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
18 .\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
19 .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20 .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21 .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22 .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24 .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33 .Nd contributed applications
38 offers a simple way for users and
39 administrators to install applications.
42 contains any patches necessary to make the original
43 application source code compile and run on
46 application is as simple as typing
48 in the port directory!
51 automatically fetches the
52 application source code, either from a local disk or via FTP, unpacks it
53 on your system, applies the patches, and compiles it.
57 to install the application.
59 It is possible to download and use ports from the
62 that are newer than the installed system; however it is important to
63 install the appropriate
66 .Pa http://www.FreeBSD.org/ports/
69 .Xr portcheckout 1 Pq Pa ports/ports-mgmt/portcheckout
70 script (also a port, of course!) will help to download new ports.
72 For more information about using ports, see
73 .Dq "Packages and Ports"
75 .%B "The FreeBSD Handbook" ,
76 .Pa ( file:/usr/share/doc/en_US.ISO8859-1/books/handbook/ports.html
78 .Pa http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/ports.html ) .
79 For information about creating new ports, see
80 .%B "The Porter's Handbook"
81 .Pa ( file:/usr/share/doc/en_US.ISO8859-1/books/porters-handbook/index.html
83 .Pa http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/porters-handbook/ ) .
85 Some of the targets work recursively through subdirectories.
86 This lets you, for example, install all of the
89 The targets that do this are
90 .Cm build , checksum , clean , configure ,
91 .Cm depends , extract , fetch , install ,
95 The following targets will be run automatically by each proceeding
103 and so on all the way to
105 Usually, you will only use the
108 .Bl -tag -width ".Cm configure"
114 .It Cm config-recursive
117 for this port and all its dependencies using
120 Fetch all of the files needed to build this port from the sites
126 .Va FETCH_CMD , MASTER_SITE_OVERRIDE
128 .Va MASTER_SITE_BACKUP .
130 Verify that the fetched distfile's checksum matches the one the port was
137 (or compile if only compilation is necessary)
138 any dependencies of the current port.
143 targets, this is run in piecemeal as
144 .Cm fetch-depends , build-depends ,
150 Expand the distfile into a work directory.
152 Apply any patches that are necessary for the port.
155 Some ports will ask you questions during this stage.
162 This is the same as calling the
166 Install the port and register it with the package system.
167 This is all you really need to do.
170 The following targets are not run during the normal install process.
171 .Bl -tag -width ".Cm fetch-recursive"
175 config for this port.
176 .It Cm showconfig-recursive
179 config for this port and all its dependencies.
183 config for this port.
184 .It Cm rmconfig-recursive
187 config for this port and all its dependencies.
188 .It Cm config-conditional
189 Skip the ports which have already had their
193 Show list of files to be fetched in order to build the port.
194 .It Cm fetch-recursive
195 Fetch the distfiles of the port and all its dependencies.
196 .It Cm fetch-recursive-list
197 Show list of files that would be retrieved by
198 .Cm fetch-recursive .
199 .It Cm pretty-print-run-depends-list , pretty-print-build-depends-list
200 Print a list of all the compile and run dependencies, and dependencies
201 of those dependencies.
203 Print a list of missing dependencies to be installed for the port.
205 Remove the expanded source code.
206 This recurses to dependencies unless
210 Remove the port's distfiles and perform the
215 portion recurses to dependencies unless
219 portion never recurses
220 (this is perhaps a bug).
222 Use this to restore a port after using
224 when you should have used
227 Remove an installed port from the system, similar to
230 Remove all installed ports with the same
234 Make a binary package for the port.
235 The port will be installed if it has not already been.
238 file that you can use to
239 install the port on other machines with
241 If the directory specified by
243 does not exist, the package will be put into the current directory.
248 .It Cm package-recursive
251 but makes a package for each depending port as well.
255 This can be used from
257 to create a browsable web of all ports on your system!
261 file for the pattern specified by the
263 (searches the port name, comment, and dependencies),
265 (searches the port name only),
267 (searches the port path),
269 (searches the port info),
271 (searches the port maintainer),
273 (searches the port category),
275 (searches the port build-time dependency),
277 (searches the port run-time dependency),
279 (searches the port web site)
281 variables, and their exclusion counterparts:
284 For example, one would type:
286 .Dl "cd /usr/ports && make search name=query"
288 to find all ports whose
291 Results include the matching ports' path, comment, maintainer,
292 build dependencies, and run dependencies.
293 .Bd -literal -offset indent
294 cd /usr/ports && make search name=pear- \e
298 To find all ports whose
301 and which do not have apache
302 listed in build-time dependencies.
303 .Bd -literal -offset indent
304 cd /usr/ports && make search name=pear- \e
308 To find all ports whose names contain
314 .Bd -literal -offset indent
315 make search key=apache display=name,path,info keylim=1
318 To find ports that contain
320 in either of the name, path, info
321 fields, ignore the rest of the record.
323 By default the search is not case-nsensitive.
324 In order to make it case-sensitive you can use the
327 .Bd -literal -offset indent
328 make search name=p5-R icase=0
334 Only display name, path and info.
336 Generate a one-line description of each port for use in the
340 Display the port maintainer's email address.
343 .Pa /usr/ports/INDEX ,
351 target will ensure your
353 file is up to date with your ports tree.
362 You can change all of these.
363 .Bl -tag -width ".Va MASTER_SITES"
365 Location of the ports tree.
377 Where to create any temporary files.
380 is read-only (perhaps mounted from a CD-ROM).
382 Where to find/put distfiles, normally
389 target; the base directory for the packages tree, normally
393 If this directory exists, the package tree will be (partially) constructed.
394 This directory does not have to exist; if it does not, packages will be
395 placed into the current directory, or you can define one of
396 .Bl -tag -width ".Va PKGREPOSITORY"
398 Directory to put the package in.
400 The full path to the package.
403 Where to install things in general
407 Primary sites for distribution files if not found locally.
409 Primary locations for distribution patch files if not found
411 .It Va MASTER_SITE_FREEBSD
412 If set, go to the master
415 .It Va MASTER_SITE_OVERRIDE
416 Try going to these sites for all files and patches, first.
417 .It Va MASTER_SITE_BACKUP
418 Try going to these sites for all files and patches, last.
419 .It Va RANDOMIZE_MASTER_SITES
420 Try the download locations in a random order.
422 Sort the download locations according to user supplied pattern.
424 .Dl .dk .sunet.se .se dk.php.net .no .de heanet.dl.sourceforge.net
425 .It Va MASTER_SITE_INDEX
434 .Pa http://www.FreeBSD.org/ports/ .
443 .It Va NOCLEANDEPENDS
444 If defined, do not let
446 recurse to dependencies.
448 Command to use to fetch files.
451 .It Va FORCE_PKG_REGISTER
452 If set, overwrite any existing package registration on the system.
455 .Pa libXm. Ns Brq Pa a , Ns Pa so .
457 If defined, only operate on a port if it requires interaction.
459 If defined, only operate on a port if it can be installed 100% automatically.
460 .It Va DISABLE_VULNERABILITIES
461 If defined, disable check for security vulnerabilities using
462 .Xr portaudit 1 Pq Pa ports/ports-mgmt/portaudit
463 when installing new ports.
465 If defined, allow installation of ports marked as
467 The default behavior of the Ports framework is to abort when the
468 installation of a forbidden port is attempted.
469 Of course, these ports may not work as expected, but if you really know
470 what you are doing and are sure about installing a forbidden port, then
474 Directory where the results of configuring
481 have been configured will have a uniquely named sub-directory, containing a
486 .Bl -tag -width ".Pa /usr/ports/Mk/bsd.port.mk" -compact
488 The default ports directory
493 The default ports directory
495 .It Pa /usr/ports/Mk/bsd.port.mk
506 The following are part of the ports collection:
512 .%B "The FreeBSD Handbook"
515 .Pa http://www.FreeBSD.org/ports
516 (searchable index of all ports)
521 It has since spread to
527 This manual page was originated by
530 Ports documentation is split over four places \(em
531 .Pa /usr/ports/Mk/bsd.port.mk ,
532 .%B "The Porter's Handbook" ,
534 .Dq "Packages and Ports"
536 .%B "The FreeBSD Handbook" ,