FreeBSD: Mixing ports and packages
pkg install `make missing | cut -f2 -d/` to install
dependencies for ports that you don't want to compile locally.
We want to install php73-pdo_pgsql which depends on postgresql95-client, but we already have postgresql11-client.
Checking integrity... done (1 conflicting) - postgresql95-client-9.5.15_2 conflicts with postgresql11-client-11.1 on /usr/local/bin/clusterdb Checking integrity... done (0 conflicting) Conflicts with the existing packages have been found. One more solver iteration is needed to resolve them. The following 5 package(s) will be affected (of 0 checked): New packages to be INSTALLED: postgresql95-client: 9.5.15_2 php73-pdo: 7.3.2 php73-pdo_pgsql: 7.3.2 Number of packages to be installed: 3 The process will require 11 MiB more space. Proceed with this action? [y/N]: ^C
Installing php-pdo_pgsql from ports will install dependencies from ports as well, which we don't want. Instead, we'd like to install those dependencies as packages.
Update the ports tree:
List the dependencies for the desired port:
cd /usr/ports/databases/php73-pdo_pgsql make missing
That gives us:
devel/autoconf devel/m4 print/texinfo misc/help2man devel/p5-Locale-gettext devel/gettext-tools devel/p5-Locale-libintl converters/libiconv converters/p5-Text-Unidecode textproc/p5-Unicode-EastAsianWidth devel/autoconf-wrapper databases/php73-pdo
To translate those port names to package names and install them, we do:
pkg install `make missing | cut -f2 -d/`
make missing again to verify that all dependencies are indeed
now present, compile and install the port:
make install clean