Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 16 Apr 2015 22:40:31 +0600
From:      Victor Sudakov <vas@mpeks.tomsk.su>
To:        freebsd-pkg@freebsd.org, Matthew Seaman <matthew@freebsd.org>
Subject:   Re: perl version woe
Message-ID:  <20150416164031.GA27284@admin.sibptus.tomsk.ru>
In-Reply-To: <552F7738.1070703@freebsd.org>
References:  <20150416042738.GA99219@admin.sibptus.tomsk.ru> <552F5FF3.7090908@FreeBSD.org> <20150416080754.GA18442@admin.sibptus.tomsk.ru> <552F7738.1070703@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Matthew Seaman wrote:
> > Do you mean to say, I should be able to safely run "pkg upgrade" and
> > pkg will resolve this for me?
> 
> Yes, pretty much.
> 
> You can run 'pkg upgrade' safely, as it will show you what packages it
> will install, remove or reinstall and ask you for confirmation before it
> does.  (Assuming you haven't overridden that behaviour in pkg.conf)
> Check what it tells you carefully, and just hit 'n' if you don't agree
> with it.

That's exactly what I did. When I saw that it was going to INSTALL
perl5 instead of UPDATE it, I refused to proceed and asked a question
here.

> 
> In fact, for "difficult" upgrades it tends to do that twice, once with
> the information in the repository catalog, and then again after it has
> downloaded all the new packages and so has access to the complete list
> of files in each package manifest.  The second pass of the solver is
> where it handles all the packages trying to install conflicting files,
> which is something that tends to happen when doing a switch between
> different version of perl or ruby or the like.  You should be able to
> avoid the two-solver-passes effect by pulling down the new packages
> using 'pkg fetch -u' before trying the upgrade.

Nice to know, thank you.

> 
> Generally, if pkg can't work out how to upgrade it will end up asking
> you to remove some items from the upgrade and then end up not doing
> anything.  Although pkg-1.5 should be less prone to that sort of thing now.

I think that is what happened in the log below, but could you explain
it in greater detail? The messages are not entirely self-explanatory.
The (r) and (l) are probably (r)emote and (l)ocal? Whence this conflict
between identical versions of php5-ldap-5.4.39 ?

Checking integrity... done (2 conflicting)
pkg: Cannot solve problem using SAT solver:
dependency rule: package php5-extensions(r) depends on: php5-ldap(r)php5-ldap(l)
dependency rule: package php5-extensions(l) depends on: php5-ldap(r)php5-ldap(l)
upgrade rule: upgrade local php5-ldap-5.4.39 to remote php5-ldap-5.4.39
cannot install package php5-ldap, remove it from request? [Y/n]:
pkg: cannot find php5-ldap in the request
pkg: cannot solve job using SAT solver
Checking integrity... done (0 conflicting)
Conflicts with the existing packages have been found.
One more solver iteration is needed to resolve them.
[root@gw /] !!
pkg upgrade
Updating sibptus repository catalogue...
sibptus repository is up-to-date.
All repositories are up-to-date.
Checking for upgrades (124 candidates): 100%
Processing candidates (124 candidates): 100%
Checking integrity... done (2 conflicting)
pkg: Cannot solve problem using SAT solver:
dependency rule: package php5-extensions(r) depends on: php5-ldap(r)php5-ldap(l)
dependency rule: package php5-extensions(l) depends on: php5-ldap(r)php5-ldap(l)
upgrade rule: upgrade local php5-ldap-5.4.39 to remote php5-ldap-5.4.39
cannot install package php5-ldap, remove it from request? [Y/n]: y
pkg: cannot find php5-ldap in the request
pkg: cannot solve job using SAT solver
Checking integrity... done (0 conflicting)
Your packages are up to date.

> 
> > I'd better try on a copy of the system.
> 
> To be sure.  There's no such thing as "too paranoid" where systems
> administration is concerned. pkg(8) should not be causing you any grief
> though, and even if it does, we'd like to know about it[*] so we can
> avoid the problem in future.
> 
> 
> [*] Ie. we'd like a copy of your package database and maybe access to
> your repo, or details of your repo setup so we can try and reproduce the
> problem.

My repository is public and is located at http://svn64.sibptus.ru 

The build logs are at http://svn64.sibptus.ru:8060/ (I promise to tell
the access credentials to anyone in a private e-mail).



-- 
Victor Sudakov,  VAS4-RIPE, VAS47-RIPN
sip:sudakov@sibptus.tomsk.ru



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20150416164031.GA27284>