Macports: come posso installare le porte utilizzando solo versioni di una data passata?
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-machine
e 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 Go
e 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
Grazie a Lothar Haeger sulla mailing list di Macports per avermi dato il suggerimento chiave di cui avevo bisogno. Quello che dovevo fare era:
Controlla una copia locale del Port Tree di Macports da Github .
cd ~; git clone https://github.com/macports/macports-ports
Reimposta il mio albero delle porte locale a un punto precedente nel tempo .
cd macports-ports; git reset --hard
commit-hash-dal-2018Genera un indice di porta per il mio albero di porte locale :
portindex
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]