EnglishFrenchSpanish

Ad


OnWorks favicon

care - Online in the Cloud

Run care in OnWorks free hosting provider over Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

This is the command care that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

PROGRAM:

NAME


CARE - Comprehensive Archiver for Reproducible Execution

SYNOPSIS


care [option] ... command

DESCRIPTION


CARE monitors the execution of the specified command to create an archive that contains
all the material required to re-execute it in the same context. That way, the command
will be reproducible everywhere, even on Linux systems that are supposed to be not
compatible with the original Linux system. CARE is typically useful to get reliable bug
reports, demonstrations, artifact evaluation, tutorials, portable applications, minimal
rootfs, file-system coverage, ...

By design, CARE does not record events at all. Instead, it archives environment variables
and accessed file-system components -- before modification -- during the so-called initial
execution. Then, to reproduce this execution, the re-execute.sh script embedded into the
archive restores the environment variables and relaunches the command confined into the
saved file-system. That way, both initial and reproduced executions should produce the
same results as they use the same context, assuming they do not rely on external events --
like key strokes or network packets -- or that these external events are replayed manually
or automatically, using umockdev for instance. That means it is possible to alter
explicitly the reproduced executions by changing content of the saved file-system, or by
replaying different external events.

Privacy
To ensure that no sensitive file can possibly leak into the archive, CARE conceals
recursively the content of $HOME and /tmp, that is, they appear empty during the original
execution. Although, for consistency reasons, the content of $PWD is revealed even if it
is nested into the two previous paths.

As a consequence, a program executed under CARE may behave unexpectedly because a required
path is not accessible anymore. In this case, such a path has to be revealed explicitly.
For details, see the options --concealed-path and --revealed-path, and the file
concealed-accesses.txt as well.

It is advised to inspect the archived content before sharing it.

OPTIONS


The command-line interface is composed of two parts: first CARE's options, then the
command to launch. This section describes the options supported by CARE, that is, the
first part of its command-line interface.

-o path, --output=path
Archive in path, its suffix specifies the format.

The suffix of path is used to select the archive format, it can be one of the
following:

┌────────┬──────────────────────────────────┐
│suffix │ comment │
├────────┼──────────────────────────────────┤
│/ │ don't archive, copy into the │
│ │ specified directory instead │
├────────┼──────────────────────────────────┤
│.tar │ most common archive format │
├────────┼──────────────────────────────────┤
│.cpio │ most portable archive format, it │
│ │ can archive sockets too │
└────────┴──────────────────────────────────┘

│?.gz │ most common compression format, │
│ │ but slow │
├────────┼──────────────────────────────────┤
│?.lzo │ fast compression format, but │
│ │ uncommon │
├────────┼──────────────────────────────────┤
│?.bin │ see Self-extracting format
│ │ section │
├────────┼──────────────────────────────────┤
│?.?.bin │ see Self-extracting format
│ │ section │
├────────┼──────────────────────────────────┤
│.bin │ see Self-extracting format
│ │ section │
├────────┼──────────────────────────────────┤
│.raw │ recommended archive format, use │
│ │ care -x to extract │
└────────┴──────────────────────────────────┘

where "?" means the suffix must be combined with another one. For examples:
".tar.lzo", ".cpio.gz", ".tar.bin", ".cpio.lzo.bin", ... If this option is not
specified, the default output path is care-<DATE>.bin or care-<DATE>.raw, depending
on whether CARE was built with self-extracting format support or not.

-c path, --concealed-path=path
Make path content appear empty during the original execution.

Some paths may contain sensitive data that should never be archived. This is
typically the case for most of the files in:

· $HOME

· /tmp

That's why these directories are recursively concealed from the original execution,
unless the -d option is specified. Concealed paths appear empty during the
original execution, as a consequence their original content can't be accessed nor
archived.

-r path, --revealed-path=path
Make path content accessible when nested in a concealed path.

Concealed paths might make the original execution with CARE behave differently from
an execution without CARE. For example, a lot of No such file or directory errors
might appear. The solution is to reveal recursively any required paths that would
be nested into a concealed path. Note that $PWD is revealed, unless the -d option
is specified.

-p path, --volatile-path=path
Don't archive path content, reuse actual path instead.

Some paths contain only communication means with programs that can't be monitored
by CARE, like the kernel or a remote server. Such paths are said volatile; they
shouldn't be archived, instead they must be accessed from the actual rootfs during
the re-execution. This is typically the case for the following pseudo
file-systems, sockets, and authority files:

· /dev

· /proc

· /sys

· /run/shm

· /tmp/.X11-unix

· /tmp/.ICE-unix

· $XAUTHORITY

· $ICEAUTHORITY

· /var/run/dbus/system_bus_socket

· /var/tmp/kdecache-$LOGNAME

This is also typically the case for any other fifos or sockets. These paths are
considered volatile, unless the -d option is specified.

-e name, --volatile-env=name
Don't archive name env. variable, reuse actual value instead.

Some environment variables are used to communicate with programs that can't be
monitored by CARE, like remote servers. Such environment variables are said
volatile; they shouldn't be archived, instead they must be accessed from the actual
environment during the re-execution. This is typically the case for the following
ones:

· DISPLAY

· http_proxy

· https_proxy

· ftp_proxy

· all_proxy

· HTTP_PROXY

· HTTPS_PROXY

· FTP_PROXY

· ALL_PROXY

· DBUS_SESSION_BUS_ADDRESS

· SESSION_MANAGER

· XDG_SESSION_COOKIE

These environment variables are considered volatile, unless the -d option is
specified.

-m value, --max-archivable-size=value
Set the maximum size of archivable files to value megabytes.

To keep the CPU time and the disk space used by the archiver reasonable, files
whose size exceeds value megabytes are truncated down to 0 bytes. The default is
1GB, unless the -d option is specified. A negative value means no limit.

-d, --ignore-default-config
Don't use the default options.

-x file, --extract=file
Extract content of the archive file, then exit.

It is recommended to use this option to extract archives created by CARE because
most extracting tools -- that are not based on libarchive -- are too limited to
extract them correctly.

-v value, --verbose=value
Set the level of debug information to value.

The higher the integer value is, the more detailed debug information is printed to
the standard error stream. A negative value makes CARE quiet except on fatal
errors.

-V, --version, --about
Print version, copyright, license and contact, then exit.

-h, --help, --usage
Print the user manual, then exit.

EXIT STATUS


If an internal error occurs, care returns a non-zero exit status, otherwise it returns the
exit status of the last terminated program. When an error has occurred, the only way to
know if it comes from the last terminated program or from care itself is to have a look at
the error message.

Use care online using onworks.net services


Free Servers & Workstations

Download Windows & Linux apps

  • 1
    Sardi
    Sardi
    Sardi is a complete restyling and
    optimisation of svg code. 6 choices for
    your applications and 10 kind of folders
    to use in your file manager. The sardi
    icons...
    Download Sardi
  • 2
    LMMS Digital Audio Workstation
    LMMS Digital Audio Workstation
    LMMS is a free cross-platform software
    which allows you to produce music with
    your computer. If you like this project
    consider getting involved in the project
    h...
    Download LMMS Digital Audio Workstation
  • 3
    FreeRTOS Real Time Kernel (RTOS)
    FreeRTOS Real Time Kernel (RTOS)
    FreeRTOS is a market-leading real-time
    operating system (RTOS) for
    microcontrollers and small
    microprocessors. Distributed freely
    under the MIT open source lice...
    Download FreeRTOS Real Time Kernel (RTOS)
  • 4
    Avogadro
    Avogadro
    Avogadro is an advanced molecular
    editor designed for cross-platform use
    in computational chemistry, molecular
    modeling, bioinformatics, materials
    science and ...
    Download Avogadro
  • 5
    XMLTV
    XMLTV
    XMLTV is a set of programs to process
    TV (tvguide) listings and help manage
    your TV viewing, storing listings in an
    XML-based format. There are utilities to
    do...
    Download XMLTV
  • 6
    strikr
    strikr
    Strikr Free Software project. Artifacts
    released under a 'intent based'
    dual license: AGPLv3 (community) and
    CC-BY-NC-ND 4.0 international
    (commercial)...
    Download strikr
  • More »

Linux commands

Ad