Macports: Comment puis-je installer des ports en utilisant uniquement des versions d'une date antérieure?

Aug 20 2020

Il y a deux ans, j'ai utilisé Macports pour installer une copie de Docker Machine sur un ordinateur exécutant OS X 10.9 "Mavericks". Tout ce que j'avais à faire était de taper sudo port install Docker-machine, et Macports a automatiquement retiré et compilé tout ce dont j'avais besoin.

Depuis août 2020, cela ne fonctionne pas sur Mavericks en raison d' un bogue dans les dernières versions de Go et / ou du cadre de support hérité de Macports . Puisque Mavericks est très vieux, cette casse est compréhensible . Cependant, la machine Docker a fait le travail comme il y a deux ans, et je ne me dérangerait pas en utilisant une version plus ancienne.

En utilisant un préfixe Macports propre , comment puis-je installer des ports en utilisant uniquement des logiciels qui existaient à une certaine date dans le passé? Je ne pas veux installer simplement une ancienne version de la machine Docker ; Je souhaite installer une ancienne version de Docker Machine et tous les ports dont dépend Docker Machine, tels que Goet Legacy Support.

Sur Debian, ce serait super facile; Je modifierais simplement sources.list pour pointer vers un instantané . Comment puis-je faire quelque chose de similaire dans Macports? L'historique complet du projet Macports est suivi dans Git , donc je suis presque sûr que c'est possible.


† Je suis ravi que Macports prenne en charge Mavericks. Avec Homebrew, je serais complètement SOL.

‡ Parce que j'ai essayé ça, et ça ne marche pas. Ce qui n'est pas particulièrement surprenant étant donné la façon dont les ports et leurs dépendances sont interconnectés. Pour référence, la procédure d'installation d'une ancienne version d'un seul package est documentée ici .

Réponses

4 Wowfunhappy Aug 21 2020 at 01:06

Merci à Lothar Haeger sur la liste de diffusion Macports de m'avoir donné l'indication clé dont j'avais besoin. Ce que j'avais à faire était:

  1. Récupérez une copie locale de l'arborescence des ports Macports depuis Github .cd ~; git clone https://github.com/macports/macports-ports

  2. Réinitialisez mon arborescence de ports locale à un moment antérieur . cd macports-ports; git reset --hard commit-hash-de-2018

  3. Générez un index de port pour mon arborescence de ports locale :portindex

  4. Dites à Macports d'utiliser mon arbre portuaire local à la place de l' arbre officiel en ligne. Pour ce faire, j'ai ouvert le fichier sources.conf de macports (généralement dans /opt/local/etc/macports/) dans un éditeur de texte, commenté l'URL par défaut au bas du fichier, et ajouté après: file:///Users/mon-nom-d'utilisateur/macports-ports [default]