Macports: ¿Cómo puedo instalar puertos usando solo versiones de una fecha pasada?

Hace dos años, usé Macports para instalar una copia de Docker Machine en una computadora con OS X 10.9 "Mavericks". Todo lo que tenía que hacer era escribir sudo port install Docker-machiney Macports desplegó y compiló automáticamente todo lo que necesitaba.

A partir de agosto de 2020, esto no funciona en Mavericks debido a un error en las últimas versiones de Go y/o el marco de soporte heredado de Macports . Dado que Mavericks es muy antiguo, esta rotura es comprensible . Sin embargo, Docker Machine funcionó hace dos años y no me importaría usar una versión anterior.

Usando un prefijo Macports limpio , ¿cómo puedo instalar puertos usando solo software que existía en una fecha determinada en el pasado? No quiero simplemente instalar una versión anterior de Docker Machine ; Quiero instalar una versión anterior de Docker Machine y todos los puertos de los que depende Docker Machine, como Goy Legacy Support.

En Debian, esto sería muy fácil; Simplemente editaría sources.list para apuntar a una instantánea . ¿Cómo puedo hacer algo similar en Macports? El historial completo del proyecto Macports se rastrea en Git , por lo que estoy bastante seguro de que es posible.


† Estoy encantado de que Macports sea compatible con Mavericks. Con Homebrew estaría completamente SOL.

‡ Porque lo intenté y no funciona. Lo cual no es particularmente sorprendente dada la interconexión de los puertos y sus dependencias. Como referencia, el procedimiento para instalar una versión anterior de un solo paquete se documenta aquí .

"Con Homebrew sería completamente SOL": es tedioso, pero puede usar una versión anterior de brew pero editar manualmente las fórmulas para obtener las últimas versiones del software. Para fórmulas populares que no requieren parches específicos de Mac, esto suele funcionar. Para cosas menos populares, puede mirar el archivo macports y ver qué parches se necesitan.

Respuestas (1)

Gracias a Lothar Haeger en la lista de correo de Macports por darme la pista clave que necesitaba. Lo que tuve que hacer fue:

  1. Obtenga una copia local del Macports Port Tree de Github .cd ~; git clone https://github.com/macports/macports-ports

  2. Restablecer mi árbol de puertos local a un punto anterior en el tiempo . cd macports-ports; git reset --hard commit-hash-de-2018

  3. Genere un índice de puerto para mi árbol de puertos local :portindex

  4. Dígale a Macports que use mi árbol de puertos local en lugar del oficial en línea. Para hacer esto, abrí source.conf de macports (generalmente en /opt/local/etc/macports/) en un editor de texto, comenté la URL predeterminada en la parte inferior del archivo y agregué después: file:///Users/my-user-name/macports-ports [default]