pkg upgrade wants to install old postgresql-client-version. why?
Paul Mather
paul at gromit.dlib.vt.edu
Fri Jan 13 14:42:17 UTC 2017
On Jan 13, 2017, at 9:24 AM, Holger Kipp <Holger.Kipp at alogis.com> wrote:
> Dear all,
>
> I have a little FreeBSD system upgraded from 10.2-p24 to 10.3-p11. GENERIC Kernel.
> This also included upgrading postgresql from 9.5.4 to 9.5.5_1. and about 220 other ports.
> Most were upgraded using pkg upgrade, but postgresql had to be upgraded using the manual
> make, make package, make deinstall && make reinstall.
>
> root at gw2:~ # pkg info | grep postgresql
> postgresql95-client-9.5.5_1 PostgreSQL database (client)
> postgresql95-contrib-9.5.5 The contrib utilities from the PostgreSQL distribution
> postgresql95-server-9.5.5_1 PostgreSQL is the most advanced open-source database available anywhere
> root at gw2:~ #
>
> All Ports were originally installed from source but with default config.
>
> --------
>
> Now pkg upgrade wants to install postgresql-client 9.3.15_1:
>
> root at gw2:~ # pkg upgrade
> Updating FreeBSD repository catalogue...
> FreeBSD repository is up-to-date.
> All repositories are up-to-date.
> Checking for upgrades (28 candidates): 100%
> Processing candidates (28 candidates): 100%
> The following 3 package(s) will be affected (of 0 checked):
>
> New packages to be INSTALLED:
> postgresql93-client: 9.3.15_1
>
> Installed packages to be REINSTALLED:
> p5-Pg-2.1.1_4,1 (direct dependency changed: perl5)
> p5-DBD-Pg-3.5.3 (direct dependency changed: p5-DBI)
>
> Number of packages to be installed: 1
> Number of packages to be reinstalled: 2
>
> The process will require 9 MiB more space.
> 2 MiB to be downloaded.
>
> Proceed with this action? [y/N]:
>
> --------
> My programs using p5-Pg or p5-DBD-Pg seem to work just fine, and perl5 has current version perl5-5.24.1.r4_1.
> However I had to reinstall both packages manually because they were not properly working after upgrade via pkg upgrade.
You are using the official FreeBSD packages for your upgrade. They are built with postgresql93 as the default version of PostgreSQL. Thus, p5-Pg and p5-DBD-Pg will both have a dependency on the postgresql-client packages (for libraries allowing them to interface with PostgreSQL servers), which, in the FreeBSD repository, is postgresql93-client.
Because postgresql93-client conflicts with postgresql95-client, it will try and uninstall the latter when trying to satisfy the postgresql93-client dependency. The same will be true of any other package you try and use from the FreeBSD repository that has a dependency upon PostgreSQL.
> How can I check where from pkg upgrade gets the idea to install old 9.3.15_1 postgresql client?
> And is there a way to rectify this?
I would imagine that, like you did with the PostgreSQL 9.5 ports, you would also have to build and reinstall p5-Pg and p5-DBD-Pg manually, too. Be sure to add "DEFAULT_VERSIONS+= pgsql=9.5" or otherwise amend your DEFAULT_VERSIONS setting in /etc/make.conf before building so that p5-Pg and p5-DBD-Pg depend upon the version of PostgreSQL you want.
Mixing custom local ports and stock ports from the FreeBSD official packages repository will often lead to these sorts of problems, due to differences in build options and such.
Another way to rectify it is to build your own ports using something like Poudriere.
Cheers,
Paul.
More information about the freebsd-stable
mailing list