swremove(8)
Contents
swremove -- Remove installed software
swremove [-d|-r] [-v] [-t targetfile] \
[-x option=value] [-X options_file] [-W option] \
[software_selections] [@targets]
swremove --cleansh [options] [@targets]
swremove removes installed software. swremove is a distributed
utility. Neither swremove 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. Remote network
connections are made by ssh. Ssh is the default but rsh can be
selected by a command line option.
swremove operates on installed software identified by a software
selection and target.
-d
Specify the target is a distribution.
Note: This is currently not supported by this
implementation.
-f FILE
Read the list of software selections from FILE.
-p
Preview mode, establish contact with target host, however,
modify nothing.
-r
Indicates that the operation is on installed software at a
location indicated by the the target.
Note: This is the default mode among -d and -r
-t targetfile
Specify a file containing a list of targets (one per line).
-v
Increment the verbose level.
-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.
--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.
--allow-ambig
Allows swremove to act on all matching entries. Without this
option a software selection that matches more than one installed
software entry is an error.
--sig-level=N
Specify number of required GPG signatures, N equal to 0 means
don't require the catalog to be signed.
--cleansh
Kill stray or zombied processes that match the pattern ``sh
-s.*_swbis''. These may be caused by a distributed utility
segfaulting or a signal handling defect in the swbis utility.
-W remote-shell=SHELL
Defaults File Option: swbis_remote_shell_client
Supported shells are "ssh" and "rsh", ssh is the default.
-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-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
NAME may be one of "bash", "sh" 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 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
Refer to the software objects (products, filesets) using
software spec syntax. (See sw(5) for syntax).
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 located. A target that
contains only one part is assumed to be a hostname. To force
interpretation as a path, use a absolute path or prefix with
':'.
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.
;
Remove everything at 192.168.1.2 from the root directory
swremove --allow-ambig \* @ root@192.168.1.2:/
Preview removal of every package listing every file, but modify nothing
swremove -vv -p --allow-ambig \* @ root@192.168.1.2:/
Remove everything at 192.168.1.2 from the home directory of user
'jailbird'.
swremove --allow-ambig \* @ jailbird@192.168.1.2:.
Remove package foo from the root '/', or elevate your credentials via ssh
swremove foo @ /
swremove foo @ root@localhost:/
Show the options
swremove --show-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.
POSIX
These options are set in the /usr/lib/swbis/swdefaults or the
~/.swdefaults on the local (management host, host where swremove is
invoked). These files on the target host are not used.
autoselect_dependencies = false
distribution_target_directory = /
enforce_dependencies = false
enforce_scripts = true
installed_software_catalog = var/lib/swbis/catalog/
logfile = /var/log/sw.log
loglevel = 1
select_local = true
verbose = 1
Swbis Implementation
These options are set in the /usr/lib/swbis/swbisdefaults or the
~/.swbis/swbisdefaults file.
swremove.swbis_no_getconf = true # true or false
swremove.swbis_shell_command = posix # {sh|bash|posix|ksh}
swremove.swbis_no_remote_kill = false # true or false
swremove.swbis_local_pax_write_command=tar #{pax|tar|star|gtar}
swremove.swbis_remote_pax_write_command=tar #{pax|tar|star|gtar}
swremove.swbis_local_pax_read_command=tar #{pax|tar|gtar|star}
swremove.swbis_remote_pax_read_command=tar #{pax|tar|gtar|star}
swremove.swbis_local_pax_remove_command=tar
swremove.swbis_remote_pax_remove_command=tar
swremove.swbis_remote_shell_client=ssh
swremove.swbis_forward_agent=True
swremove.swbis_sig_level=0
swremove.swbis_enforce_all_signatures=false
0 if all targets succeeded, 1 if all targets failed or internal error,
2 if some targets failed and some succeeded.
Multiple ssh-hops is an implementation extension.
The swbis distributed utilities require bash, public domain ksh, or
Sun's /usr/xpg4/bin/sh to be present on the target host. If the
swbis_shell_command extended option is set to 'detect' you don't have
to know which one is present, otherwise you may specify one explicitly.
A POSIX awk is required, and with the ability to specify several
thousand bytes of program text as a command argument. GNU awk works,
as does the ATT Awk book awk, and the awk on BSD systems. See the
INSTALL file for further details regarding a small issue with the
OpenSolaris (c.2006) awk.
GNU Privacy Guard, gpg is required for verification of package
signatures.
swremove uses rm and rmdir for file and directory removal.
Other utilities required to be in $PATH on the remote host are: dd, pax
(or tar|star|gtar), mkdir, echo, test, sleep, read (if not builtin).
/var/lib/swbis/catalog # Location of installed catalog
/usr/lib/swbis/swdefaults
/usr/lib/swbis/swbisdefaults
$HOME/.swbis/swdefaults
$HOME/.swbis/swbisdefaults
ISO/IEC 15068-2:1999, Open Group CAE C701
info swbis
swbis(7), sw(5), swlist(8)
swremove(8): The package removal utility of the swbis project.
Author: Jim Lowe Email: jhlowe at acm.org
Version: 1.13
Last Updated: 2008-04-18
Copying: GNU Free Documentation License
swremove 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.) swremove does not support rollback
if an error occurs during processing.
swremove(8)