Let pkg upgrade packages that were installed from binary only?

Nagy László Zsolt gandalf at shopzeus.com
Tue Sep 8 09:03:32 UTC 2015


I had to install a 10.2-RELEASE with binary packages. Everything is 
fine, except that I have to use postgresql94-server and 
postgresql94-client instead of version 9.3.

When I tried to install the required packages, then I relaized that the 
binary compiled php5-pgsql package depends on postgresql 9.3 instead of 
9.4.  Which is fine, because I understand that is the default. So I 
installed php5-pgsql from the ports tree. It compiled fine with 
postgresql 9.4 client libs. I had to do the same with some others: 
pecl-intl pecl-dba pecl-intl petcl-imagick

Here comes the tricky part. I would like to update my (binary) packages. 
If I do "pkg update; pkg upgrade" then I see this:

New packages to be INSTALLED:
         ghostscript9-nox11: 9.06_11
         postgresql93-client: 9.3.9
         php56: 5.6.12
         php56-mbstring: 5.6.12

Installed packages to be UPGRADED:
         libwmf: ->

Installed packages to be REINSTALLED:
         php5-pgsql-5.4.44 (direct dependency changed: postgresql93-client)
         php5-dba-5.4.44 (options changed)
         pecl-mailparse-2.1.6 (direct dependency changed: php56)
         pecl-intl-3.0.0_2 (direct dependency changed: php56)
         pecl-imagick-3.1.2_2 (direct dependency changed: php56)

So pkg wants to reinstall php5-pgsql, and it thinks that "direct 
dependency changed: postgresql93-client". My problem is this: php5-pgsql 
may work with postgresql client 9.3, but I have already compiled it 
against postgresql94-client. Can I upgrade php5-pgsql from the ports, 
and upgrade all the other packages from binary? The postgresql93-client 
should not be installed at all, because it should not be a dependency. 
Same is true with php56 and php56-mbstring - pkg wants to add them 
because it sees that the binary version of pecl-intl was compiled 
against php56. But in fact I do not have the binary versions installed - 
I have installed them from the ports tree, and my versions are compiled 
against php55.

So is there a way to tell "pkg" that it should not automatically install 
dependencies from packages that were installed from the ports tree? In 
this case all it should do is to upgrade libwmf. Of course I can always 
check the plan and do the upgrades manually. But can this be automatized 



More information about the freebsd-questions mailing list