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
    Clover EFI bootloader
    Clover EFI bootloader
    Project has moved to
    https://github.com/CloverHackyColor/CloverBootloader..
    Features:Boot macOS, Windows, and Linux
    in UEFI or legacy mode on Mac or PC with
    UE...
    Download Clover EFI bootloader
  • 2
    unitedrpms
    unitedrpms
    Join us in Gitter!
    https://gitter.im/unitedrpms-people/Lobby
    Enable the URPMS repository in your
    system -
    https://github.com/UnitedRPMs/unitedrpms.github.io/bl...
    Download unitedrpms
  • 3
    Boost C++ Libraries
    Boost C++ Libraries
    Boost provides free portable
    peer-reviewed C++ libraries. The
    emphasis is on portable libraries which
    work well with the C++ Standard Library.
    See http://www.bo...
    Download Boost C++ Libraries
  • 4
    VirtualGL
    VirtualGL
    VirtualGL redirects 3D commands from a
    Unix/Linux OpenGL application onto a
    server-side GPU and converts the
    rendered 3D images into a video stream
    with which ...
    Download VirtualGL
  • 5
    libusb
    libusb
    Library to enable user space
    application programs to communicate with
    USB devices. Audience: Developers, End
    Users/Desktop. Programming Language: C.
    Categories...
    Download libusb
  • 6
    SWIG
    SWIG
    SWIG is a software development tool
    that connects programs written in C and
    C++ with a variety of high-level
    programming languages. SWIG is used with
    different...
    Download SWIG
  • More »

Linux commands

Ad