Date: Sat, 01 Jun 2013 01:39:35 +0100 From: Matthew Seaman <matthew@FreeBSD.org> To: "bsd@todoo.biz" <bsd@todoo.biz> Cc: Liste FreeBSD <freebsd-questions@freebsd.org> Subject: Re: pkgng dependencies change / update Message-ID: <51A942C7.8080704@FreeBSD.org> In-Reply-To: <71B55EBD-A768-42D3-839A-E89098A1AD81@todoo.biz> References: <71B55EBD-A768-42D3-839A-E89098A1AD81@todoo.biz>
next in thread | previous in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 4880 and 3156) ------enig2UKGHMMBLLVTMAWBQIOMR Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On 31/05/2013 16:26, bsd@todoo.biz wrote: > Hi,=20 >=20 > I am trying to figure out how to change / update the dependencies on a = package.=20 >=20 > I have a postfix package which comes from a server where mysql-client i= s in version 5.1=20 > And I would like to install the same package on a server where mysql-cl= ient is in version 5.6=20 >=20 > I am not sure if this is feasible.=20 >=20 > Of course when I try to install this package on the server, it tells me= :=20 >=20 >=20 >> jail: ns3 15:03:57 /home/gregober # pkg add postfix-2.10.0,1.txz=20 >> Installing postfix-2.10.0,1...missing dependency mysql-client-5.1.68 >> Failed to install the following 1 package(s): postfix-2.10.0,1.txz >=20 >=20 > I have tried to set the dependency to an updated version of the port : = >=20 >> jail: ns3 15:04:16 /home/gregober # pkg set -o databases/mysql51-clien= t:databases/mysql56-client >> Change origin from databases/mysql51-client to databases/mysql56-clien= t for all dependencies? [y/N]: y >=20 >=20 > But no luck !!=20 >=20 >=20 > Any idea how to do that ?=20 Well, the best way is generally to use a package compiled against the correct set of dependencies in the first place. postfix will be linking against the MySQL client shared libraries. Those have different ABI versions between mysql51 and mysql56. Meaning you can't simply swap one for the other and expect things to still work. 'pkg set -o' looks like it does what you want, but really, it doesn't. What it does is allow smoothly replacing one complete dependency tree with another. So, running: # pkg set -o databases/mysql51-client:databases/mysql56-client is fine and dandy, and a necessary prerequisite to then running an upgrade against a package repo where everything that links against mysql client has been linked against mysql56-client specifically. In fact, you're doing things the wrong way round. 'pkg set -o' works on what has already been installed. You could in principle use 'pkg set -o' to switch your mysql56-client machine to using mysql51-client -- which means running 'pkg set -o ...' and then *reinstalling all the packages that depend on mysql56-client with equivalent packages linked against mysql51-client*. After that, your postfix package should install OK. Ultimate plans are that the need to use 'pkg set -o' should disappear entirely, as the package dependency solver should be clever enough to work out all this stuff for itself. There's also ideas about making more finely grained binary packages -- several packages from one port essentially. So out of each mysqlXX-client port there'd be several packages created, one of which contains just the shared libraries. The good thing about that is it will be possible to install shared libraries for several different mysqlXX versions simultaneously, which would make your postfix problem fairly trivial to solve. Cheers, Matthew --=20 Dr Matthew J Seaman MA, D.Phil. PGP: http://www.infracaninophile.co.uk/pgpkey ------enig2UKGHMMBLLVTMAWBQIOMR Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG/MacGPG2 v2.0.16 (Darwin) Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iEYEARECAAYFAlGpQs8ACgkQ8Mjk52CukIz3lwCgjO2b0BlT7Sjs+RQrxYvEcvOa ALoAnjI7V6vFH+VyiQAV1tljQgPQO8+I =rgpU -----END PGP SIGNATURE----- ------enig2UKGHMMBLLVTMAWBQIOMR--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?51A942C7.8080704>