Macports: come posso installare le porte utilizzando solo versioni di una data passata?

Aug 20 2020

Due anni fa, ho utilizzato Macports per installare una copia di Docker Machine su un computer con OS X 10.9 "Mavericks". Tutto quello che dovevo fare era digitare sudo port install Docker-machinee Macports ha tirato giù e compilato automaticamente tutto ciò di cui avevo bisogno.

A partire da agosto 2020, questo non funziona su Mavericks a causa di un bug nelle ultime versioni di Go e / o del framework Legacy Support di Macports . Poiché Mavericks è molto vecchio, questa rottura è comprensibile . Tuttavia, Docker Machine ha funzionato due anni fa e non mi dispiacerebbe usare una versione precedente.

Utilizzando un prefisso Macports pulito , come posso installare le porte utilizzando solo software che esisteva a partire da una certa data in passato? Io non voglio installare solo una versione precedente di Docker macchina ; Voglio installare una versione precedente di Docker Machine e ogni porta da cui dipende Docker Machine, come Goe Legacy Support.

Su Debian, questo sarebbe semplicissimo; Modificherei solo sources.list in modo che punti a un'istantanea . Come posso fare qualcosa di simile in Macports? La cronologia completa del progetto Macports è tracciata in Git , quindi sono abbastanza sicuro che sia possibile.


† Sono lieto che Macports supporti affatto Mavericks. Con Homebrew sarei completamente SOL.

‡ Perché ci ho provato e non funziona. Il che non è particolarmente sorprendente dato il modo in cui le porte e le loro dipendenze sono interconnesse. Per riferimento, la procedura per l'installazione di una versione precedente di un singolo pacchetto è documentata qui .

Risposte

4 Wowfunhappy Aug 21 2020 at 01:06

Grazie a Lothar Haeger sulla mailing list di Macports per avermi dato il suggerimento chiave di cui avevo bisogno. Quello che dovevo fare era:

  1. Controlla una copia locale del Port Tree di Macports da Github .cd ~; git clone https://github.com/macports/macports-ports

  2. Reimposta il mio albero delle porte locale a un punto precedente nel tempo . cd macports-ports; git reset --hard commit-hash-dal-2018

  3. Genera un indice di porta per il mio albero di porte locale :portindex

  4. Dì a Macports di utilizzare il mio albero delle porte locale al posto di quello online ufficiale. Per fare ciò, ho aperto il file sources.conf di macports (generalmente in /opt/local/etc/macports/) in un editor di testo , ho commentato l'URL predefinito in fondo al file e ho aggiunto dopo di esso: file:///Users/my-user-name/macports-ports [default]