Você pode procurar em /usr/ports/Mk/bsd.*.mk
as variáveis correspondentes e defini-las em /etc/make.conf
. Mas é mais seguro instalar as versões necessárias desse software e continuar com tudo o mais.
Quando eu instalo software de portas em um sistema FreeBSD, algumas vezes versões desatualizadas do Apache / MySQL / Perl / etc são instaladas como dependências. Existe alguma maneira de definir as versões dessas portas de antemão, de modo que, se elas forem necessárias, o sistema de portas escolheria uma versão apropriada?
Defina por exemplo:
DEFAULT_VERSIONS= perl5=5.18 ruby=2.0
no seu /etc/make.conf
Esta informação é retirada de /usr/ports/Mk/bsd.default-versions.mk
# $FreeBSD: head/Mk/bsd.default-versions.mk 345909 2014-02-25 00:32:09Z gerald $
#
# MAINTAINER: [email protected]
#
# 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
A versão da porta é a versão que o mantenedor da porta construiu e testou (e que é rotineiramente testada quanto à construção pelo tinderbox de portas) - não sei de nenhuma porta que tenha um botão de versão, embora você pode encontrar várias versões de algumas portas na árvore (por exemplo, o PostgreSQL tem versões de 7.3 a 9.0). Você pode instalar as versões mais novas dessas portas manualmente e (se elas forem adequadas) elas serão encontradas como dependências e usadas por outras portas.
A resposta geral para upgrades de porta é que, se você quer uma versão mais nova de uma porta, o que está na árvore, você pode criar e envie um patch que atualize a porta (Uma leitura superficial através de O FreeBSD Porter's Handbook pode ser uma boa idéia para se familiarizar com a forma como as coisas funcionam na árvore de ports).
Se a sua versão mais nova apresentar alterações incompatíveis, você provavelmente deverá criar uma nova porta para ela (você pode usar a versão mais antiga como um esqueleto).
Tags dependencies freebsd