在我的 FreeBSD(家庭)服务器上,我安装了 6.2-RELEASE-p8。这“包括”PHP 5.1。我现在需要安装 PHP 5.2(由于存在依赖关系,5.3 可能也可以使用)。
现在我的(新手)问题是:(如何)我可以获得端口集合(csup?)以便让我在 6.2-RELEASE 上安装 PHP 5.2?这可能吗?这是好事(或至少是可以接受的)吗?
我是否需要密切关注 PHP 扩展(例如 php5-gd 或 php5-mysql 等)或者它们是否应该/会自动更新?
如果有的话,我也希望有一个手册链接。我似乎在尝试过的各种搜索框中输入了错误的术语 :(。
编辑:
抱歉,可能会造成混淆。我已经拥有/使用 csup。以下是我当前的 ports-supfile 的内容:
*default host=cvsup.ch.FreeBSD.org
*default base=/var/db
*default prefix=/usr
*default release=cvs tag=RELEASE_6_2_0 # Release FreeBSD 6.2
*default delete use-rel-suffix
*default compress
ports-all
答案1
安装 cvsup
cd /usr/ports/net/cvsup-without-gui 进行安装清理
为 ports 树配置一个 CVSUP 文件,创建包含以下内容的文件:
*default tag=. *default host=cvsup.FreeBSD.org *default prefix=/usr *default base=/var/db *default release=cvs delete use-rel-suffix ports-all
如果您想更新 src 树,请将第一行更改为您想要的版本,并将最后一行更改为如下:
*default tag=RELEND_8 src-all
(这是针对最新的 8.x-STABLE 源,对于 6.x-STABLE,将 8 改为 6)
对更新文件运行 cvsup:。
cvsup cvsup.file
等待,这将需要 15 到 60 分钟,具体取决于要更新的内容。从端口树安装较新的 PHP。
cd /usr/ports/lang/php5 (for 5.3, or php52 for 5.2) make install clean
更新你的 php 扩展(最常见的扩展都收集到元端口中):
cd /usr/ports/lang/php5-extensions make config [select the extensions you want built from the list] make install clean
如果这是针对 Apache 服务器的,您可能需要更改那里的配置。但这取决于它的设置方式。
链接:
手册 - 使用 CVSup
手册 - 使用 Ports
手册 - Apache HTTP 服务器(包括一些 PHP 信息)
编辑:
有几个选项。您可以重命名当前的 ports 目录(保留它,同时获取新副本并从那里更新 PHP)。此方法的优点是,在您的机器上构建 PHP 应该会导致适当的库依赖关系已经存在。此外,您的原始 cvsup 文件中有 6.2 标签,这意味着您只会获得 6.2-RELEASE 附带的端口;不会更新任何内容。如果您想再次下载原始端口树的副本(您可以删除端口树并使用 cvsup 再次下载整个内容),这很有用,但除此之外,它没有什么用处,因为什么都没有改变。
另一种方法是下载更新的软件包并手动安装。由于共享库已过期且必须使用预构建的二进制文件,这种方法很可能行不通;但它肯定会保护您当前的 ports 树。
您可以从FreeBSD FTP 站点。您将需要 php5.tbz(或 php52.tbz)以及您当前已安装的任何扩展(确保您获取相应的版本,5 或 52,并记住 5 是版本 5.3)。
然后pkd_delete -f [pkg_name]
使用 重新安装每个包并从包文件中安装它们pkg_add [package.tbz]
。
我不确定版本之间的依赖关系差异是什么,因此您有可能需要升级其他端口(尽管我认为这种情况不太可能)。