macports — установка старых версий пакетов
Столкнувшись с багом в одной из версий пакета из macports, встала задача вернуть старую версию. К сожаление, старой версии в локальных портах не осталось вовсе, и сделать activate и переключиться на неё не представлялось возможным. Поиск готовых решений огорчил, вот и пишу заметку, с подробностями, в надежде что многим пригодится .
Итак, будем создавать локальный репозиторий для macports, в этом примере будет всего один порт, но, сделать несколько — не проблема, как Вы сами увидите.
создаем папку где будут храниться локальные порты:
# mkdir ~/mport
идем на сайт — https://www.macports.org/ports.php и ищем свой пакет.
Кликаем на найденный пакет (git-lfs), попадаем на:
Выбираем ревизию которую нам необходимо, с необходимой версией файла. Внизу кликаем на текстовую версию, копируем текст.
Далее, смотрим категорию пакета (devel), и создаем папку (категория_пакета/имя_пакета):
# mkdir -p ~/mport/devel/git-lfs
создаем файл и вставляем туда текст скопированный ранее.
# vim ~/mport/devel/git-lfs/Portfile
далее идем в ~/mport и выполняем:
# portindex
Редактируем файл /opt/local/etc/macports/sources.conf
и добавляем туда:
file:///Users/ваша_домашняя_папка/mport
перед:
rsync://rsync.macports.org/release/tarballs/ports.tar [default]
сохраняем и ищем пакет:
# port search git-lfs
получаем:
и устанавливаем:
# sudo port install git-lfs @1.1.0
Вот и всё, мы добились желаемого. Я думаю что понятно, что при необходимости поставить старые версии нескольких пакетов, нужно всего лишь повторить создание папок и файлов Portfile, для каждого из них, а потом уже выполнить portindex.
А всё началось с бага в git-lfs @1.1.1 — не ну хотел он никак работать, даже клон git-ом нельзя было сделать, если репозиторий содержал файлы помеченные lfs.
Не забудьте убедиться, что нужная Вам версия имеется на зеркалах, но обычно, 2-3 версии назад всегда есть на зеркалах.
Удачи в настройках.
© shadow_alone