Dňa Tuesday 26 February 2008 17:59:32 Jan Kupec ste napísal:
Stanislav Visnovsky wrote:
Dňa Monday 25 February 2008 18:00:34 Michael Andres ste napísal:
As people are encouraged to use ‘zypper dup’, we get some reports which
describe problems arising from the fact that we update the update stack
in the running system.
After installing the new libzypp, zypper continues the transaction
and is still using the old lib.
While the new libzypp converts and removes obsoltete locations (like
the cache store or the obsolete sql databases) in it’s post install
script, the zypper running still tries to access these locations.
Maybe zypper should check whether the update stack needs an update,
and handle this specially.
Yes, good point. I also think the correct way to upgrade the system is
‘zypper in zypper’
‘zypper dup’
The first command should make sure the proper libzypp is installed as
well. In reality, the first command will install a complete software mgmt
stack including YaST base packages, as they are tied to the particular
version of libzypp. So, this works nicely IMO.
The question is whether to handle this from inside the dup command
automatically, or to stick with just advising people to do the above. It
should not be too hard to check if there is an update to libzypp and
print “do ‘zypper in zypper’ first” message at least.
If this is possible, yes, would be good. I cannot imagine running the old
zypper against new libzypp
大概将问题和答案翻译出来。
问题:
很多人在正在运行的Suse上执行命令,zypper dup,即zypper distribution upgrade.但是执行完之后,会出现各种各样的问题。比如,我就曾经经历过,dup后,所有的yast2的管理包,都打不开。
这是因为dup更新了libzyyp,libzyyp更改或删除了他的安装脚本内软件储存池的绝对路径,但是zypper本身还是按照原来的libzypp来执行install,这样导致,安装不成功或者干脆安装了错误的包,导致系统错误。
解决方案:
按照顺序执行
zypper in zypper
zypper dup
第一个命令保证安装了正确的zypper,第二个命令保证正确的系统更新。
后边他们讨论,zypper是不是应该把这个功能内置到程序本身,就是检查libzyy的正确性,这就不关我的事了,呵呵