В настоящее время я поддерживаю устройства, на которых работает FreeBSD 9.2, а также 10. И мне нужно каким-то образом установить более новую версию архиваторов / libarchive, чем та, которая доступна для этих версий FreeBSD (похоже, 3.2.1 впервые стала доступна в 11.0. ). Я также не могу ничего изменить в / usr / ports (то есть мне нужно оставить новый порт libarchive в совершенно другом каталоге). Кроме того, сценарий сборки, собирающий среду устройства, может использовать только make
для компиляции портов, насколько я знаю.
Моя собственная идея создания libarchive 3.2.1:
проверьте дерево портов из ports / tags / RELEASE_11_0_0 / из SVN, затем оставьте только libarchive и его зависимости, а также содержимое каталога ports / Mk.
cd path / to / new / ports / arhivers / libarchive и запустите make
, возможно, указав альтернативный путь поиска для .include
d .mk-файлов через -I
. Возможно также изменить значение PORTSDIR
переменная?
Я что-то упускаю (верен ли мой подход ...?)? Есть ли лучший способ добиться этого?
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. Скопируйте порт в ~ / порты / libarchive, замените версию tarball на 3.2.1, отредактируйте версию порта в Makefile (и, возможно, CONFIGURE_ARGS
) и pkg-plist
соответственно. Это займет некоторое время и, скорее всего, не удастся с первой или второй попытки, но кажется выполнимым (я бегло посмотрел на порт).
5) Самый удобный способ. Обновите свою устаревшую версию 9.2 до версии 10.3, потому что единственная причина иметь эту музейную древность - это наличие набора специально созданных двоичных файлов с закрытым кодом, которые, как доказано, дают сбой при новом ABI, даже с misc/compat9x
порт установлен. И я такого не видел.