As a side note, if we were importing from a source that doesn't use a build mechanism that Shipwright can automatically create a set of build instructions for (currently autoconf, ExtUtils::MakeMaker, Module::Install, and Module::Build), we would now need to edit scripts/SOURCE_NAME/build to tell Shipwright how to build that source.

For our tutorial, e.g. perl 5.10, Shipwright doesn't know about the peculiarities of how to build perl, so we need to edit the build file:

You may find that cpan-XML-LibXML needs libxml as a dependency, but in /scripts/cpan-XML-LibXML/require.yml there's no such entry, because require.yml is created automatically, filled with perl module dists, no extra dependences will be set.

So we need to do it manually, e.g. use the following command to do so:

To ship our vessel, create an archive of the built files using an archive program such as tar, e.g. by running tar czvf vessel.tar.gz /tmp/vessel.

Users can use our vessel by extracting the archive to a directory and then adding the following command to their shell's startup script (e.g. for bash users, edit /home/user/.bashrc on most systems): source /base/path/tools/etc/shipwright-source-bash (for bash users). A source script is also provided for the tcsh shell.

Here is a sourcing example:

source /home/user/myapp/tools/shipwright-source-bash /home/user/myapp

This example assumes the myapp vessel was extracted to /home/user/myapp.

After sourcing this script, users will be able to run binaries and load perl modules from our vessel as with normal installed programs, though they will need to start a new shell or re-run their startup script.