2016-07-15 19 views
7

Gibt es eine Möglichkeit, mingw-w64 offline zu installieren? Ich habe viele offizielle Quellen ausprobiert und alle scheinen eine Art Internetzugang zu benötigen. Ich suche nach etwas, das sowohl für x32- als auch für x64-Systeme funktioniert. Ich habe versucht, einen Blick auf the official repository zu werfen, aber ich bin mir nicht sicher, welche Dateien ich für diese Aufgabe brauche.MinGW-w64 Offline-Installer

Vielen Dank im Voraus!

+1

Mögliche Duplikat (https://stackoverflow.com/questions/29028808/is-there-an-offline-mingw-installer) – Switch

Antwort

9

Obwohl das Folgende noch nicht vollständig getestet wurde, scheint ein Offline-Installationsprogramm nicht erforderlich. Basierend auf einigen Screenshots für einen Fehlerbericht, fragt das Online-Installationsprogramm die folgenden Fragen ...

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? 

Die ersten 5 Optionen verwendet werden, ein einzelnes Download-Paket zu wählen. Ich weiß nichts von dir, aber ich habe keine Ahnung, was ich für Threads und Ausnahmen wählen soll. Basierend auf Download-Statistiken werden Posix-Threads mehr als doppelt so oft wie Win32 verwendet, seh scheint viel beliebter für 64-Bit, Zwerg für 32-Bit, sjlj scheint ziemlich ungeliebt. Ich vermute 32-Bit mit Posix und Zwerg ist der Standard.

Um zu identifizieren, was die Auswahlmöglichkeiten sind, verwendet es eine Datei repository.txt von this folder. Das ist nur eine durch Pipes getrennte Textdatei - 5 Felder für diese 5 Hauptoptionen plus eine für die URL des Pakets zum Herunterladen.

Übrigens, wenn jemand weiß, wo der Quellcode für den Installer zu finden ist, würde ich einen Kommentar wirklich schätzen - ich habe hoch und niedrig gejagt, z. Fehlerberichte, aber nicht die Quelle des Installers gefunden. Quellen für Mingw-64-Binärpakete sind jedoch leicht zu finden.

Die Binärpakete selbst befinden sich in den Unterordnern this folder (Win32) und this folder (Win64).

Ich bin nicht sicher, was die Verknüpfungen, die das Installationsprogramm bietet zu erstellen sind - das ist MinGW-w64, nicht MSYS oder MSYS2, also gibt es keine bash-basierte Shell, um Verknüpfungen zu bieten. Wahrscheinlich sind sie nur Windows-Eingabeaufforderung Verknüpfungen mit dem Pfad eingerichtet.

Abgesehen davon, Shortcuts Problem, alles, was Sie tun, ist das Paket in einen geeigneten Ordner entpacken, stellen Sie sicher, dass der mingw32 \ bin oder mingw64 \ bin Ordner auf dem Pfad irgendwie ist, und Sie sollten fertig sein. Ich habe dies bereits mit einem der 32-Bit-gcc-5.4.0-Pakete getestet - g ++ kompiliert eine Hallo-Welt ohne Probleme.

Es gibt alternative Builds von Drittanbietern in Unterordnern, beginnend mit einem Schritt weiter here (32 bit) und ähnlichen Unterordnern verschiedener Toolchains, die auf * Ordner für 64-Bit- und andere Builds zielen. ray_linn hat verschiedene Builds, die Ada (und Objective C/C++?) unterstützen. rubenvb hat einige ältere GCC- und Clang-Versionen. dongsheng-täglich sieht aus wie tägliche Builds, sogar einschließlich experimenteller GCC 7.

Wenn Sie MSYS auch brauchen, lassen Sie mich in Kommentaren wissen. Ich habe das offline (zusammen mit MinGW32) seit einiger Zeit installiert, also habe ich eine Liste der zu installierenden Pakete. Sie brauchen ziemlich viele Pakete, es ist ein Schmerz, sie von SourceForge zu bekommen, aber sobald Sie sie haben, ist es meist nur wieder auspacken. Es gibt einige kleinere "Postinstall" zu tun - einige Dateien zu erstellen, vor allem, wo MinGW zu finden, sowie eine Verknüpfung zu der Shell zu erstellen. Ich habe AutoIt-Skripte, um das zu tun - ein bisschen Chaos, mit unpassenden Methoden, weil sie das waren, was ich in AutoIt zu der Zeit wusste, aber sie funktionieren OK.

Es gibt MSYS2, aber auf den ersten Blick ist das ein anderes Problem, das online installiert wird - mit dem Paketmanager pacman - wahrscheinlich sehr praktisch, aber nicht für die Minderheit, die es nicht benutzen kann.

+0

Ausgezeichnet. Danke, dass Sie auf die Datei repository.txt hingewiesen haben. Ich habe die URL für die gewünschte Version kopiert und in einen Browser eingefügt, um die .7z-Datei herunterzuladen. Dann habe ich es über SneakerNet auf einen Offline-PC verschoben und es entpackt. gFortran läuft. – riderBill

+0

Ich lief mingw-w64-install.exe auf meinem (online) Laptop. Im Verzeichnis der obersten Ebene befinden sich vier Dateien aus der Installation, die nicht in der .7z-Datei enthalten sind: uninstall.exe, uninstall.ini, mingw-w64 und mingw-w64.bat. Mingw-W64 ist eine Abkürzung. mingw-w64.bat fügt das bin-Verzeichnis zum PATH hinzu und öffnet ein cmd-Fenster. Interessanter, * Windows deinstallieren oder Programm ändern * zeigt das neu installierte MinGW-W64. Windows würde nichts über MinGW-W64 wissen, wenn der Installer nichts in die Registry geschrieben hätte, oder? Was denkst du, worum es geht? – riderBill

+0

@riderBill - Entschuldigung, ich denke, Sie haben Recht mit der Registrierung für das Deinstallationsprogramm, aber ich benutze diese Offline-Installation jetzt nicht. Soweit ich mich erinnere, haben die offiziellen MinGW32- und MSYS-Installer auch alles getan, um ein Deinstallationsprogramm zu registrieren, aber das war die einzige Registry-Verwendung und wenn ich es selbst "installiere", stört es mich nicht, es zu "deinstallieren" (Löschen der Ordner) auch ich. Jetzt programmiere ich in Windows nicht viel Geldautomaten, aber ich habe eine win7pro-Lizenz gekauft, die speziell dafür gedacht ist, in einer virtuellen Maschine unter Linux zu laufen, damit ich online gehen kann und ich MSYS2 (gelegentlich) auf diesem laufen lasse. – Steve314

4

Ja, Sie können mingw-w64 offline installieren, wenn Sie MSYS2's pacman zuerst auf Ihrem Internet-zugewandten Gerät verwenden, dann übertragen Sie die von Pacman heruntergeladenen Dateien auf Ihre Offline-Maschine.

Zu Ihrer Frage, die große Sache über Pacman ist es wird die richtigen Versionen aller Abhängigkeiten greifen.

Auf dem Internet verbundenen Gerät:

  1. Verwenden MSYS2 Installer von http://www.msys2.org/
  2. Run MSYS2, und aktualisieren Sie die Paketdatenbank mit pacman -Syu
  3. In Ihrem MSYS2 Terminal, erstellen Sie einen Ordner die enthalten Pakete, die Sie möchten (dh mingw-w64)

    mkdir ~/offline_packages 
    cd ~/offline_packages 
    pacman -Syw base base-devel mingw-w64-x86_64-toolchain --cachedir . 
    
  4. Verwenden Pacman repo-add Skript zu bündeln alles in eine Datenbank:

    repo-add ./offline.db.tar.gz ./* 
    
  5. Kopieren Sie den MSYS2 Installateur und ~/offline_packages zu externem Flash-Laufwerk.

Auf Ihrer Offline-Maschine:

  1. MSYS2 installieren.
  2. Kopieren Sie die offline_packages Ordner aus dem Flash-Laufwerk auf einen Pfad MSYS2 (z C:/msys64/home/user/offline_packages)
  3. bearbeiten C:/msys64/etc/pacman.conf

    1. Kommentieren Sie die [mingw32], [mingw64], [msys] Repositories zugreifen können.
    2. Fügen Sie ein neues Repository hinzu. In diesem Beispiel wird der oben angegebene beliebige Pfad verwendet. Ändern Sie, um dorthin zu zeigen, wo Sie den Ordner offline_packages kopiert haben.

      [offline] 
      SigLevel = Optional 
      Server = file:///home/user/offline_packages 
      
  4. In einem MSYS2 Terminal, synchronisieren Sie die Pacman-Datenbank mit Ihrem neuen Repository

    pacman -Syu 
    
  5. Installieren mingw-w64 usw.

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

Referenzen: [? Gibt es eine Offline MinGW Installer] https://wiki.archlinux.org/index.php/Pacman/Tips_and_tricks#Installation_and_recovery

+0

Mein Problem damit, als ich meine Antwort schrieb, wäre gewesen, dass meine einzigen Internet-Maschinen Linux lief. Ich finde es merkwürdig, dass ein Paketmanager, der (glaube ich) aus dem * nix-Universum stammt, dort auch für diesen komischen Fall schwieriger zu verwenden ist (aber beeindruckend, wenn sich herausstellt, dass dies nicht der Fall ist). ATM Ich habe ein paar Win7 Internet-orientierte virtuelle Maschinen, und diese Tipps sehen definitiv nützlich für mich aus. – Steve314