FreeBSD包版本依赖问题的处理

因为在FreeBSD里,最好的编程语言PHP提供的PostgreSQL驱动包对pgsql-client有版本依赖,所以搞得用起来很不爽。

比如现在PostgreSQL最新版已经发布到了9.6了(当然我还在用9.4,准备以后直接升10),但是pkg和ports里提供的php56-pgsql和php56-pdo_pgsql都只支持9.3。

实在不知道它们用到了什么指定版本里的特定东西。但是如果要用这两个驱动,就只能安装PostgreSQL 9.3。如果一定要装别的版本,就会导致这两个PHP包被卸载,所有依赖这两个包的程序都没法使用,比如我那些跑在PostgreSQL上的Wordpress应用。

折腾了好久才总算搞定二者并存的问题,用了一段时间。但是当时没有记录下来,这次升级系统以后顺便把所有包都升级了一下,结果报错说不能安装postgresql93-client,因为与postgresql94-client有冲突……

于是又折腾了一番才搞定,现在赶紧记录一下,免得以后又忘记了。

其实原理很简单:

就是强制让php的两个包把postgresql94-client当成postgresql93-client,这样安装这两个包的时候就不会再安装93了。

pkg set -n postgresql94-client:postgresql93-client

先这样改一下包名,然后安装两个PHP包,再把包名改回去即可。

注意:以后如果要升级这两个PHP包,还得把这个包名改过来再改回。

推送到[go4pro.org]