Каков наилучший способ создать порт версии, доступной только в более новой версии FreeBSD?

В настоящее время я поддерживаю устройства, работающие под FreeBSD 9.2, а также 10. И мне нужно каким-то образом установить более новую версию архиваторов / libarchive, чем та, которая доступна для этих версий FreeBSD (3.2.1, кажется, впервые стала доступна в 11.0). Я также не могу ничего изменить в /usr/ports (то есть мне нужно сохранить новый порт libarchive в совершенно другом каталоге). Кроме того, сценарий сборки, который собирает среду устройства, может использовать только make компилировать порты, насколько я знаю.

Моя собственная идея сборки libarchive 3.2.1:

  1. проверьте дерево портов из ports/tags/RELEASE_11_0_0/ из SVN, затем оставьте только архив и его зависимости, а также содержимое каталога ports/Mk.

  2. Путь к CD / в / новый / порты / архивы / библиотека и запустить makeвозможно указав альтернативный путь поиска .included .mk-файлы через -I, Возможно также изменить значение PORTSDIR переменная?

Я что-то упустил (мой подход даже действителен?..)? Есть ли лучший способ сделать это?

1 ответ

1) Канонический способ без обновления базовой системы. zfs snapshot старые порты, зацените новый с головы. Попробуйте построить это. К сожалению, вероятность ошибки составляет 80%, поскольку в самом дереве портов FreeBSD было много изменений с 9.x до 10.x. Откатить дерево портов в случае сбоя.

2) Солярис кстати. Сборка из источников в обычай PREFIX, Получите архив с исходными текстами, распакуйте его в ~ / src / libarchive, установите devel / gmake, lang / gcc48, devel / autoconf269, если необходимо, tar xvzf или что-то еще, затем cwd к извлеченному пути, ./configure --prefix /usr/local/libarchive && gmake all install (кратко говоря). Затем используйте двоичные файлы или ссылку на локально установленные библиотеки таким же образом.

4) Создайте свою собственную версию порта для дерева портов 9.2. Скопируйте порт в ~ / ports / libarchive, замените версию tarball на 3.2.1, отредактируйте версию порта в Makefile (и, возможно, CONFIGURE_ARGS) и pkg-plist соответственно. Это займет некоторое время и, скорее всего, потерпит неудачу с первой или второй попытки, но кажется выполнимым (я кратко посмотрел на порт).

5) Самый удобный способ. Обновите свое устаревшее 9.2 до 10.3, потому что единственная причина, по которой эта музейная древность - это набор пользовательских двоичных файлов с закрытым кодом, которые, как доказывают, вылетают при новом ABI, даже при misc/compat9x порт установлен. И я никогда не видел таких вещей.

Другие вопросы по тегам