App-rs

 view release on metacpan or  search on metacpan

bin/rs  view on Meta::CPAN

the package name will be C<perl>. Nontheless sometimes it could come in
handy.

=item * --subtree=<relative path>

Typically when you install a package using C<rs patch> everything inside
it will be installed, this option allows you install only some part of it.
You could pass this option multiple times.

=item * --prepared

If you pass a directory as arugument to C<rs compile>, B<rs> will assume
that it's a git directory, use this option if it's a prepared source
directory instead.

=item * --branch=<branch or tag>

Checkout this branch or tag when compiling from a git directory. By default
B<rs> will try to use the C<oid> you specified as the branch or tag to checkout.

=item * --bootstrap

Let B<rs> know that you're bootstrapping the toolchain, additional flags to
set include path, library path, and dynamic interpreter will be passed to
related compiling process, so that the final toolchain is self-contained.

=item * --jobs=<number>

How many parallel jobs should be used during C<make>.

=item * --no-rm

By default B<rs> will ask you if you want to remove the temporary build
directory if you're compiling from a tarball or a git directory, if you
toggle this option it will not try to remove the build directory.

=item * --dry

Tell the C<diff> command to only show the difference, neither gernerate
package nor update the database.

=item * --soft

Used with C<remove>, such that no file/directory will be removed, but
the entries in the database will be removed as usual, it's used to
do arbitrary L<amending|/AMEND>.

=item * --refdb=<file>

The database that connects all the packages together, it's the core data structure
used for managing CPAN modules. Currently it uses JSON as its format.

=item * --latest

This option applies to the C<install> command, so that it will check the
CPAN module to be installed and all its recursive dependency for updating.

=item * --version=<version>

Specify the minimum version requirement for the CPAN module to be installed so that it will
be updated if it's already installed but failed to satisfy the requirement.

=back

Note that all options should be specified before any command.

In the following text sometimes I refer to the value of an option as
the name of the option with the preceding C<--> removed, like C<pool>
to mean the value of the option C<--pool>.

=head1 COMMANDS

=over 4

=item diff

The C<diff> command takes one argument, C<oid>, it traverses the root
directory and tag the difference between the content there and what's
recorded in C<db> as C<oid>, and serializes it as C<oid.rs> in C<pool>.

You can choose anything you want as C<oid>, usually you want to use
something meaningful like the package name with the package version appended,
such as C<gcc-6.4.0>.

If the C<oid.rs> already exists in C<pool>, the new difference will be merged with
the old, this way the C<diff> command could do limited amending, that's most
useful when you forgot to install something, like documentation, you could
always install it later and merge with the content you installed previously.
See L</AMEND> for why amending using C<diff> is limited and how to do
arbitrary amending.

If the option C<dry> is given, the difference will only be displayed, that's
handy to check if your system is consistent with what's recorded in the database,
the difference should be empty if you didn't do a mannual installation, or you
can have a preview of what's installed if you did do that.

=item compile

The C<compile> command integrates the C<diff> and C<tag> commands to make
it easier for you to install a package from source, it automatically
compiles and installs a package, then does a C<diff> command followed
by a C<tag> command.

The compiling instructions are taken from the L</build> configuration file
with the entry associated with the package name. The package name could
be set explicitly by the C<--package> option, or more commonly it's derived
from C<oid> by using the longest prefix of it before the C<-> character,
for example, with C<man-pages-4.15> as oid the package name will default to
C<man-pages>, and with C<perl-v5.22.3> it will be C<perl>.

There're three types of compile commands, compile from a tarball, a git directory,
or a prepared source tree.

=over 4

=item * compile <tarball>

B<rs> will extract, compile, then install the tarball in the direcory
C<compile-in>, or the current directory if it's not specified.
The filename of the tarball, with the extension name like C<.tar.gz>,
C<.tar.xz>, etc. stripped, is used as C<oid> to the C<diff> command. For



( run in 0.606 second using v1.01-cache-2.11-cpan-0bb4e1dffa6 )