Когда я устанавливаю программное обеспечение из портов в системе FreeBSD, иногда в качестве зависимостей устанавливаются довольно устаревшие версии Apache / MySQL / Perl / и т.д. Есть ли способ заранее установить версии этих портов, чтобы, если они когда-либо понадобятся, система портов выбрала бы подходящую версию?
Установите, например:
DEFAULT_VERSIONS= perl5=5.18 ruby=2.0
в вашем /etc/make.conf
Эта информация взята из /usr/ports/Mk/bsd.default-versions.mk
# $FreeBSD: head/Mk/bsd.default-versions.mk 345909 2014-02-25 00:32:09Z gerald $
#
# MAINTAINER: ports@FreeBSD.org
#
# Provide default versions for ports with multiple versions selectable
# by the user.
#
# Users who want to override these defaults can easily do so by defining
# DEFAULT_VERSIONS in their make.conf as follows:
#
# DEFAULT_VERSIONS= perl5=5.18 ruby=2.0
.if !defined(_INCLUDE_BSD_DEFAULT_VERSIONS_MK)
_INCLUDE_BSD_DEFAULT_VERSIONS_MK= yes
.for lang in ${DEFAULT_VERSIONS}
_l= ${lang:C/=.*//g}
${_l:U}_DEFAULT= ${lang:C/.*=//g}
.endfor
APACHE_DEFAULT?= 2.2
FPC_DEFAULT?= 2.6.2
GCC_DEFAULT?= 4.6
LUA_DEFAULT?= 5.2
MYSQL_DEFAULT?= 5.5
PERL5_DEFAULT?= 5.16
PGSQL_DEFAULT?= 9.0
PHP_DEFAULT?= 5.4
PYTHON_DEFAULT?= 2.7
PYTHON2_DEFAULT?= 2.7
PYTHON3_DEFAULT?= 3.3
RUBY_DEFAULT?= 1.9
TCLTK_DEFAULT?= 8.6
.endif
Вы можете заглянуть в /usr/ports/Mk/bsd.*.mk
для соответствующих переменных и установить их в /etc/make.conf
. Но безопаснее просто установить необходимые версии такого программного обеспечения, а затем продолжить все остальное.
Версия порта - это версия, которую разработчик порта создал и протестировал (и которая регулярно проверяется сборкой портов tinderbox) - я не знаю ни одного порта, у которого есть ручка версии, хотя вы можете найти несколько версии некоторых портов в дереве (например, PostgreSQL имеет версии с 7.3 по 9.0).
Вы можете установить новые версии этих портов вручную, и (если они подходят) они будут найдены как зависимости и использоваться другими портами.
Общий ответ для обновления порта заключается в том, что если вам нужна более новая версия порта, чем та, которая указана в дереве, вы можете создать и отправить патч, который обновляет порт (Бегло прочтите Справочник портера FreeBSD может быть хорошей идеей познакомиться с тем, как все работает в дереве портов).
Если ваша новая версия содержит несовместимые изменения, вам, вероятно, следует создать для нее новый порт (вы можете использовать старую версию в качестве скелета).