xref: /dragonfly/usr.bin/xinstall/install.1 (revision a4da4a90)
1.\" Copyright (c) 1987, 1990, 1993
2.\"	The Regents of the University of California.  All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\"    notice, this list of conditions and the following disclaimer.
9.\" 2. Redistributions in binary form must reproduce the above copyright
10.\"    notice, this list of conditions and the following disclaimer in the
11.\"    documentation and/or other materials provided with the distribution.
12.\" 3. Neither the name of the University nor the names of its contributors
13.\"    may be used to endorse or promote products derived from this software
14.\"    without specific prior written permission.
15.\"
16.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
17.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
20.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26.\" SUCH DAMAGE.
27.\"
28.\"	From: @(#)install.1	8.1 (Berkeley) 6/6/93
29.\" $FreeBSD: src/usr.bin/xinstall/install.1,v 1.16.2.9 2002/07/01 21:01:23 des Exp $
30.\"
31.Dd January 22, 2016
32.Dt INSTALL 1
33.Os
34.Sh NAME
35.Nm install
36.Nd install binaries
37.Sh SYNOPSIS
38.Nm
39.Op Fl bCclMpSsUv
40.Op Fl B Ar suffix
41.Op Fl D Ar destdir
42.Op Fl f Ar flags
43.Op Fl g Ar group
44.Op Fl l Ar linkflags
45.Op Fl m Ar mode
46.Op Fl N Ar dbdir
47.Op Fl o Ar owner
48.Ar file1 file2
49.Nm
50.Op Fl bCclMpSsUv
51.Op Fl B Ar suffix
52.Op Fl D Ar destdir
53.Op Fl f Ar flags
54.Op Fl g Ar group
55.Op Fl l Ar linkflags
56.Op Fl m Ar mode
57.Op Fl N Ar dbdir
58.Op Fl o Ar owner
59.Ar file1 ... fileN directory
60.Nm
61.Fl d
62.Op Fl lUv
63.Op Fl D Ar destdir
64.Op Fl g Ar group
65.Op Fl m Ar mode
66.Op Fl N Ar dbdir
67.Op Fl o Ar owner
68.Ar directory ...
69.Sh DESCRIPTION
70The file(s) are copied
71(or linked if the
72.Fl l
73option is specified) to the target file or directory.
74If the destination is a directory, then the
75.Ar file
76is copied into
77.Ar directory
78with its original filename.
79If the target file already exists, it is
80either renamed to
81.Ar file Ns Pa .old
82if the
83.Fl b
84option is given
85or overwritten
86if permissions allow.
87An alternate backup suffix may be specified via the
88.Fl B
89option's argument.
90.Pp
91The options are as follows:
92.Bl -tag -width indent
93.It Fl b
94Back up any existing files before overwriting them by renaming
95them to
96.Ar file Ns Pa .old .
97See
98.Fl B
99for specifying a different backup suffix.
100.It Fl B Ar suffix
101Use
102.Ar suffix
103as the backup suffix if
104.Fl b
105is given.
106.It Fl C
107Copy the file.
108If the target file already exists and the files are the same,
109then don't change the modification time of the target.
110.It Fl c
111Copy the file.
112This is actually the default.
113The
114.Fl c
115option is only included for backwards compatibility.
116.It Fl d
117Create directories.
118Missing parent directories are created as required.
119.It Fl D Ar destdir
120Specify the
121.Ev DESTDIR
122(top of the file hierarchy) that the items are installed into.
123This option is implemented for compatibility with the
124.Nx
125version of
126.Nm
127and does nothing.
128.It Fl f
129Specify the target's file flags; see
130.Xr chflags 1
131for a list of possible flags and their meanings.
132.It Fl g
133Specify a group.
134A numeric GID is allowed.
135.It Fl l Ar linkflags
136Instead of copying the file make a link to the source.
137The type of the link is determined by the
138.Ar linkflags
139argument.
140Valid
141.Ar linkflags
142are:
143.Ar a
144(absolute),
145.Ar r
146(relative),
147.Ar h
148(hard),
149.Ar s
150(symbolic),
151.Ar m
152(mixed).
153Absolute and relative have effect only for symbolic links.
154Mixed links
155are hard links for files on the same filesystem, symbolic otherwise.
156.It Fl M
157Disable all use of
158.Xr mmap 2 .
159.It Fl m
160Specify an alternate mode.
161The default mode is set to rwxr-xr-x (0755).
162The specified mode may be either an octal or symbolic value; see
163.Xr chmod 1
164for a description of possible mode values.
165.It Fl N
166Use the user database text file
167.Pa master.passwd
168and group database text file
169.Pa group
170from
171.Ar dbdir ,
172rather than using the results from the system's
173.Xr getpwnam 3
174and
175.Xr getgrnam 3
176(and related) library calls.
177.It Fl o
178Specify an owner.
179A numeric UID is allowed.
180.It Fl p
181Preserve the modification time.
182Copy the file, as if the
183.Fl C
184(compare and copy) option is specified,
185except if the target file doesn't already exist or is different,
186then preserve the modification time of the file.
187.It Fl S
188Safe copy.
189Normally,
190.Nm
191unlinks an existing target before installing the new file.
192With the
193.Fl S
194flag a temporary file is used and then renamed to be
195the target.
196The reason this is safer is that if the copy or
197rename fails, the existing target is left untouched.
198.It Fl s
199.Nm
200exec's the command
201.Xr strip 1
202to strip binaries so that
203.Nm
204can be portable over a large
205number of systems and binary types.
206.It Fl U
207Indicate that
208.Nm
209is running unprivileged, and that it should not try to change
210the owner, the group, or the file flags of the destination.
211.It Fl v
212Cause
213.Nm
214to be verbose,
215showing files as they are installed or backed up.
216.El
217.Pp
218By default,
219.Nm
220preserves all file flags, with the exception of the
221.Dq nodump
222flag.
223.Pp
224The
225.Nm
226utility attempts to prevent moving a file onto itself.
227.Pp
228Installing
229.Pa /dev/null
230creates an empty file.
231.Sh ENVIRONMENT
232The
233.Nm
234utility checks for the presence of the
235.Ev STRIPBIN
236environment variable and if present,
237uses the assigned value as the program to run if and when the
238.Fl s
239option has been specified.
240.Pp
241If the
242.Ev DONTSTRIP
243environment variable is present,
244.Nm
245will ignore any specification of the
246.Fl s
247option.
248This is mainly for use in debugging the
249.Dx
250.Xr dports 7
251collection.
252.Sh FILES
253.Bl -tag -width INS@XXXX -compact
254.It Pa INS@XXXX
255If either
256.Fl S
257option is specified, or the
258.Fl C
259or
260.Fl p
261option is used in conjunction with the
262.Fl s
263option, temporary files named
264.Pa INS@XXXX ,
265where
266.Pa XXXX
267is decided by
268.Xr mkstemp 3 ,
269are created in the target directory.
270.El
271.Sh EXIT STATUS
272.Ex -std
273.Sh COMPATIBILITY
274Historically
275.Nm
276moved files by default.
277The default was changed to copy in
278.Fx 4.4 .
279.Sh SEE ALSO
280.Xr chflags 1 ,
281.Xr chgrp 1 ,
282.Xr chmod 1 ,
283.Xr cp 1 ,
284.Xr mv 1 ,
285.Xr strip 1 ,
286.Xr mmap 2 ,
287.Xr getgrnam 3 ,
288.Xr getpwnam 3 ,
289.Xr chown 8
290.Sh HISTORY
291The
292.Nm
293utility appeared in
294.Bx 4.2 .
295.Sh BUGS
296Temporary files may be left in the target directory if
297.Nm
298exits abnormally.
299.Pp
300File flags cannot be set by
301.Xr fchflags 2
302over a NFS filesystem.  Other filesystems do not have a concept of flags.
303The
304.Nm
305utility will only warn when flags could not be set on a filesystem
306that does not support them.
307.Pp
308The
309.Nm
310utility with
311.Fl v
312falsely says a file is copied when
313.Fl C
314snaps hard links.
315