在从 FreeBSD 中的端口安装任何程序之前,如何设置 MySQL、Postgres、Apache 等的默认版本?

在从 FreeBSD 中的端口安装任何程序之前,如何设置 MySQL、Postgres、Apache 等的默认版本?

当我在 FreeBSD 系统上从 ports 安装软件时,有时会安装相当过时的 Apache/MySQL/Perl/等版本作为依赖项。有没有办法预先设置这些 ports 的版本,以便在需要时,ports 系统会选择合适的版本?

答案1

您可以查找/usr/ports/Mk/bsd.*.mk相应的变量并在 中设置它们/etc/make.conf。但更安全的做法是只安装此类软件所需的版本,然后继续进行其他操作。

答案2

设置例如:

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:   [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

答案3

端口的版本是端口维护者构建和测试的版本(并且会由端口 tinderbox 定期构建测试)——我不知道有哪个端口有版本旋钮,但您可以在树中找到某些端口的多个版本(例如,PostgreSQL 有从 7.3 到 9.0 的版本)。
您可以手动安装这些端口的较新版本,并且(如果它们合适)它们将被视为依赖项并被其他端口使用。

对于端口升级的一般答案是,如果你想要一个比树中更新的端口版本,你可以创建并提交更新端口的补丁(粗略阅读FreeBSD Porter 手册熟悉 ports 树的工作方式可能是个好主意。
如果您的新版本引入了不兼容的更改,您可能应该为其创建一个新的 port(您可以使用旧版本作为框架)。

相关内容