Macports: ¿Cómo puedo instalar puertos usando solo versiones de una fecha en el pasado?
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-machine
, y Macports automáticamente sacó y compiló 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, acoplable Máquina hizo trabajo como de hace dos años, y no me importa 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? Yo no quiero instalar simplemente una versión más antigua de la máquina acoplable ‡ ; Quiero instalar una versión anterior de Docker Machine y todos los puertos de los que depende Docker Machine, como Go
y Legacy Support
.
En Debian, esto sería muy fácil; Solo 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 , así que estoy bastante seguro de que es posible.
† Estoy encantado de que Macports sea compatible con Mavericks. Con Homebrew sería completamente SOL.
‡ Porque lo intenté y no funciona. Lo cual no es particularmente sorprendente dada la forma en que los puertos y sus dependencias están interconectados. Como referencia, el procedimiento para instalar una versión anterior de un solo paquete se documenta aquí .
Respuestas
Gracias a Lothar Haeger de la lista de correo de Macports por darme la pista clave que necesitaba. Lo que tenía que hacer era:
Consulte una copia local del árbol de puertos de Macports de Github .
cd ~; git clone https://github.com/macports/macports-ports
Restablecer mi árbol de puertos local a un punto anterior en el tiempo .
cd macports-ports; git reset --hard
commit-hash-de-2018Genere un índice de puertos para mi árbol de puertos local :
portindex
Dile a Macports que use mi árbol de puertos local en lugar del oficial en línea. Para hacer esto, abrí sources.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]