From owner-freebsd-stable@FreeBSD.ORG Wed Sep 3 23:24:59 2014 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id E2BC4425 for ; Wed, 3 Sep 2014 23:24:59 +0000 (UTC) Received: from www81.your-server.de (www81.your-server.de [213.133.104.81]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9FE20181E for ; Wed, 3 Sep 2014 23:24:59 +0000 (UTC) Received: from [92.76.80.218] (helo=michael-think) by www81.your-server.de with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.80.1) (envelope-from ) id 1XPJv4-0008AM-Qh; Thu, 04 Sep 2014 01:24:55 +0200 Content-Type: text/plain; charset=iso-8859-15; format=flowed; delsp=yes To: "Brandon Allbery" Subject: Re: pkg question - Difference pkg vs port References: Date: Thu, 04 Sep 2014 01:24:48 +0200 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: "Michael Ross" Message-ID: In-Reply-To: User-Agent: Opera Mail/1.0 (Win32) X-Authenticated-Sender: gmx@ross.cx X-Virus-Scanned: Clear (ClamAV 0.98.4/19334/Wed Sep 3 23:27:44 2014) Cc: FreeBSD Stable Mailing List X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 03 Sep 2014 23:25:00 -0000 On Thu, 04 Sep 2014 00:38:02 +0200, Brandon Allbery wrote: > On Wed, Sep 3, 2014 at 5:52 PM, Michael Ross 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