#97 Feature for mingw-get: mingw-get createoffline

Completed
closed
nobody
2011-11-06
2011-09-23
Robert Hartmann
No

Hi there,
it would be very nice, if a feature like this can become developed :

mingw-get create OfflineBundel ALL

mingw-get create OfflineBundel MinGW

mingw-get create OfflineBundel MSYS

This should produce a zip (or tar.gz ) with the selected Bundle just copyable to
a Computer without internet connection. After extracting the archive everything
should work out of the box. That means no internet connection for installing!

Option ALL should include MSYS and all MinGW-Compilers for Win32 running in cmd.exe or command.com (as,gcc,g++,ada,fortran,java,pascal)
perhaps if existend MinGW-Interpreters for Win32 running in cmd.exe or command.com (perl,python,scheme,prolog)

Option MinGW should include all MinGW-Compilers&Interpreters but no MSYS.

Best regards,
Robert

Discussion

  • Keith Marshall
    Keith Marshall
    2011-09-29

    You should be able to achieve this already; I see little benefit in building any additional (complex) functionality into mingw-get, beyond the features it already provides, to fulfill this capability.

    Obviously, you need an internet connected PC to create the initial bundles, but given that, and depending on your needs/preferences, I can conceive two feasible approaches:--

    1) Stage a clean installation of the entire intended "bundle", on the internet-connected PC, with the sysroots configured to reside OUTSIDE of the mingw-get tree. Make a snapshot archive of the complete staged installation; this then becomes the "bundle", which you unpack on any number of target PCs, to replicate the installation.

    2) Stage a free-standing installation of mingw-get, and configure it as you would for running locally on any target, with sysroots WITHIN the mingw-get tree. Run 'mingw-get update' to ensure its catalogue is up to date, then 'mingw-get install --download-only ...' to capture the package archives needed for your "bundle". Make a snapshot archive of the staged mingw-get tree itself; this becomes the "bundle" which you unpack on any number of targets, on each of which you then run 'mingw-get install ...' (WITHOUT the --download-only option) to complete the installation.

    With strategy (1), you run mingw-get ONLY on the staging PC; NEVER on the targets. The mingw-get installation itself, its book-keeping files, and the downloaded package archives are hosted ONLY on the staging PC; they are not propagated to the targets.

    After you create the bundle snapshot, you may remove the staged sysroot trees, and also the sysroot-*-*-*-*.xml and manifest-*-*-*-*.xml files from mingw-get's own var/lib/mingw-get/data directory, to reset mingw-get to its initial state, with nothing recorded as installed.

    With strategy (2) you DO run mingw-get on the target PCs, (and you may do so again later, should the target become internet-connected, to upgrade the target installation directly); you do NOT need an internet connection initially, on the target, because the required catalogue and package archives are already present in the bundled mingw-get tree.

    In this latter case, you don't have any staged sysroot trees to remove, from the staging PC. However, you may still wish to reset the staged mingw-get tree to its initial state, (prior to creating additional bundles); you may do this by removing all sysroot-*-*-*-*.xml and manifest-*-*-*-*.xml files, (if there are any), from its var/lib/mingw-get/data directory, (as for strategy (1)), and ALSO removing all package archive files which you wish to omit from subsequent bundles, from its var/cache/mingw-get/packages directory.

    Note that in both of the above cases, the sole prerequisite for running mingw-get in offline mode is to have locally available copies of the catalogue files, in the var/lib/mingw-get/data directory, and all package archives needed for your "bundle" locally available in var/cache/mingw-get/packages.

    Either of these approaches should work today. Both offer considerably more flexibility than your proposal; if you wish to pre-configure specific bundle content, you may define your own meta-package additions to your local mingw-get catalogue; (Hint: adopt a copy of mingw32-base.xml as a template, and adapt it).

     
  • Keith Marshall
    Keith Marshall
    2011-09-29

    • status: open --> pending
     
  • Keith Marshall
    Keith Marshall
    2011-09-29

    Hmm. Just reviewed the ChangeLog.

    Strategy (2) may not work just yet; it requires the --download-only option, which is supported by a current build from CVS, but it appears that I may have added it more recently than the last formal release.

    Apologies, if this caused any confusion.

     
  • Keith Marshall
    Keith Marshall
    2011-11-06

    • milestone: --> Completed
    • status: pending --> closed
     
  • Keith Marshall
    Keith Marshall
    2011-11-06

    As of mingw-get-0.4-alpha-1, released 2011-11-06, all of the functionality described in my previous comments is fully supported by a formal release. I see no further reason to keep this request open, hence closing.