mmpack FAQ ########## Why mmpack at all ? The **mmpack** project is a package manager that works - cross-platform - without root access - allows several concurrent conflicted versions to coexist As far as we know, this is the only tool that allows all of this. Who is mmpack designed for ? mmpack is designed with several sets of people in mind. First for collaborating R&D teams, to help when multiple unstable code versions must coexist, to help with cross-platform development, and to help with setting up demo packaging and deployment. Second for technico-marketing teams to set up said demo easily, without special setup especially permission issues Finally for anyone developing cross-platform and user-space projects. Are all mmpack packages available on all supported platforms ? The goal is **yes**. However, nothing is preventing a package to only be available for a single platform ... If a package is not available for your platform, and that platform is supported by mmpack, you should contact the package maintainer. How does mmpack handle dependencies ? Both **mmpack** and **mmpack-build** should be handling dependencies for you. **mmpack** by installing dependencies on install, and removing back-dependencies on removal. **mmpack-build** by detecting which package you used to build, find its minimum required version, and adding it as dependency in the created package. How do I ... ============ ... retrieve the source code of a package ? ``mmpack source `` ... get information about the mmpack packages I'm installing ``mmpack show `` ... get back the same mmpack prefix I used yesterday ? The first time - only the first time - you need to create the mmpack prefix using ``mmpack mkprefix``. It will create the folders you need. Then you tell mmpack to work with the prefix, either by using the ``--prefix`` option, or ``MMPACK_PREFIX`` environment variable. Any time later (after leaving the shell, rebooting ...) you can use this same prefix with only the second step. The recommended way is to use the ``--prefix`` option in scripts, and to set the ``MMPACK_PREFIX`` environment variable when working in you shell. ... find out what went wrong ? - for **mmpack** commands, see ``/var/log/mmpack.log`` within the mmpack prefix. - for **mmpack-build** see mmpack log file (``~/.local/share/mmpack.log``) the file can be configured to be elsewhere depending on your ``XDG_DATA_HOME`` environment variable. ... ask for help, or report an issue ? If your issue is about a specific package, contact the package maintainer directly. If your issue is about mmpack itself, contact the *MindMaze mmlabs team*. ... know what dependency mmpack will see and use ? When **mmpack** installs package X depending on package Y, if package Y is not already installed within the working prefix, then mmpack will install it, regardless of whether Y is already installed in another prefix, provided by another system package, or even installed manually by yourself. When **mmpack-build** looks for dependencies during the package creation, it looks for mmpack packages in the current mmpack prefix first, then in the installed system packages if one meets the requirements needs. If you manually installed the requirements (not using mmpack nor a system manager) then it will NOT be considered. ... get more information about a specific mmpack command ? *All* mmpack and mmpack-build commands and subcommands have a ``--help`` option that should give you the information you are looking for. e.g. ``mmpack --help``, ``mmpack install --help`` ... If any such help is missing, incomplete, or unintelligible, please contact us. ... know which mmpack prefix is active in my interactive shell Inspect MMPACK_ACTIVE_PREFIX environment variable. You may modify your shell prompt to reflect whether a prefix is currently active and which one. A bash script (prompt.bash) provided in the installation of mmpack implements this and can be sourced in your bash initialization file.