Macports: Как я могу установить порты, используя только версии с датой в прошлом?
Два года назад я использовал Macports для установки копии Docker Machine на компьютер под управлением OS X 10.9 «Mavericks». Все, что мне нужно было сделать, это набрать sudo port install Docker-machine
текст, и Macports автоматически вытащили и скомпилировали все, что мне было нужно.
По состоянию на август 2020 года это не работает на Mavericks из- за ошибки в последних версиях Go и / или инфраструктуры поддержки Macports Legacy . Так как Mavericks очень старый, эта поломка понятна † . Однако два года назад Docker Machine действительно работала, и я не возражал бы использовать старую версию.
Как я могу установить порты с помощью чистого префикса Macports , используя только программное обеспечение, существовавшее на определенную дату в прошлом? Я не хочу просто устанавливать старую версию Docker Machine ‡ ; Я хочу установить старую версию Docker Machine и каждый порт, от которого зависит Docker Machine, например Go
и Legacy Support
.
В Debian это было бы очень просто; Я бы просто отредактировал sources.list, чтобы указать на снимок . Как я могу сделать что-то подобное в Macports? Полная история проекта Macports отслеживается в Git , поэтому я уверен, что это возможно.
† Я рад, что Macports вообще поддерживает Mavericks. С Homebrew я был бы полностью СОЛОМ.
‡ Потому что я пробовал это, но это не сработало. Что неудивительно, учитывая, как порты и их зависимости взаимосвязаны. Для справки, процедура установки старой версии одного пакета документирована здесь .
Ответы
Спасибо Лотару Хэгеру из списка рассылки Macports за ключевую подсказку, в которой я нуждался. Что мне нужно было сделать:
Получите локальную копию дерева портов Macports с Github .
cd ~; git clone https://github.com/macports/macports-ports
Сбросить мое локальное дерево портов на более ранний момент времени .
cd macports-ports; git reset --hard
коммит-хэш-от-2018Создайте индекс порта для моего локального дерева портов :
portindex
Скажите Macports использовать мое локальное дерево портов вместо официального онлайн. Для этого я открыл Macports sources.conf (обычно в
/opt/local/etc/macports/
) в текстовом редакторе, закомментировал URL-адрес по умолчанию в нижней части файла и добавил после него:file:///Users/
my-user-name/macports-ports [default]