MacPorts: Installation anderer Updates nach Fehler fortsetzen

Angenommen, ich habe die folgenden veralteten Pakete:

  • foo
  • Bar
  • baz

Ich möchte so viele wie möglich aktualisieren, also versuche ich Folgendes auszuführen:

sudo port -n -f upgrade outdated

Dies schlägt jedoch fehl mit:

Error: org.macports.build for port foo returned: command execution failed
Please see the log file for port foo for details: ...

Wie kann ich macports dazu bringen, zu versuchen, bar und baz zu aktualisieren, wenn foo fehlschlägt?

Ich möchte Macports im Allgemeinen dazu bringen, andere Ports zu installieren/aktualisieren, wenn die Installation/Aktualisierung einiger von ihnen fehlschlägt, und einfach fortfahren.


Aus der Manpage:

 -f       force mode (ignore state file)

 

 -n       don't upgrade dependencies (affects upgrade and install)

Bearbeiten: foo, bar & baz, sind insgesamt 3 unabhängige Ports, die in keiner Weise voneinander abhängen.


Bearbeiten 2: Das nächste Mal, wenn ich dies ausführe, sind die veralteten Ports möglicherweise a, b & c anstelle von foo, bar & baz, daher kann ich die fehlerhaften nicht fest codieren und ich kann nicht einfach Folgendes tun:

sudo port update foo
sudo port update bar
sudo port update baz

Antworten (4)

Das -pscheint bei mir zu funktionieren.

Aus der Manpage:

-p Fahren Sie trotz aufgetretener Fehler mit der Verarbeitung mehrerer fort
         Ports und Befehle.
Aber beachten Sie die Warnung eines MacPorts-Entwicklers unten .... Die Verwendung dieses Flags wird nicht empfohlen!

MacPorts-Entwickler hier; Die richtige Antwort auf Ihre Frage lautet: Sie tun es nicht.

Es gibt einen Grund, warum MacPorts nicht versucht, ein Paket zu installieren, wenn eine Abhängigkeit nicht erstellt werden kann.

Genau diese Frage wurde vor nicht allzu langer Zeit auf der Mailingliste macports-users diskutiert:

foo, bar & baz sind insgesamt 3 unabhängige Ports, die in keiner Weise voneinander abhängen.
In diesem Fall können Sie sie jederzeit manuell aktualisieren, dh sudo port upgrade baz, sudo port upgrade bar, sudo port upgrade foo.
siehe "edit 2" in Frage.
Dies sollte die richtige Antwort sein, wenn ein MacPorts-Entwickler damit spricht.
Dies könnte eine akzeptable Antwort sein, wenn MacPorts nicht alles andere als stabil wäre. Leider hängen viele Pakete von vielen optionalen Dingen ab, die in den meisten Fällen nicht wirklich benötigt werden, und jedes zweite Upgrade von Ports schlägt fehl, weil Macports ein Haufen instabiler Mist ist.

Sie können im Upgrade-Befehl auch „outdated and not foo“ angeben, anstatt nur „outdated“.

siehe "edit 2" in Frage.

In Anbetracht eines alten geschlossenen Tickets wurde ein Fehler behoben:

333 (Abhängigkeitsfehler werden ignoriert und der Port versucht weiterhin zu installieren) – MacPorts

Wenn ich das richtig verstehe: Weiterfahren nach einem Ausfall kann in manchen Fällen defekt sein.

Mit anderen Worten:

  • es ist richtig (am wenigsten riskant), nicht fortzufahren.

Nachtrag: Ich war zu faul, die Manpage vollständig zu lesen (nicht im Hilfemenü von Terminal zu finden, aber das ist keine Entschuldigung). Nach dem Rat von jemandem in irc://irc.freenode.net/#macportsentschied ich mich, diese Antwort zu hinterlassen.

Geben Sie hier die Bildbeschreibung ein

-pIch habe die Option nie erkannt . Danke Tyilo.