Bypassare l'errore irrisolvibile durante la pulizia dei pacchetti con il gestore pacchetti?


1

Usando MacPorts, quando corro

sudo port -f clean --all all

Quindi ricevo un errore. Snippet di output di seguito:

--->  Cleaning ml
--->  Cleaning mldonkey
--->  Cleaning mlpack
--->  Cleaning mlt
Error: Unable to open port: Package Qt5Core was not found in the pkg-config search path.
Perhaps you should add the directory containing `Qt5Core.pc'
to the PKG_CONFIG_PATH environment variable

Non so quale sia la causa del problema (ho provato a disinstallare / installare mlt ma questo non lo fa). Questo potrebbe non essere specifico per MacPorts, ma Vedo lo stesso errore con homebrew pubblicato quindi forse è più generale.

Ho cercato in / opt / local / che è la directory di installazione di MacPorts ma non ho Qt5Core.pc.

C'è un modo per rendere questo comando MacPorts continuare a funzionare (un po 'come con la gestione delle eccezioni) e continuare a pulire altri pacchetti dopo che si è verificato l'errore?

Risposte:


1

L'errore è stato segnalato a https://trac.macports.org/ticket/54861 . È stata fornita una patch di soluzione alternativa.

diff --git a/multimedia/mlt/Portfile b/multimedia/mlt/Portfile
--- a/multimedia/mlt/Portfile
+++ b/multimedia/mlt/Portfile
@@ -42,7 +42,7 @@ if {${subport} eq "${name}"} {
     if {[info procs qt5.active_version] eq ""} {
         proc qt5.active_version {} {
             global prefix
-            if {[file exists ${prefix}/bin/pkg-config]} {
+            if {[file exists ${prefix}/bin/pkg-config/Qt5Core.pc]} {
                 set av [exec ${prefix}/bin/pkg-config --modversion Qt5Core]
                 return ${av}
             } else {
@@ -53,10 +53,15 @@ if {${subport} eq "${name}"} {

     qt5.depends_component \
                     qtsvg
-    if {[vercmp [qt5.active_version] 5.7.0] >= 0} {
-        configure.cxxflags-append \
-                    -stdlib=libc++ \
-                    -std=c++11
+    pre-configure {
+        # qt5.active_version only works if Qt is installed; we can
+        # be certain that is the case in the pre-configure phase.
+        if {[vercmp [qt5.active_version] 5.7.0] >= 0} {
+            ui_debug "Qt 5.7.0 and up require at least C++11"
+            configure.cxxflags-append \
+                        -stdlib=libc++ \
+                        -std=c++11
+        }
     }
 }
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.