PHP: No package ‘libxml-2.0’ found

PHP: No package ‘libxml-2.0’ found

Beim Kompilieren von PHP kam bei mir die Fehlermeldung checking for libxml-2.0 >= 2.9.0… no configure: error: Package requirements (libxml-2.0 >= 2.9.0) were not met: No package ‘libxml-2.0’ found Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables LIBXML_CFLAGS and LIBXML_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. make: *** No targets specified and no makefile found. Stop. make: ***…

Weiterlesen Weiterlesen

[CMake] Could NOT find CURL (missing: CURL_LIBRARY CURL_INCLUDE_DIR)

[CMake] Could NOT find CURL (missing: CURL_LIBRARY CURL_INCLUDE_DIR)

Manchmal kann es passieren, dass man beim Aufruf von einem CMake Befehl folgende oder ähnliche Fehlermeldung bekommt: — Looking for CURL CMake Error at /usr/local/share/cmake-3.24/Modules/FindPackageHandleStandardArgs.cmake:230 (message): Could NOT find CURL (missing: CURL_LIBRARY CURL_INCLUDE_DIR) Call Stack (most recent call first): /usr/local/share/cmake-3.24/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE) /usr/local/share/cmake-3.24/Modules/FindCURL.cmake:181 (find_package_handle_standard_args) CMakeLists.txt:72 (find_package) CMake konnte dann die Bibliothek cURL auf dem System nicht finden. Um das Problem zu lösen gibt es mehrere Möglichkeiten. Eine Möglichkeit besteht darin das entsprechende Paket auf dem System nachzuinstallieren. Auf einem Ubuntusystem würde…

Weiterlesen Weiterlesen

Globale Buildtimeout in Jenkins festlegen

Globale Buildtimeout in Jenkins festlegen

Man kann mittlerweile eine globale Buildtimeout in Jenkins festlegen. Dies ist eine nützliche Eigenschaft wenn man öfters auch mal Jobs hatte, die übers Wochenende länger liefen als sie sollten. In diesem Post möchte ich kurz zeigen wie man diese festlegt. Eine Buildtimeout ist die Zeit, die ein Job höchstens laufen darf. Wenn diese Zeit überschritten wird, dann soll der Job in der Regel fehlschlagen. Um eine globale Buildtimeout festzulegen, geht man erstmal in die Systemkonfiguration (Jenkins verwalten -> System konfigurieren):…

Weiterlesen Weiterlesen

Arbeitsverzeichnis in GitHub Actions setzen

Arbeitsverzeichnis in GitHub Actions setzen

In GitHub Actions kann man das Arbeitsverzeichnis (working-directory) auf verschiedenen Ebenen setzen: Global für alle Jobs in einem Workflow (also einer yml-Datei) Auf Job-Ebene Auf Step-Ebene In diesem Post möchte ich kurz zeigen, wie man das für jede Ebene realisieren kann. Als Beispiel habe ich dafür drei verschiedene GitHub Action Jobs erstellt, die alle dasselbe Shell Skript (run.sh) im Unterordner demo ausführen sollen. Jedoch wird in jedem Job das Arbeitsverzeichnis auf jeweils andere Weise gesetzt. Arbeitsverzeichnis für alle Jobs in…

Weiterlesen Weiterlesen

Run alexellis/upload-assets@0.3.0 Error: Not Found

Run alexellis/upload-assets@0.3.0 Error: Not Found

Beim Benutzen der GitHub Action alexellis/upload-assets (https://github.com/alexellis/upload-assets) bekam ich folgende Fehlermeldung Run alexellis/upload-assets@0.3.0 Error: Not Found Man kann das Problem lösen indem man vorher ein Release erstellt. In meinem Testfall habe ich die GitHub Action actions/create-release@latest (https://github.com/actions/create-release) verwendet. Die gesamte yml-Datei sah in meinem Testfall dann so aus: name: Upload assets example on: push: tags: – v* workflow_dispatch: jobs: build: runs-on: ubuntu-latest steps: – uses: actions/checkout@v3 – name: Run something run: | echo “$(date)” > release_file – name: Create release…

Weiterlesen Weiterlesen

Doppelpunkte in Powershells Variablen

Doppelpunkte in Powershells Variablen

Variablen können in PowerShell ein Doppelpunkt enthalten, z.B. Umgebungsvariablen wie $Env:Path Es kann aber auch passieren, dass man ein Doppelpunkt an anderer Stelle verwendet. Z.B. wenn man ein Docker-Image baut und dafür den Tag setzen möchte: docker build -t $ImageName:$ImageVersion . Hier würde PowerShell gleich eine Fehlermeldung auswerfen: Variable reference is not valid. ‘:’ was not followed by a valid variable name character. Consider using ${} to delimit the name. + CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException + FullyQualifiedErrorId :…

Weiterlesen Weiterlesen

Python tox in GitHub Actions

Python tox in GitHub Actions

Wenn man mit dem Pythonprojekt tox Unittests durchführt, dann muss die Maschine, auf der die Unittests ausgeführt werden, mehrere Pythoninstallationen installiert haben. In GithHub Actions kann man die Tests auch auf verschiedenen Runnern laufen lassen, von denen jeder Runner eine andere Pythonversion installiert hat. Dazu kann man die Matrix-Strategie in GitHub verwenden. Das kann dann z.B. folgendermaßen aussehen: name: Run python tests on: push: branches: [ ‘**’ ] paths: [ ‘**’ ] pull_request: branches: [ ‘**’ ] paths: [ ‘**’…

Weiterlesen Weiterlesen

Mit InnoSetup eine weitere Datei abfragen

Mit InnoSetup eine weitere Datei abfragen

Die Aufgabe ist folgende: Während der Installation einer Software soll der User eine weitere Datei angeben. Es kann verschiedene Gründe geben, warum der Nutzer schon zu Installationszeiten eine Datei angeben soll. Das Setup kann den User z.B. nach einer vorhandenen Lizenzdatei fragen. In diesem Post will ich zeigen wie man in InnoSetup ein Fenster der Installation hinzufügen kann, das nach einer solchen Datei fragt. Dabei lasse ich offen, was mit der Datei anschließend passieren soll. Als erstes muss dafür gesorgt…

Weiterlesen Weiterlesen

Erste Schritte mit Python tox

Erste Schritte mit Python tox

tox ist ein Projekt, mit dem man Unittests gegen verschiedenen Python-Versionen mit einfachen Schritten ausführen kann. Um das zu erreichen, werden ein paar Konfigurationsdateien benötigt. Doch um tox für ein Projekt ausführen zu können, muss tox erst einmal installiert sein: pip install tox Ist tox installiert, braucht das Python-Projekt, das tox nutzen will, folgende Dateien: Eine pyproject.toml oder setup.py tox.ini In diesem Post möchte ich zeigen, wie man das mit einer setup.py realisiert. Die setup.py ist eine Datei, die sich…

Weiterlesen Weiterlesen

Could NOT find GTest (missing: GTEST_LIBRARY GTEST_INCLUDE_DIR GTEST_MAIN_LIBRARY)

Could NOT find GTest (missing: GTEST_LIBRARY GTEST_INCLUDE_DIR GTEST_MAIN_LIBRARY)

Ich hatte einen Fall bei dem ich ein Projekt mit cmake gebaut habe und diese Fehlermeldung gleich am Anfang kam: Could NOT find GTest (missing: GTEST_LIBRARY GTEST_INCLUDE_DIR GTEST_MAIN_LIBRARY) Lösung Die Lösung dafür war die, dass ich den cmake-Befehl anpassen musste: cmake -G “Unix Makefiles” -DGTEST_INCLUDE_DIR=thirdparty/googletest/googletest/include \ -DGTEST_LIBRARY=thirdparty/googletest/lib/libgtest.a \ -DGTEST_MAIN_LIBRARY=thirdparty/googletest/lib/libgtest_main.a .