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 etcdir 45.Op Fl m Ar mode 46.Op Fl o Ar owner 47.Ar file1 file2 48.Nm 49.Op Fl bCclMpSsUv 50.Op Fl B Ar suffix 51.Op Fl D Ar destdir 52.Op Fl f Ar flags 53.Op Fl g Ar group 54.Op Fl L Ar etcdir 55.Op Fl m Ar mode 56.Op Fl o Ar owner 57.Ar file1 ... fileN directory 58.Nm 59.Fl d 60.Op Fl lUv 61.Op Fl D Ar destdir 62.Op Fl g Ar group 63.Op Fl L Ar etcdir 64.Op Fl m Ar mode 65.Op Fl o Ar owner 66.Ar directory ... 67.Sh DESCRIPTION 68The file(s) are copied 69to the target file or directory. 70If the destination is a directory, then the 71.Ar file 72is copied into 73.Ar directory 74with its original filename. 75If the target file already exists, it is 76either renamed to 77.Ar file Ns Pa .old 78if the 79.Fl b 80option is given 81or overwritten 82if permissions allow. 83An alternate backup suffix may be specified via the 84.Fl B 85option's argument. 86.Pp 87The options are as follows: 88.Bl -tag -width indent 89.It Fl b 90Back up any existing files before overwriting them by renaming 91them to 92.Ar file Ns Pa .old . 93See 94.Fl B 95for specifying a different backup suffix. 96.It Fl L Ar etcdir 97Specify the location of the /etc directory containing the group and password 98files. The default is "/etc". If an alternative directory is specified 99group and username lookups will be made from the alternative group and 100password files rather than the system group and password files. 101.It Fl B Ar suffix 102Use 103.Ar suffix 104as the backup suffix if 105.Fl b 106is given. 107.It Fl C 108Copy the file. 109If the target file already exists and the files are the same, 110then don't change the modification time of the target. 111.It Fl c 112Copy the file. 113This is actually the default. 114The 115.Fl c 116option is only included for backwards compatibility. 117.It Fl d 118Create directories. 119Missing parent directories are created as required. 120.It Fl D Ar destdir 121Specify the 122.Ev DESTDIR 123(top of the file hierarchy) that the items are installed into. 124This option is implemented for compatibility with the 125.Nx 126version of 127.Nm 128and does nothing. 129.It Fl f 130Specify the target's file flags; see 131.Xr chflags 1 132for a list of possible flags and their meanings. 133.It Fl g 134Specify a group. 135A numeric GID is allowed. 136.It Fl l 137When the 138.Fl L 139option is specified and the owner or group cannot be found, fallback to 140system files. 141.It Fl M 142Disable all use of 143.Xr mmap 2 . 144.It Fl m 145Specify an alternate mode. 146The default mode is set to rwxr-xr-x (0755). 147The specified mode may be either an octal or symbolic value; see 148.Xr chmod 1 149for a description of possible mode values. 150.It Fl o 151Specify an owner. 152A numeric UID is allowed. 153.It Fl p 154Preserve the modification time. 155Copy the file, as if the 156.Fl C 157(compare and copy) option is specified, 158except if the target file doesn't already exist or is different, 159then preserve the modification time of the file. 160.It Fl S 161Safe copy. 162Normally, 163.Nm 164unlinks an existing target before installing the new file. 165With the 166.Fl S 167flag a temporary file is used and then renamed to be 168the target. 169The reason this is safer is that if the copy or 170rename fails, the existing target is left untouched. 171.It Fl s 172.Nm 173exec's the command 174.Xr strip 1 175to strip binaries so that 176.Nm 177can be portable over a large 178number of systems and binary types. 179.It Fl U 180Indicate that 181.Nm 182is running unprivileged, and that it should not try to change 183the owner, the group, or the file flags of the destination. 184.It Fl v 185Cause 186.Nm 187to be verbose, 188showing files as they are installed or backed up. 189.El 190.Pp 191By default, 192.Nm 193preserves all file flags, with the exception of the 194.Dq nodump 195flag. 196.Pp 197The 198.Nm 199utility attempts to prevent moving a file onto itself. 200.Pp 201Installing 202.Pa /dev/null 203creates an empty file. 204.Sh ENVIRONMENT 205The 206.Nm 207utility checks for the presence of the 208.Ev STRIPBIN 209environment variable and if present, 210uses the assigned value as the program to run if and when the 211.Fl s 212option has been specified. 213.Pp 214If the 215.Ev DONTSTRIP 216environment variable is present, 217.Nm 218will ignore any specification of the 219.Fl s 220option. 221This is mainly for use in debugging the 222.Dx 223.Xr dports 7 224collection. 225.Sh FILES 226.Bl -tag -width INS@XXXX -compact 227.It Pa INS@XXXX 228If either 229.Fl S 230option is specified, or the 231.Fl C 232or 233.Fl p 234option is used in conjunction with the 235.Fl s 236option, temporary files named 237.Pa INS@XXXX , 238where 239.Pa XXXX 240is decided by 241.Xr mkstemp 3 , 242are created in the target directory. 243.El 244.Sh EXIT STATUS 245.Ex -std 246.Sh COMPATIBILITY 247Historically 248.Nm 249moved files by default. 250The default was changed to copy in 251.Fx 4.4 . 252.Sh SEE ALSO 253.Xr chflags 1 , 254.Xr chgrp 1 , 255.Xr chmod 1 , 256.Xr cp 1 , 257.Xr mv 1 , 258.Xr strip 1 , 259.Xr mmap 2 , 260.Xr chown 8 261.Sh HISTORY 262The 263.Nm 264utility appeared in 265.Bx 4.2 . 266.Sh BUGS 267Temporary files may be left in the target directory if 268.Nm 269exits abnormally. 270.Pp 271File flags cannot be set by 272.Xr fchflags 2 273over a NFS filesystem. Other filesystems do not have a concept of flags. 274The 275.Nm 276utility will only warn when flags could not be set on a filesystem 277that does not support them. 278.Pp 279The 280.Nm 281utility with 282.Fl v 283falsely says a file is copied when 284.Fl C 285snaps hard links. 286