web-dev-qa-db-fra.com

Programme d'installation hors ligne MinGW-w64

est-il possible d'installer mingw-w64 hors ligne? J'ai essayé de nombreuses sources officielles et toutes semblent avoir besoin d'une sorte d'accès à Internet. Je cherche quelque chose qui fonctionne pour les systèmes x32 et x64. J'ai essayé de jeter un œil à le dépôt officiel mais je ne sais pas de quels fichiers j'ai besoin pour cette tâche.

Merci d'avance !

11
Costi Ivan

Bien que ce qui suit ne soit pas encore entièrement testé, un programme d'installation hors ligne semble inutile. Sur la base de quelques captures d'écran d'un rapport de bogue, le programme d'installation en ligne pose les questions suivantes ...

Version .......... seems to be the GNU GCC version number
Architecture ..... i686 / x86_64
Threads .......... posix / win32
Exception ........ dwarf / sjlj / seh
Build Revision ... 0 / 1 / 2 / ...

Install folder ... e.g. c:\mingw

Create desktop shortcuts?

Les 5 premières options sont utilisées pour choisir un seul package de téléchargement. Je ne sais pas pour vous, mais je ne sais pas quoi choisir pour les threads et les exceptions. Basé uniquement sur les statistiques de téléchargement, les threads posix sont utilisés plus de deux fois plus que win32, seh semble beaucoup plus populaire pour 64 bits, nain pour 32 bits, sjlj semble assez mal aimé. Je suppose que 32 bits avec posix et nain est la valeur par défaut.

Pour identifier les choix, il utilise un fichier repository.txt de ce dossier . Ce n'est qu'un fichier texte séparé par des tuyaux - 5 champs pour ces 5 options principales, plus un pour l'URL du package à télécharger.

Soit dit en passant, si quelqu'un sait où trouver le code source de l'installateur, j'apprécierais vraiment un commentaire - j'ai chassé haut et bas, trouvé par exemple rapports de bogues, mais pas trouvé la source du programme d'installation. Les sources des paquets binaires mingw-64 sont cependant assez faciles à trouver.

Les packages binaires eux-mêmes sont dans des sous-dossiers de ce dossier (Win32) et ce dossier (Win64) .

Je ne sais pas à quoi servent les raccourcis que le programme d'installation propose de créer - c'est MinGW-w64, pas MSYS ou MSYS2, donc il n'y a pas de shell basé sur bash pour fournir des raccourcis. Ce ne sont probablement que des raccourcis d'invite de commandes Windows avec le chemin d'accès configuré.

Autre que ce problème de raccourcis, tout ce que vous faites est de décompresser le package dans un dossier approprié, assurez-vous que le dossier mingw32\bin ou mingw64\bin se trouve sur le chemin en quelque sorte, et vous devriez avoir terminé. J'ai déjà testé cela avec l'un des packages gcc-5.4.0 32 bits - g ++ a compilé un monde bonjour sans problème.

Il existe des versions tierces alternatives dans les sous-dossiers à partir d'une étape plus loin ici (32 bits) et des sous-dossiers similaires de différents répertoires Toolchains ciblant * les dossiers pour les versions 64 bits et autres. ray_linn a différentes versions qui incluent le support Ada (et Objective C/C++?). rubenvb a quelques anciennes versions de GCC et Clang. dongsheng-daily ressemble à des versions quotidiennes, y compris même GCC 7 expérimental.

Si vous avez également besoin de MSYS, faites-le moi savoir dans les commentaires. J'ai installé cela hors ligne (avec MinGW32) pendant un certain temps, j'ai donc une liste des packages à installer. Vous avez besoin d'un certain nombre de packages, c'est difficile de les obtenir de SourceForge, mais une fois que vous les avez, ils sont généralement déballés à nouveau. Il y a quelques "postinstall" mineurs à faire - un fichier à créer, principalement où trouver MinGW, ainsi que la création d'un raccourci vers le Shell. J'ai des scripts AutoIt pour le faire - un peu de gâchis, en utilisant des méthodes inappropriées parce qu'ils étaient ce que je savais dans AutoIt à l'époque, mais ils fonctionnent bien.

Il y a MSYS2, mais à première vue, c'est un autre problème supposé d'installation en ligne, en utilisant le gestionnaire de paquets pacman - probablement très pratique, mais pas pour la minorité qui ne peut pas l'utiliser.

14
Steve314

Oui, vous pouvez installer mingw-w64 hors ligne si vous utilisez d'abord le pacman de MSYS2 sur votre ordinateur connecté à Internet, puis transférez les fichiers téléchargés par pacman vers votre ordinateur hors ligne.

À votre question, la grande chose à propos de pacman est qu'il saisira les bonnes versions de toutes les dépendances.

Sur votre machine Internet:

  1. Utilisez le programme d'installation MSYS2 depuis http://www.msys2.org/
  2. Exécutez MSYS2 et mettez à jour la base de données du package avec pacman -Syu
  3. Dans votre terminal MSYS2, créez un dossier pour contenir les packages que vous souhaitez (c'est-à-dire mingw-w64)

    mkdir ~/offline_packages
    cd ~/offline_packages
    pacman -Syw base base-devel mingw-w64-x86_64-toolchain --cachedir .
    
  4. Utilisez le script repo-add De pacman pour tout regrouper dans une base de données:

    repo-add ./offline.db.tar.gz ./*
    
  5. Copiez le programme d'installation MSYS2 ET ~/offline_packages Sur votre lecteur flash externe.

Sur votre machine hors ligne:

  1. Installez MSYS2.
  2. Copiez le dossier offline_packages De votre lecteur flash vers un chemin d'accès auquel MSYS2 peut accéder (par exemple C:/msys64/home/user/offline_packages)
  3. Modifier C:/msys64/etc/pacman.conf

    1. Mettez en commentaire les référentiels [mingw32], [mingw64], [msys].
    2. Ajoutez un nouveau référentiel. Cet exemple utilise le chemin arbitraire donné ci-dessus. Modifiez pour pointer vers l'endroit où vous avez copié le dossier offline_packages.

      [offline]
      SigLevel = Optional
      Server = file:///home/user/offline_packages
      
  4. Dans un terminal MSYS2, synchronisez la base de données pacman avec votre nouveau référentiel

    pacman -Syu
    
  5. Installez mingw-w64, etc.

    pacman -S --needed base base-devel mingw-w64-x86_64-toolchain
    
  6. Terminé!

Références: https://wiki.archlinux.org/index.php/Pacman/Tips_and_tricks#Installation_and_recovery

9
AaronDanielson