Untitled

Next: NAME, Up: (dir)

## 1 swinstall" "8

Next: SYNOPSIS, Previous: Top, Up: Top

### 1.1 NAME

swinstall — Install POSIX and RPM packages.

Next: DESCRIPTION, Previous: NAME, Up: Top

### 1.2 SYNOPSIS

         swinstall [−p] [−r] [−s source_file] [−f file] \
         [−t targetfile] [−x option=value]  [−X options_file] [−W option] \
         [software_selections] [@target [target1...]]

         swinstall −s −    # Minimum unambiguous invocation.

Next: OPTIONS, Previous: SYNOPSIS, Up: Top

### 1.3 DESCRIPTION

swinstall installs a POSIX distribution from a source archive to a target directory. A POSIX distribution is a package, typically a compressed tarball with metadata files in the prescribed file layout. Neither swinstall nor any component of swbis is required on the target host, however, the target host must look like a Unix system at the shell and command-line utility level and have a POSIX shell. Remote network connections are made by ssh. Ssh is the default but rsh can be selected by a command line option. By default and with no external influences (i.e. swdefaults file) swinstall will read an archive on stdin and install all products and filesets of package in "/" directory on the target host. An alternate root may be specified using the target syntax. The distribution source directory (swbis default: stdin) is selectable via the defaults file, therefore it should be specified in uncontrolled environments. swinstall operates on cpio or tar archives. swinstall supports cpio archives by first translating to tar format, therefore, to reduce the data transformations performed by swinstall, distributors encouraged to deliver products in tar format. swinstall will create an entry in an installed software catalog. This is a directory usually located at /var/lib/swbis/catalog. Using this information checks for upgrade, downdate, dependencies, and reinstallation are made.

Next: INSTALLED SOFTWARE CATALOG, Previous: DESCRIPTION, Up: Top

### 1.4 OPTIONS

-f FILE

> Reads software`_`selections from FILE. (Not implemented).

-p

> Preview the operation. Depending on the verbose level information is written to stdout. The target is not modified although a remote connection is established.

-r

> This option has no affect.

-s SOURCE

> Specify the source file SOURCE, "−" is standard input. The syntax is the same as for a target. SOURCE may be an archive file or stdin.

-t targetfile

> Specify a file containing a list of targets (one per line).

-x option=value

> Specify the extended option overriding the defaults file value.

-X FILE

> Specify the extended options filename, FILE, overriding the default filenames. This option may be given more then once. If the resulting specified value is an empty string then reading of any options file is disabled.

-v

> Given one time it is identical to −x verbose=2. This option can be given multiple times with increasing effect. (Implementation extension option). −v is level 2, −vv is level 3,... etc. level 0: silent on stdout and stderr. level 1: fatal and warning messages to stderr. −v level 2: level 1 plus a progress bar. −vv level 3: level 2 plus script stderr. −vvv level 4: level 3 plus events. −vvvv level 5: level 4 plus events. −vvvvv level 6: level 5 plus set shell −vx option. −vvvvvv level 7 and higher: level 6 plus debugging messages.

−−version, −V

> Show version (Implementation extension)

−−help

> Show help (Implementation extension)

-W option[,option,...]

> Specify the implementation extension option. Syntax: −W option[=option`_`argument[,option...] Options may be separated by a comma. The implementation extension options may also be given individually using the '−−long-option[=option`_`arg]' syntax.

-W preview-tar-file=FILE

> This is a testing/development option. Writes the fileset archive to FILE. This is the same data stream that would have been loaded on the target. This option should only be used with the '−p' option. The output sent to FILE is a tar archive but without trailer blocks.

-W remote-shell=NAME

> Defaults File Option: swbis`_`remote`_`shell`_`client

> This is the remote connection client program on the management (originating host). The path NAME may be an absolute path (not located in $PATH). The basename of NAME is used for intermediate hops. Supported shells are "ssh" and "rsh". The default is "ssh".

-W quiet-progress

> Defaults File Option: swbis`_`quiet`_`progress`_`bar Disable progress bar, which is active for verbose levels 2 and higher (i.e. −v).

-W show-options-files

> Show the complete list of options files and if they are found.

-W show-options

> Show the options after reading the files and parsing the command line options.

-W pax-command={tar|pax|star|gtar}

> Set the portable archive command for all operations. The default is "pax".

-W pax-read-command={tar|pax|star|gtar}

> Set the read command for local and remote hosts.

-W remote-pax-read-command={tar|pax|star|gtar}

> Defaults File Option: swbis`_`remote`_`pax`_`read`_`command

> Set the read command for remote hosts. This is the command that runs on the target (e.g. pax −r, tar xpf −). The default is "pax".

-W local-pax-read-command={tar|pax|star|gtar}

> Defaults File Option: swbis`_`local`_`pax`_`read`_`command

> Set the read command for local hosts. This is the command that runs on the target (e.g. pax −r, tar xpf −). The default is "pax".

-W pax-write-command={tar|pax|star|gtar|swbistar}

> Set the write command for local and remote hosts. This is the command that runs on the target (e.g. pax −w, tar cf −).

-W remote-pax-write-command={tar|pax|star|gtar|swbistar}

> Defaults File Option: swbis`_`remote`_`pax`_`write`_`command

> Set the write command for remote hosts.

-W local-pax-write-command={tar|pax|star|gtar|swbistar}

> Defaults File Option: swbis`_`local`_`pax`_`write`_`command

> Set the portable archive write command for local host operations. This is the command that runs on the source (e.g. pax −w, tar cf −). The default is "pax".

-W remote-pax-write-command={tar|pax|star|gtar|swbistar}

> Defaults File Option: swbis`_`remote`_`pax`_`write`_`command

> Set the portable archive write command for remote host operations. This is the command that runs on the source (e.g. pax −w, tar cf −). The default is "pax".

-W no-defaults

> Do not read any defaults files.

-W no-remote-kill

> Defaults File Option: swbis`_`no`_`remote`_`kill

> Disables the use of a second remote connection to tear down the first in the event of SIGINT or SIGTERM or SIGPIPE. Only has effect if the number of ssh hops is greater than 1. A single host remote connection (ssh hop = 1) never uses a second remote connection.

-W no-getconf

> Defaults File Option: swbis`_`no`_`getconf

> Makes the remote command be '/bin/sh −s' instead of the default 'PATH=`getconf PATH` sh −s'.

-W shell-command=NAME

> Defaults File Option: swbis`_`shell`_`command

> This is the interactive shell on the target host. NAME may be one of "bash", "sh", "ksh" or "posix" and specifies the remote command run by the remote shell. "posix" is 'PATH=`getconf PATH` sh −s', "bash" is "/bin/bash −s", "sh" is "/bin/sh −s", and "ksh" is "ksh −s". The default is "posix".

-W use-getconf

> Opposite of −−no-getconf.

-W allow-rpm

> Defaults File Option: swbis`_`allow`_`rpm

> Enable automatic detection, translation to POSIX format, and installation of RPMs.

-W pump-delay1=NANOSECONDS

> Adds a NANOSECONDS delay (999999999 nanoseconds ~ 1 second) every ADJSIZE bytes in the file data byte pump. A delay of 10111000 nanoseconds (~1/100th second) is added for 2-hop or greater target (i.e more than 1 remote host in the target spec). This is a work around for a bug in OpenSSH [or Linux kernel] that is seen for multi-hop installs where the intermediate host is a Linux kernel. If 2-hop install fails, try it again, you may get lucky, or, increase this delay, or, use ssh protocol version 1 by using ”−−ssh-options=1”, or try a 2-hop install where the middle host is BSD. To disable delay for multi-hop targets specify zero. For more information about this bug see the README file from the source distribution.

-W burst-adjust=ADJSIZE

> ADJSIZE is the pumped data size, in bytes, between the NANOSECONDS delays. This is a work around for a bug in OpenSSH or the Linux kernel that is seen for multi-hop installs where the intermediate host is a Linux kernel. The default is 72000 for 2-hops or greater, and zero for single hop and localhost installs.

-W ssh-options=OPTIONS

> ssh client program options. For example −W ssh-options=1 sets the '−1' ssh client option which specifies protocol version 1.

-W source-script-name=NAME

> Write the script that is written into the remote shell's stdin to NAME. This is useful for debugging.

-W target-script-name=NAME

> Write the script that is written into the remote shell's stdin to NAME. This is useful for debugging.

software`_`selections

> Refers to the software objects (products, filesets) on which to be operated. This is not implemented, however, specification of a location and qualifier are supported. location allow specification of a alternate relative root path within the target path, and qualifier allows specification of a user-selectable modifier. For example:

>               swinstall q=exp @ 192.168.1.1  # Tag the package as experimental
>               swinstall l=/unionfs/somepackage-1.0 @ 192.168.1.1  # Allows multiple
>                                             # packages with same tag to exist in the
>                                             # same target path, where the location
>                                             # disambiguates.

target

> Refers to the software`_`collection where the software selections are to be applied. Allows specification of host and pathname where the software collection is to be located. A target that contains only one part is assumed to be a hostname. To force interpretation as a path, use an absolute path or prefix with ':'. The default target path for 'swinstall' is always '/'.

         Source and Target Specification and Logic
              Synopsis:
                   Posix:
                        host[:path]
                        host
                        host:
                        /path  # Absolute path
                   Swbis Extension:
                        [user@]host[:path]
                        [user@]host_port[:path]
                        :path
                   Swbis Multi-hop Target Extension:
                        # ':' is the target delimiter
         	       # '_' delimits a port number in the host field
                        [user@]host[@@[user@]host[@@...]][:file]
                        [user@]host_port[@@[user@]host[@@...]][:file]
                        # Using ':', a trailing colon is used to
                        # disambiguate between a host and file.
         	       # For Example,
                        :file
                        host:
                        host
                        host:file
                        host:host:
                        host_port:host_port:
                        host:host:file
                        user@host:user@host:
                        user@host:user@host:host:
                        user@host:user@host:file
              A more formal description:
              target : HOST_CHARACTER_STRING ':' PATHNAME_CHARACTER_STRING
                     | HOST_CHARACTER_STRING ':'
                     | HOST_CHARACTER_STRING
                     | PATHNAME_CHARACTER_STRING
                     | ':' PATHNAME_CHARACTER_STRING   # Impl extension
                     ;
                PATHNAME_CHARACTER_STRING must be an absolute path unless
                                a HOST_CHARACTER_STRING is given.  Allowing
                                a relative path is a feature of the swbis
                                implementation.
                         NOTE: A '.' as a target is an implementation
                               extension and means extract in current
                               directory.
                         NOTE: A '−' indicating stdout/stdin is an
                               implementation extension.
                         NOTE: A ':' in the first character indicates a filename.
                               This is an implementation extension.
                HOST_CHARACTER_STRING is an IP or hostname.
             Examples:
                Copy the  distribution /var/tmp/foo.tar.gz at 192.168.1.10
                       swcopy −s /var/tmp/foo.tar.gz @192.168.1.10:/root
         Implementation Extension Syntax (multi ssh-hop) :
             Syntax:
             %start   wtarget    # the Implementation Extension Target
                                 # Note: a trailing ':' forces interpretation
                                 # as a host, not a file.
             wtarget   : wtarget DELIM sshtarget
                       | sshtarget
                       | sshtarget DELIM
                       ;
             sshtarget : user '@' target # Note: only the last target
                       | target          # may have a PATHNAME, and only a host
                       ;                 * may have a user
             target   : HOST_CHARACTER_STRING
                      | PATHNAME_CHARACTER_STRING
                      ;
             user     : PORTABLE_CHARACTER_STRING  # The user name
             DELIM    : ':'   # The multi-hop delimiter.
                      ;

Next: IMPLEMENTATION EXTENSIONS, Previous: OPTIONS, Up: Top

### 1.5 INSTALLED SOFTWARE CATALOG

The form or format of an installed software catalog is not specified by the ISO/IEC spec although it does specify an interface to it (e.g. swlist utility) and operations on it. This implementation creates a de-facto installed software catalog rooted at the file system path specified by the value of the installed`_`software`_`catalog extended option. The catalog is a file system hierarchy containing regular files and directories.

Next: CATALOG LOCATION, Up: INSTALLED SOFTWARE CATALOG

#### 1.5.1 CATALOG FILE LAYOUT

          <path>/
          <path>/<ISC>/
          <path>/<ISC>/<bundle>/
          <path>/<ISC>/<bundle>/<product>/
          <path>/<ISC>/<bundle>/<product>/<pr>/
          <path>/<ISC>/<bundle>/<product>/<pr>/<seqence_number>/
          <path>/<ISC>/<bundle>/<product>/<pr>/<sequence_number>/export/
          <path>/<ISC>/<bundle>/<product>/<pr>/<sequence_number>/export/catalog.tar
          <path>/<ISC>/<bundle>/<product>/<pr>/<sequence_number>/export/catalog.tar.sig
          <path>/<ISC>/<bundle>/<product>/<pr>/<sequence_number>/export/catalog.tar.sig<N>
          <path>/<ISC>/<bundle>/<product>/<pr>/<sequence_number>/INSTALLED
          <path>/<ISC>/<bundle>/<product>/<pr>/<sequence_number>/control.sh
          <path>/<ISC>/<bundle>/<product>/<pr>/<sequence_number>/session_options
          <path>/<ISC>/<bundle>/<product>/<pr>/<sequence_number>/vendor_tag
          <path>/<ISC>/<bundle>/<product>/<pr>/<sequence_number>/location
          <path>/<ISC>/<bundle>/<product>/<pr>/<sequence_number>/qualifier

<path> is the target path. <ISC> is the value of the installed`_`software`_`cataglog extended option. <bundle> and <product> are bundle and product tags. If there is no bundle in the distribution the product tag is used. <pr> is the product revision. Other items are explained below.

Next: * Root or Alternate Root, Previous: CATALOG FILE LAYOUT, Up: INSTALLED SOFTWARE CATALOG

#### 1.5.2 CATALOG LOCATION

         /<path>/
         /<path>/<installed_software_catalog>/
         /<path>/<installed_software_catalog>/...

Next: * Catalog Relative Root Directory, Previous: CATALOG LOCATION, Up: INSTALLED SOFTWARE CATALOG

#### 1.5.3 * Root or Alternate Root

         /<path>/

<path>/ is the target path specified in the target syntax. By default "/".

Next: PACKAGE CATALOG RELATIVE ROOT, Previous: * Root or Alternate Root, Up: INSTALLED SOFTWARE CATALOG

#### 1.5.4 * Catalog Relative Root Directory

         /<path>/
         /<path>/<installed_software_catalog>/

<installed`_`software`_`catalog>/ is the value of the extended option by the same name. By default "var/lib/swbis/catalog".

Next: CATALOG SEQUENCE NUMBER, Previous: * Catalog Relative Root Directory, Up: INSTALLED SOFTWARE CATALOG

#### 1.5.5 PACKAGE CATALOG RELATIVE ROOT

         /<{bundle|prod}.tag>/<prod.tag>/<prod.revision>/...

In other words, if 'product' and 'bundle' refers to tags, and product`_`revision is the value of the product.revision attribute then the path segment is:

          /bundle/product/product_revision

Next: CATALOG CONTENTS, Previous: PACKAGE CATALOG RELATIVE ROOT, Up: INSTALLED SOFTWARE CATALOG

#### 1.5.6 CATALOG SEQUENCE NUMBER

          /<sequence_number>/
          /<sequence_number>/...

sequence`_`number is a decimal integer starting with '0'. It is chosen by swinstall to be unique at the time of installation.

Next: The export directory, Previous: CATALOG SEQUENCE NUMBER, Up: INSTALLED SOFTWARE CATALOG

#### 1.5.7 CATALOG CONTENTS

         <sequence_number>/
          <sequence_number>/export/
          <sequence_number>/export/catalog.tar
          <sequence_number>/export/catalog.tar.sig
          <sequence_number>/INSTALLED
          <sequence_number>/control.sh
          <sequence_number>/session_options
          <sequence_number>/vendor_tag
          <sequence_number>/location
          <sequence_number>/qualifier

Next: INSTALLED &minus;&minus; The state metadata file, Previous: CATALOG CONTENTS, Up: INSTALLED SOFTWARE CATALOG

#### 1.5.8 The export directory

          export/
          export/...
          export/catalog.tar
          export/catalog.tar.sig
          export/catalog.tar.sig2
                        ...
          export/catalog.tar.sigN

The export/ is a file system directory and its name is constant for all packages and is unique to the swbis implementation. The export/catalog.tar file is the signed file from the POSIX distribution. The export/catalog.tar.sig file is the signature file from the distribution. If there is more than one signature, then it is the last one. export/catalog.tar.sig2 is the next to last signature, and export/catalog.tar.sigN is the first one, where N is the total number of signatures.

Next: control sh &minus;&minus; The master control script, Previous: The export directory, Up: INSTALLED SOFTWARE CATALOG

#### 1.5.9 INSTALLED −− The state metadata file

          <sequence_number>/INSTALLED

The INSTALLED file is similar to an INDEX file in its grammar and syntax. Unlike an INDEX file, it may contain control`_`file definitions. The INSTALLED file stores the control script return codes and fileset installation state. It is updated several times during the operation of 'swinstall'. It can be parsed using libexec/swbisparse and the '−−installed' option.

Next: session<tt>_</tt>options &minus;&minus; The extended options, Previous: INSTALLED &minus;&minus; The state metadata file, Up: INSTALLED SOFTWARE CATALOG

#### 1.5.10 control.sh −− The master control script

          <sequence_number>/control.sh
           SYNOPSIS: control.sh tag_spec script_tag

The control.sh file is a POSIX shell script that is automatically generated by swinstall. It provides a common interface for control script execution. Its primary purpose is to set up the script's execution environment and map script tags to the control script pathnames. It assumes that 'export/catalog.tar' is unpacked in export/.

Next: EXAMPLE CATALOG ENTRY, Previous: control sh &minus;&minus; The master control script, Up: INSTALLED SOFTWARE CATALOG

#### 1.5.11 session`_`options −− The extended options

          <sequence_number>/session_options

This file contains the extended options in a form that may be executed by the shell '.' (dot) command. It is automatically generated by swinstall. The value of the SW`_`SESSION`_`OPTIONS environment variable is the absolute pathname of the this file.

Previous: session<tt>_</tt>options &minus;&minus; The extended options, Up: INSTALLED SOFTWARE CATALOG

#### 1.5.12 EXAMPLE CATALOG ENTRY

Below is an example entry of the catalog created by swbis version 0.405. In this example, the target path is '/mnt/test', the installed`_`software`_`catalog is '/var/lib/swbis/catalog/', the bundle tag is 'foobare', the product tag is 'foobare-doc', and the product revision attribute is '0.902'.

         /mnt/test/var/lib/swbis/catalog/foobare/foobare-doc/0.902/0/export
         /mnt/test/var/lib/swbis/catalog/foobare/foobare-doc/0.902/0/export/catalog.tar
         /mnt/test/var/lib/swbis/catalog/foobare/foobare-doc/0.902/0/export/catalog.tar.sig
         /mnt/test/var/lib/swbis/catalog/foobare/foobare-doc/0.902/0/INSTALLED
         /mnt/test/var/lib/swbis/catalog/foobare/foobare-doc/0.902/0/control.sh
         /mnt/test/var/lib/swbis/catalog/foobare/foobare-doc/0.902/0/vendor_tag
         /mnt/test/var/lib/swbis/catalog/foobare/foobare-doc/0.902/0/location
         /mnt/test/var/lib/swbis/catalog/foobare/foobare-doc/0.902/0/qualifier
         /mnt/test/var/lib/swbis/catalog/foobare/foobare-doc/0.902/0/session_options

Although swinstall does not depend on the file name as this accommodates installing from standard input, a typical name for this package would be:

                foobare-doc-0.902-sl04.tar.gz

where 'sl04' is the vendor tag.

Next: EXTENDED OPTIONS, Previous: INSTALLED SOFTWARE CATALOG, Up: Top

### 1.6 IMPLEMENTATION EXTENSIONS

Next: RPM Translation, Up: IMPLEMENTATION EXTENSIONS

#### 1.6.1 Software Specification Targets

A dash '−' is supported and means stdout or stdin. Operations with stdout and stdin on a remote host is not supported. A decimal '.' is supported and means the current directory. This is supported for remote and non-remote targets. If the source is standard input, the distribution will be unpacked (e.g. pax −r) in the directory '.'. If the source is a regular file then a regular file in '.' will be created with the same name.

Next: Testing with RPM, Previous: Software Specification Targets, Up: IMPLEMENTATION EXTENSIONS

#### 1.6.2 RPM Translation

RPM (RedHat Package Manager) format packages are installed by first translating to an equivalent ISO/IEEE file layout in POSIX tar format and then installing as a POSIX package. This translation and detection is transparent to the user if the ”−−allow-rpm” option is set in the command line args or the swbis`_`allow`_`rpm is set to "true" by the defaults files, otherwise an error occurs. Since translation is done on the local (management) host, RPM is not required on the remote (target) host. The translation is (internally) equivalent to :

            cat your-0.0-1.bin.rpm |
            /usr/lib/swbis/lxpsf −−psf-form2 −H ustar |
            swpackage −W source=− −s @PSF | swinstall −s − @/

Previous: RPM Translation, Up: IMPLEMENTATION EXTENSIONS

#### 1.6.3 Testing with RPM

To test the swbis components, a completely independent means to install and verify a package is needed. RPM provides this means and can be used in the following way:

            rpm −i −−nodeps −−force your-0.0-1.i386.rpm  # Install
            rpm −−verify −−nodeps your-0.0-1             # Show that all is well
            rpm −e −−nodeps your-0.0-1                   # Remove it.
            rpm −i −−nodeps −−justdb your-0.0-1.i386.rpm # Install just the database.
            rpm −−verify −−nodeps your-0.0-1             # Shows the files are missing.
            swinstall −−allow-rpm −s − < your-0.0-1.i386.rpm
            rpm −−verify −−nodeps your-0.0-1             # Show that all is well again

Next: RETURN VALUE, Previous: IMPLEMENTATION EXTENSIONS, Up: Top

### 1.7 EXTENDED OPTIONS

Extended options can be specified on the command line using the −x option or from the defaults file, swdefaults. Shown below is an actual portion of a defaults file which show default values.

Next: Swbis Implementation, Up: EXTENDED OPTIONS

#### 1.7.1 POSIX

These options are set in the /usr/lib/swbis/swdefaults or the ~/.swdefaults

           allow_downdate              = false      # Not Implemented
           allow_incompatible          = false      # Not Implemented
           ask                         = false      # Not Implemented
           autoreboot                  = false      # Not Implemented
           autorecover                 = false      # Not Implemented
           autoselect_dependencies     = false      # Not Implemented
           defer_configure             = false      # Not Implemented
           distribution_source_directory   = −	     # Stdin
           enforce_dependencies        = false      # Not Implemented
           enforce_locatable           = false      # Not Implemented
           enforce_scripts             = false      # Not Implemented
           enforce_dsa                 = false      # Not Implemented
           installed_software_catalog  = var/lib/swbis/catalog
           logfile             = /var/lib/sw/swinstall.log #Not Implemented
           loglevel                    = 0          # Not Implemented
           reinstall                   = false      # Not Implemented
           select_local		= false      # Not Implemented
           verbose			= 1

Previous: POSIX, Up: EXTENDED OPTIONS

#### 1.7.2 Swbis Implementation

These options are set in the /usr/lib/swbis/swbisdefaults or the ${HOME}/.swbis/swbisdefaults file.

           swinstall.swbis_no_getconf = false # true or false
           swinstall.swbis_shell_command = posix # {sh|bash|posix}
           swinstall.swbis_no_remote_kill = false # true or false
           swinstall.swbis_no_audit = false # true or false
           swinstall.swbis_quiet_progress_bar = false # true or false
           swinstall.swbis_local_pax_write_command=pax #{pax|tar|star|gtar}
           swinstall.swbis_remote_pax_write_command=pax #{pax|tar|star|gtar}
           swinstall.swbis_local_pax_read_command=pax #{pax|tar|gtar|star}
           swinstall.swbis_remote_pax_read_command=pax #{pax|tar|gtar|star}
           swinstall.swbis_enforce_sig=false # true or false
           swinstall.swbis_enforce_file_md5=false # true or false
           swinstall.swbis_allow_rpm=false # true or false
           swinstall.swbis_remote_shell_client=ssh
           swinstall.swbis_install_volatile=true
           swinstall.swbis_volatile_newname=     #empty string, e.g. ".rpmnew"

Next: NOTES, Previous: EXTENDED OPTIONS, Up: Top

### 1.8 RETURN VALUE

0 if all targets succeeded, 1 if all targets failed, 2 if some targets failed and some succeeded.

Next: REQUISITE UTILITIES, Previous: RETURN VALUE, Up: Top

### 1.9 NOTES

Multiple ssh-hops is an implementation extension.

Next: FILES, Previous: NOTES, Up: Top

### 1.10 REQUISITE UTILITIES

swinstall requires a POSIX shell accessible by the remote shell command. This is the remote command run by ssh (or rsh) for all operations. This command can be controlled by the −−shell-command option or the swbis`_`shell`_`command defaults file option. Permitted values are "bash" (/bin/bash −s) or "sh" (/bin/sh −s) or "posix" ('PATH=`getconf PATH` sh −s'). The default is "posix". swinstall requires the POSIX capability of reading commands on stdin according to the specification described in IEEE Std 1003.1, 2003 Ed.; sh −shell, Section STDIN. This requirement accommodates reading of shell program code and data on STDIN. This capability may not be present in some /bin/sh shells. The "/bin/sh" on FreeBSD-5.1 may be broken in this regard, hence ”−−shell-command=bash” should be used for BSD hosts. The public domain Korn shell (pdksh-5.2.14) seems to work OK, that is, it complies by luck or intent with the POSIX capability of reading data and code on stdin. If the −−no-getconf option is set or the swinstall.swbis`_`no`_`getconf defaults option is "true" then the remote command is '/bin/sh −s'. Use of the no-getconf option is needed for communication with user accounts on remote machines whose login shell is not a Bourne shell (e.g. csh) such as root on some default BSD installations. Other *nix systems may require use of getconf because their /bin/sh is broken or not POSIX enough (e.g. Sun platforms). Still other systems may not have getconf. Other utilities required to be in $PATH on the remote host are: dd, pax (or tar|star|gtar), hostname, mkdir, expr, echo, test, sleep, read (if not builtin).

Next: APPLICABLE STANDARDS, Previous: REQUISITE UTILITIES, Up: Top

### 1.11 FILES

          /usr/lib/swbis/swdefaults
          /usr/lib/swbis/swbisdefaults
          $HOME/.swbis/swdefaults
          $HOME/.swbis/swbisdefaults

Next: SEE ALSO, Previous: FILES, Up: Top

### 1.12 APPLICABLE STANDARDS

ISO/IEC 15068-2:1999, Open Group CAE C701

Next: IDENTIFICATION, Previous: APPLICABLE STANDARDS, Up: Top

### 1.13 SEE ALSO

info swbis swcopy(8), sw(5), swbisparse(1), swign(1), swverify(8)

Next: BUGS, Previous: SEE ALSO, Up: Top

### 1.14 IDENTIFICATION

swinstall(8): The installation utility of the swbis project. Author: Jim Lowe Email: jhlowe at acm.org Version: 0.950 Last Updated: 2008-04-18 Copying: GNU Free Documentation License

Previous: IDENTIFICATION, Up: Top

### 1.15 BUGS

swinstall is subject to breakage if a user's account on an intermediate (or terminal) host in a target spec is not configured to use a Bourne compatible shell. (This breakage may be eliminated by use of the −−no-getconf option as explained above.) A multiple ssh hop source spec (more than 1 remote host involved in the source transfer) upon a SIGINT may result in sshd and ssh processes being left on on the intermediate host(s), this despite, swinstall's action of sending a SIGTERM to the remote script's parent process. swinstall does not currently implement Software Selections, not fileset dependencies, and much more. Only packages with one product and one fileset are supported.