Date: Thu, 04 Sep 2014 01:24:48 +0200 From: "Michael Ross" <gmx@ross.cx> To: "Brandon Allbery" <allbery.b@gmail.com> Cc: FreeBSD Stable Mailing List <freebsd-stable@freebsd.org> Subject: Re: pkg question - Difference pkg vs port Message-ID: <op.xlmwnmovg7njmm@michael-think> In-Reply-To: <CAKFCL4UX1Z-UsJYix8RR1eSkU38j04UE3WOt7d-Wz4yZX9J9OQ@mail.gmail.com> References: <op.xlmsddjrg7njmm@michael-think> <CAKFCL4UX1Z-UsJYix8RR1eSkU38j04UE3WOt7d-Wz4yZX9J9OQ@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 04 Sep 2014 00:38:02 +0200, Brandon Allbery <allbery.b@gmail.com> wrote: > On Wed, Sep 3, 2014 at 5:52 PM, Michael Ross <gmx@ross.cx> wrote: > >> This is the exact same output I get when I install with ``pkg install >> py27-MySQLdb'', >> yet the pkg version does not accept mysql56, but insists on mysql55, >> the fact that both use libmysqlclient.so.18 notwithstanding. >> >> How do I handle this?, i. e. how do I, can I, manually change the >> dependency >> mysql55-client-5.5.39 >> to >> mysql56-client-5.6.20 >> ? >> >> I have to use mysql56, does this mean I have to install the python >> module >> via the port? >> > > A package can (currently?) only be built against a single version of a > dependency; if it was built against mysql55-client, it can't be also > built > for mysql56-client. You'll need to use the port, which can be built > against > anything that provides the necessary build time dependency. "Anything that provides" I think is the key to where I started thinking wrong: The dependency is not "Shared libs required" libmysqlclient.so.18, but one specific port that provides libmysqlclient.so.18 - mysql55-client. Ok. And I can ``pkg lock'' the installed packages so the mysql-server doesn't get accidentally deleted during a bulk upgrade. Whew -- there were 6 pkg_* commands, and pkg now has over 30. This will take some getting used to. With pkg_add, I'd ``pkg_add -r py27-MySLQdb'', then pkg_add would say "Nope, need mysql55, but mysql56 is installed", then maybe I'd --force it. > (It might be possible to force the package to install, but this is asking > for trouble in the future.) > It's a trade-off for me: If I need to install software in a production service role, say httpd and co., I wouldn't --force anything. But sometimes I have to do one-shot stuff ( "Can you look if geoip does this-and-that" ), and I want the answer now and not after upgrading 221 ports because I want to install 1 new one but gettext has changed. I've got an old machine here which I used for such testing for a few years, running 4.11. This was far too slow to compile stuff in "hm I need software X maybe" situations, and I generally --forced every install. Amazingly I had much less trouble with this than you'd expect, was amazed how long the system stood up to this maltreatment. Michael
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?op.xlmwnmovg7njmm>