В настоящее время я поддерживаю устройства, на которых работает 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
старых портов, проверьте новый из главы . Попробуйте построить это. К сожалению, вероятность сбоя составляет 80%, потому что дерево портов FreeBSD сильно изменилось с 9.x на 10.x. Откатить дерево портов в случае сбоя.
2) Путь Solaris. Встраивать из исходных текстов в пользовательский ПРЕФИКС
. Получите архив с исходным кодом, распакуйте его в ~ / 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
. И я такого не видел.