The Stork Client
The Stork client is used to install packages onto your nodes.
There are two different ways to install packages:
- Manually using the stork client command-line tool
- Automatically using pacman
There are a number of command line options that
may be specified to control the behavior of stork.
These options may also be specified in the stork configuration file
(/usr/local/stork/etc/stork.conf by default). Stork will also check your TPFile
to confirm that the package is a trusted package from the package's true creator.
Stork client, while effective by itself, is also used in unison with
Pacman. Pacman is used to organize nodes and packages,
and essentially just runs the Stork client for installation of each individual node
that you tell it to manage. Pacman will call the Stork client when a package is updated
in the repository, thereby updating the package on your nodes.
Stork Client Command-line Tool
The stork client tool can be used to manually
install, remove, and upgrade packages. It does this
through a command-line interface. You must be logged
in as root to use the stork client tool.
Installing Packages:
To install a package on a node,
use the command (from root):
$ stork mypackage
Removing Packages:
To remove a package from a node, use the option:
$ stork --remove mypackage
Upgrading Packages:
To upgrade a package from a node, use the option:
$ stork --upgrade mypackage
Specifying version numbers and tags:
Optionally, you may also specify version and tag
numbers when installing and upgrading packages. For
example: To install a specific version number of a
package:
$ stork --upgrade mypackage=1.0.3-11
You may also use >, <, >=, <=
relational operators:
$
stork --upgrade mypackage <=1.0-3-11
To install a package with a specific tag, use the
'#' syntax:
$ stork --upgrade mypackage #mytag
Stork Client Options
The following are the options that can be used with the stork client, organized by type.
Help, Verbosity, and Miscellaneous
- -h, --help
- Display a short summary of
available options and exit
- --version
- Display stork version number and
exit
- --log
- Record package actions in the system log
- --width=CHARS
- Set the width of the terminal in characters (default: 80)
- -Q, --veryquiet
- Be very quiet (shorter messages)
- -q, --quiet
- Be quiet
- -v, --verbose
- Be verbose (default)
- -V, --veryverbose
- Be very verbose (useful for
debugging)
- --ultraverbose
- Be extremely verbose (might be
useful for debugging)
Error Reporting
Stork includes a built-in error
logging and reporting feature. Errors in the Stork
python scripts will be caught and a comprehensive
error report generated and stored in a file in /tmp
for future reference. The error report will be
automatically emailed to the Stork developers to aid
in diagnosing future problems.
- --debug
- Disable the error reporting mechanism. Stork
will not catch exceptions and will neither
generate nor send error reports.
- --disableerrorreporting
- Disables sending of error reports to the Stork
team. Reports are still generated and saved to
files, but they will not be mailed to the Stork
developers.
Commands
All of the following
options are mutually exclusive and effect
what operation stork will carry out. If no
command is given, then stork will
automatically default to package
installation.
- (default)
- Install the packages listed on the command
line. The version that the package will be
upgraded to will generally be the first matching
line that is found in your trusted packages file.
The install command will fail if any version of a
package is already installed.
- -R, --remove
- Remove the packages listed on the command
line.
- --upgrade
- Upgrade the packages listed on the command
line. Upgrade is similar to install, with the
exception that upgrade does not fail when packages
are installed. The specific actions of an upgrade
depend on the type of package installed. For an
RPM package, stork will install the new version
and then remove the old version (mimicking the
behavior of RPM). For tar packages, stork will
remove the old version of the package before
installing the new version.
- --whatrequires
- List all installed packages that require the
dependencies listed on the command line.
- --list
- List installed packages. If package names are
listed on the command line, then stork will query
those package names. If no names are listed, then
stork will list all packages installed.
- --tpdump
- Dump trusted packages data, including your
trusted packages file and all trusted packages
file reference by it. The dumped output will be
sorted to indicate the order in which packages
will be prioritized when searching for a package
to install.
Modifiers to Package
Installation, Remove, Upgrade
- -s, --simulate
- Simulate the action instead of performing it.
Packages will not be downloaded, installed,
upgraded, or removed.
- --force
- Force removal and/or upgrade of packages that
have outstanding dependencies. Normally stork will
refuse to remove or upgrade a package, if removal
or upgrade would break other packages that depend
upon it. Specifying --force will cause stork to
ignore those dependencies and remove/upgrade the
packages anyway.
- -a, --abort
- If dependency resolution fails to resolve the
dependencies of a package, then abort without
continuing to try other packages.
- -A DEPTH, --abortdepth=DEPTH
- Used with the --abort option, this option
specifies the depth in dependency resolution for
which the --abort option will take place. The
default is 0. This option has no significance if
--abort is not used.
- --disabletrustedpackagesdata
- Does not check the trustedpackages file before
installing a package. WARNING: Using this option
will allow packages that are untrusted or rejected
to be installed. It also disables the tag feature
and when multiple versions of a package exist,
causes the version to be chosen arbitrarily.
- --noupgradedeps
- Does not automatically upgrade dependencies when
upgrading or installing packages.
- --requiretags=TAGS
- Specifies a list of tags that must be present
in a package and its dependencies. Packages
without the tags will be ignored.
- --tagprefrules
- Specifies a list of tag preference rules that
will be used to sort available packages. A rule is
of the form "tag1<tag2". Multiple rules may be
specified with commas ("tag1<tag2, tag3<tag4").
File Transfer Options
Stork transfers files using a variety
of mechanisms. These mechanisms generally
include the nest, bittorrent, coblitz,
coral, http, and ftp. If a transfer method
fails, then stork will failover to the
next available transfer mechanism. The
following options control the transfer
mechanisms.
- --transfermethod=PROGRAM
- Uses this method to transfer files (default ftp, http)
- --transfertempdir=PATH
- Uses this path to temporarily save transfered files
(default is /tmp/stork_trans_tmp)
- --bittorrenttrackerhost=TRACKERHOST
- Uses this host name of the tracker server.
- --bittorrenttrackerport=TRACKERPORT
- Uses this number to specify as the tracker port number for
torrents.
- --bittorrentuploadrate=UPLOADRATE
- Uses this number to specify as the tracker port number for
torrents.
- --bittorrentseedlookuptimeout=SEEDLOOKUPTIMEOUT
- The number of seconds bittorrent should timeout after
not finding a seed.
- --transuser=USER
- Uses this user to transfer files (the default is up to
the transfer program)
- --nesthostname=HOSTNAME
- Uses this host to transfer files. The default
is localhost.
- --nestport=PORT
- Uses this port to transfer files. The default
is 648.
Repository Options
These options control the stork package
managers (the interface to rpm, tar, etc)
and Stork's interaction with the
repository.
- --packagemanagers=PACKAGEMANAGERS
- Uses these programs to manage packages (default rpm,
tar)
- --tarpackinfo=PATH
- Uses this path to store tar package info (default is
/usr/local/stork/tar_packinfo)
- --localpackageinfo=PACKAGEDIR
- Uses this location of local package information (default
/usr/local/stork/var/packageinfo).
Stork creates a directory structure under this
local dirctory to hold various bits of
information, including package info, trusted
packages files, and pacman fils.
- --repositorypackagedir=MASK
- Specifies a mask that is used to match
available packageinfo files on the repository. The
default of *_packages_* will allow all packageinfo
to be used. A comma-separated list may be used for
multiple masks, or the option may be repeated
multiple times.
- --repositorypackageinfo=DIR
- Uses this repository name and location of
information about packages. A comma-separated list
(or multiple switches) may be used to download
repository information from multiple repositories.
In case duplicate trusted packages and/or pacman
files exist on multiple repositories, ties will be
broken in favor of the file with the newest
timestamp.
- --noupdatepackageinfo
- Does not attempt to download updated package databases
from the repositories.
- --insecure
- Does not use https for transferring configuration files
from the repository using curl. This
switch only affects the downloading of public keys
and configuration files, and not the downloading
of packages or metadata.
TPFiles, Config Files, Keys
- -C FILE, --configfile=FILE
- Use a different config file
(/usr/local/stork/etc/stork.conf is the default)
- --noupdateonstart
- Do not try to download latest custom configuration
files and keys from repository upon start of stork.py
- --xmlsignaturedtd=FILENAME
- Dump trusted packages data
- --trustedpackagesdtd=FILENAME
- Sets the trustedpackages DTD file
- --noupdatetrustedpackages
- Does not attempt to update the trustedpackages files
- --ignoremissingtpfiles
- Ignores missing trusted packages files.
- --certificate=STRING
- Uses a different certificate for downloading conf files
from repository. the default is
/usr/local/stork/var/certificates/nr06.certificate
- --repositorypath=STRING
- Uses a different repository to download configuration
files from. the default is https://nr06.cs.arizona.edu
/user-upload/
- --keytype=KEYTYPE
- Use this technique to sign files (default is rsa)
- --keygen=GENTYPE
- Use this option to use openssl to generate your
public/private keypair (default is genrsa)
- --hashtype=HASHTYPE
- Use this algorithm to generate hashes (default is
-sha1)
- -u USERNAME, --username=USERNAME
- Use this username for configuration files
- --publickeyfile=file
- Use this public key file to determine which
configuration files to use. Recommended:
/usr/local/stork/var/keys/[username].publickey
- --lockdir=dir
- Use the specified mutex lock directory (default
/var/lock)
-
-
Home Top
|