Skip to content

prun: Add documentation in markdown format #201

Merged
merged 6 commits into from
Aug 16, 2021
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
37 changes: 37 additions & 0 deletions prun/pman.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
% PTYPE(1) | Mariux Tools Documentation

NAME
====

**pman** - view manual pages installed in Mariux packages.

SYNOPSIS
========

| **pman command**

DESCRIPTION
===========

**ptype** uses the PATH set in the package wrapper and tries to find a manual page in the package directory.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you mean pman here instead of ptype?


EXAMPLES
========

**display manpage found in /pkg/stellarium-0.21.0-0/share/man/man1**
: pman stellarium


BUGS
====

**pman** is very naive in looking up man pages, so your mileage may vary.

See GitHub Issues: <https://github.molgen.mpg.de/mariux64/mxtools>

SEE ALSO
========

**prun(1)**, **ptype(1)**, **man(1)**


102 changes: 102 additions & 0 deletions prun/prun.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
% PRUN(1) Version n/a | Mariux Tools Documentation

NAME
====

**prun** - Run Mariux packages (reads 'Package RUN').

SYNOPSIS
========

| **prun package command** [COMMANDOPTION]...

DESCRIPTION
===========

Runs applications, scripting languages, compilers, etc., from a dedicated directory.

The main usage is to run software in a specific version, or to provide a given environment. See **EXAMPLES** below.

There are some advantages over so called 'virtual environments' and the like. Packages are immutable, once installed they never change, thereby increasing the chances that an old program/script will also run in a few years. The packages also
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: dangling whitespace

use a standardized call procedure, independent of personal (un-)settings, thus an existing pipeline may be shared between different users.

The whole 'magic' behind **prun** is, that it transparently sets the PATH variable and possibly LD_LIBRARY_PATH for the actual call without spoiling the default environment.

EXAMPLES
========


**Run R-Studio with a brand new R version**

: prun R-4.1.0-0 rstudio

**Use an ancient python to run an unmaintained script**

: prun python-2.7.13-2 /project/cruft/bin/old_script.py

**Run nvidia nvcc from cuda-11.3 and list supported architectures**

: prun cuda-11.3 nvcc --list-gpu-code

**Start a plain shell with gcc-10.2 in the PATH**

: prun gcc-10.2.0-0 bash --norc

**Or just show the manual page for gcc-10.2**

: prun gcc-10.2.0-0 man gcc

**Create an own alias for a scripting language**

: alias myperl='prun perl-5.18.2-0 perl'

**Use prun in a script shebang**

: `#! /usr/bin/prun perl-5.18.2-0 perl`

**Alternatively using source**

: An alternative way to set a distinct environment is to source the profile from /pkg/FooBar-12.3.
But beware, such a source command should **never** make it into the **\~/.bashrc** - in the worst case it may inhibit your login!
(N.b. the alias method mentioned above is safe)

\
: source /pkg/gcc-10.2.0-0/profile


FILES
=====

*/package/FOO* or */pkg/BAR*

: Mountpoint (top directory) for selected package.

*/package/FOO/profile* or */pkg/BAR/profile*

: Contains settings for PATH, libraries, and possibly other stuff.

*/usr/local/package/lib/\**

: Primary wrappers for individual packages.

*/usr/local/package/admin/config*

: Definition of binaries provided and optional shortcuts.


BUGS
====

See GitHub Issues: <https://github.molgen.mpg.de/mariux64/mxtools>

AUTHORS
=======

D.Buczek, P.Marquardt, M.Tolzmann
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, I managed to do the 10 lines on my own. But I don't want to boast about it. Okay to leave out the credits section.


SEE ALSO
========

**ptype(1)**, **pman(1)**, **bash(1)**, **ld.so(8)**


42 changes: 42 additions & 0 deletions prun/ptype.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
% PTYPE(1) | Mariux Tools Documentation

NAME
====

**ptype** - small **type** like tool for Mariux packages.

SYNOPSIS
========

| **ptype command**

DESCRIPTION
===========

Similar to **type** or **which**. **ptype** gives information about a package binary. **type** would only tell something about the package wrapper, and not about the package where the real program is.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: dangling whitespace


```

#> type snakemake
snakemake is /usr/local/package/bin/snakemake

#> ptype snakemake
snakemake is /pkg/python-3.8.9-1/bin/snakemake ...
... (/usr/local/package/lib/python.profile)


```

BUGS
====

**ptype** only handles true wrapper scripts from /usr/local/package/bin, not the aliases. I.e. **ptype R** works, **ptype R4** not.

See GitHub Issues: <https://github.molgen.mpg.de/mariux64/mxtools>

SEE ALSO
========

**prun(1)**, **pman(1)**