Archiv der Kategorie: Software-Entwicklung

Programmierung und Tools.

MSYS2 make: command not found

Ich habe MSYS2 installiert und dann die MinGW-Toolchain komplett installiert, mit folgendem Befehl:

$ pacman -S mingw-w64-x86_64-toolchain

Es sind praktisch die gesamten GNU-Entwickler-Tools dabei, einfach super. Trotzdem bekomme ich bei dem Aufruf von Make einen Fehler:

$ make
bash: make: command not found

Komisch ist, das gcc aber gefunden wird:

$ gcc
gcc.exe: fatal error: no input files
compilation terminated.

Die Ursache ist hier, dass die Tools alle wie erwartet heißen, mit der Ausnahme von Make. Dieses heißt im Bin-Ordner so:

msys64\mingw64\bin\mingw32-make.exe

Die Lösung ist hier einfach: man kopiert sich mingw32-make.exe in das selbe Verzeichnis und benennt die Kopie make.exe. So das beide Namensvarianten gefunden werden können. Fertig. Danach funktioniert es:

$ make
make: *** No targets specified and no makefile found. Stop.

Dieses Problem ist seit Jahren bekannt. Es wird aber leider vom MinGW-Team nicht korrigiert. Sehr schade.

Mercurial und HTTPS: certificate verify failed

Heute wollte ich ein neues Repository auf Sourceforge klonen und pushen, per HTTPS. Das Kommando sah in etwa so aus:

hg clone https://amin@hg.code.sf.net/project

Leider gabs eine schlechte Rückmeldung:

Abbruch: Fehler: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:661)

Was ist passiert? Der Mercurial-Server lässt verständlicherweise nur verschlüsselte Verbindungen zu. Und der Hg-Client soll auch nur mit vertrauenswürdigen Servern kommunizieren. Dafür ist ein kryptisches Zertifikat nötig. Anscheinend hat die Hg-Installation (entgegen der Anleitung) keine Python-Zertifikatedatei dabei, obwohl Mercurial ein Python-Programm ist. Ich konnte jedenfalls keine cacert.pem finden. Da ich aber noch eine separate Python-Installation habe, konnte ich auf diese Verweisen. Dazu muss man in der globalen Mercurial-Konfiguration diese Datei einmal angeben:

; in der %USERPROFILE%\Mercurial.ini
[web]
cacerts=C:\Python27\Lib\site-packages\pip\_vendor\requests\cacert.pem

Es muss übrigens nicht diese Cacerts-Datei sein, man kann auch eine Datei aus einem Webbrowser exportieren. Diese kann auch auf *.crt enden und man kann mehrere Zertifikate in einer Datei hinter einander anfügen.