# install(1)

## NAME

         install - install files

## SYNOPSIS

         install [-lcszN] [-o owner] [-g group] [-m mode] [-S stack] [file1] file2
         install [-lcszN] [-o owner] [-g group] [-m mode] [-S stack] file ... dir
         install -d [-o owner] [-g group] [-m mode] directory

## DESCRIPTION

         Install puts executables, manual pages, and library files in their proper
         place  in  the bin, man, and lib directories.  The first two forms of the
         command are like cp(1) copying either one  file  to  another  or  copying
         several files to a directory.  The "-d" form is like mkdir(1) with the -p
         flag.  File1 may be omitted if neither -l nor -c is given to  change  the
         attributes of file2.

         Attributes are always copied from the source file,  use  the  options  to
         change.   Note  that  the  source  file's attributes are changed with the
         destination file if they are linked.  So copy the file if you  change  it
         in  a  way  that  makes it read-only.  You would otherwise not be able to
         compile a command again.

## OPTIONS

         -l   Link the destination to the source file instead of copying it.  This
              is  done  to either save space on a file system with both the source
              and the bin directories on it, or to install synonyms to a command.

         -c   Copy the source file to  its  proper  place.   This  option  is  the
              default if -l is not given.  With -l, the file is copied if the link
              fails.

         -s   Strip the destination  file  of  its  symbol  table,  if  it  is  an
              executable,  and  if  it  is actually copied.  It has no effect on a
              link or a non-executable.

         -z   Compress the executable using compress(1) and prepend a header  line
              that calls zexec(1) to decompress and execute the binary.  This will
              on average save 40% disk space at the expense of  a  slower  startup
              time.  Like -s the file must be actually copied for the flag to have
              effect.

         -N   Use gzip -N to compress the binary.  You may see  up  to  60%  space
              savings,  but  it  will  take much longer.  N is a digit from 1 to 9
              telling the compression effort, see gzip(1).

         -d   Make a directory, usually to install files in a  separate  directory
              in a library.  Intermediate directories in the path are created with
              the same attributes as the final directory.  Only the attributes  of
              the final directory are set if the directory exists.

         -o owner
              Set the owner of the target.  This only works if the invoker is  the
              super-user,  or  if  install is run setuid root and the invoker is a
              member of group zero.  If -o is omitted then the ownership is copied
              from the source file, or set to the id of the invoker if a directory
              is made.

         -g group
              Like -o, but for the group ownership of the target.

         -m mode
              Mode is an octal number that specifies the mode  the  target  should
              get.   The  default  is  the  source  file's  mode with a chmod a+rX
              applied to it, or 755 for a new directory.  Implies -o 0, or -g 0 if
              a file is to be set-uid or set-gid and the invoker has permission to
              change ownership.  This trick allows a group  0  member  to  install
              third  party  software,  even  though  it expects to be installed by
              root.

         -S stack
              Sets the maximum amount of heap + stack that an executable may  have
              when   running.   The  argument  is  a  C-style  decimal,  octal  or
              hexadecimal number, optionally followed by the multipliers m, k,  w,
              and  b  for mega (1024*1024), kilo (1024), "word" (2 or 4), and byte
              (1).  Uppercase M is also accepted for  those  who  know  what  S.I.
              means.   The  compilers  use  -S 32kw by default, that translates to
              64kb for an 8086, and 128kb for other architectures.  This option is
              ignored on a non-executable.

## SEE ALSO

         ln(1),  cp(1),  strip(1),  compress(1),  gzip(1),   zexec(1),   chown(8),
         chgrp(8), chmod(1), chmem(1), mkdir(1).

## BUGS

         Uppercase K, W, and B are also accepted for those  who  don't  know  what
         S.I. means.

## AUTHOR

         Kees J. Bot (kjb@cs.vu.nl)