Macports: Wie kann ich Ports nur mit Versionen von einem Datum in der Vergangenheit installieren?

Vor zwei Jahren habe ich Macports verwendet, um eine Kopie von Docker Machine auf einem Computer mit OS X 10.9 „Mavericks“ zu installieren. Alles, was ich tun musste, war zu tippen sudo port install Docker-machine, und Macports zog automatisch herunter und kompilierte alles, was ich brauchte.

Ab August 2020 funktioniert dies auf Mavericks aufgrund eines Fehlers in den neuesten Versionen von Go und/oder dem Legacy-Support-Framework von Macports nicht . Da Mavericks sehr alt ist, ist dieser Bruch verständlich . Docker Machine hat jedoch vor zwei Jahren funktioniert, und ich hätte nichts dagegen, eine ältere Version zu verwenden.

Wie kann ich mit einem sauberen Macports- Präfix Ports nur mit Software installieren, die ab einem bestimmten Datum in der Vergangenheit existierte? Ich möchte nicht nur eine ältere Version von Docker Machine installieren ; Ich möchte eine ältere Version von Docker Machine und jeden Port installieren, von dem Docker Machine abhängt, wie z. GoB. und Legacy Support.

Unter Debian wäre das super einfach; Ich würde einfach sources.list bearbeiten, um auf einen Snapshot zu verweisen . Wie kann ich etwas Ähnliches in Macports machen? Der vollständige Macports-Projektverlauf wird in Git nachverfolgt , daher bin ich mir ziemlich sicher, dass dies möglich ist.


† Ich freue mich, dass Macports Mavericks überhaupt unterstützt. Mit Homebrew wäre ich komplett SOL.

‡ Weil ich das versucht habe und es nicht funktioniert. Was nicht besonders überraschend ist, wenn man bedenkt, wie Ports und ihre Abhängigkeiten miteinander verbunden sind. Als Referenz ist hier das Verfahren zum Installieren einer älteren Version eines einzelnen Pakets dokumentiert .

"Mit Homebrew wäre ich komplett SOL" - Das ist mühsam, aber Sie können eine ältere Version von Brew verwenden, aber die Formeln manuell bearbeiten, um die neuesten Softwareversionen abzurufen. Für beliebte Formeln, die keine Mac-spezifischen Patches benötigen, funktioniert dies normalerweise. Für weniger beliebte Dinge können Sie sich die Macports-Datei ansehen und sehen, welche Patches benötigt werden.

Antworten (1)

Vielen Dank an Lothar Haeger von der Mailingliste von Macports für den entscheidenden Hinweis, den ich brauchte. Was ich tun musste war:

  1. Checken Sie eine lokale Kopie des Macports Port Tree von Github aus .cd ~; git clone https://github.com/macports/macports-ports

  2. Setzen Sie meinen lokalen Portbaum auf einen früheren Zeitpunkt zurück . cd macports-ports; git reset --hard Commit-Hash-von-2018

  3. Generieren Sie einen Portindex für meinen lokalen Portbaum :portindex

  4. Sagen Sie Macports, dass es meinen lokalen Portbaum anstelle des offiziellen Online-Portbaums verwenden soll. Dazu habe ich die sources.conf von macports (in der Regel in /opt/local/etc/macports/) in einem Texteditor geöffnet, die Standard-URL am Ende der Datei auskommentiert und danach hinzugefügt: file:///Users/my-user-name/macports-ports [default]