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>