包管理器更新还是升级?

包管理器更新还是升级?

sudo zypper update

The following package updates will NOT be installed:
  amarok bluedevil choqok cln digikam digikam-lang GeoIP gstreamer-0_10 gstreamer-0_10-plugin-gnomevfs gstreamer-0_10-plugin-hal 
  gstreamer-0_10-plugins-base gstreamer-0_10-plugins-good gstreamer-0_10-plugins-good-lang k3b kaffeine kipi-plugins kipi-plugins-acquireimage 
  ksshaskpass ktorrent ktorrent-lang liba52-0 libavcodec52 libavformat52 libavutil50 libbluedevil1 libcares2 libGeoIP1 libgstapp-0_10-0 
  libgstinterfaces-0_10-0 libgstreamer-0_10-0 libgstreamer-0_10-0-32bit libidn libidn-32bit libktorrent3 libktorrent3-lang liblash1 liblzma5 libnetcdf4 
  libshout3 libssh2-1 libswscale0 libtag-extras1 libupnp6 libva1 libvlc5 libwavpack1 libx264-115 libxine1 libxine1-gnome-vfs libxine1-pulse linphone 
      mjpegtools netcdf NetworkManager-kde4-libs NetworkManager-openvpn-kde4 NetworkManager-pptp-kde4 NetworkManager-vpnc-kde4 openmpi oxygen-gtk 
  python-cairo python-gobject python-gobject-cairo python-gtk python-numpy python-qt4 python-simplejson python-sip shared-desktop-ontologies skanlite 
  sox taglib xz 

The following packages are going to be upgraded:
  dbus-1 dbus-1-32bit dbus-1-devel google-chrome-stable gstreamer-0_10-buzztard libgstapp-0_10-0-32bit libvlc5 libvlccore4 libx264-116 libxine1-codecs 
  python-virtualbox virtualbox virtualbox-devel virtualbox-host-kmp-default virtualbox-qt vlc vlc-aout-pulse vlc-gnome vlc-noX vlc-qt 

首先,为什么 zypper 告诉我我需要的更新,然后又说它们不会安装?另外,下面还写着...packages will be UPGRADED。这些术语之间有区别吗?

我问是因为 zypper 接受updateupgrade标志。

答案1

我不熟悉扎普,所以对这个答案持保留态度。我熟悉APT,Zypper从中汲取了一些灵感;我可能错过了两者之间的重要区别。

据我所知,zypper update尝试获取每个包的最新版本。但它以相对温和的方式做到这一点:仅考虑安装来自同一存储库的已安装软件包的更新版本。zypper update不安装新的软件包、删除现有的软件包或从不同的存储库安装新的软件包版本。

zypper dist-upgrade更具攻击性。它尝试使您的系统与存储库提供的内容同步:之后zypper dist-upgrade,您应该拥有相同的软件包版本,就像您从存储库从头开始安装一样。

答案2

如果您的存储库兼容,您可以使用zypper dup.默认存储库 + 社区存储库(KDE 47、Tumbleweed 等)可以正常使用。但正如 Gilles 提到的,如果存储库中的最新版本的软件包与其依赖项的最新版本不兼容,可能会出现问题。

我注意到 11.4 存储库非常兼容,这在以前的版本中并非如此,这zypper dup可能是一次痛苦的经历。

我的建议是:

  • zypper up用于日常更新
  • zypper dup每周一次,或每两周一次

手册页zypper up

如果可能,使用较新版本更新已安装的软件包。此命令不会更新需要更改软件包供应商的软件包,除非在 /etc/zypp/vendors.d 中指定了供应商,或者需要手动解决依赖项问题。此类不可安装的更新将在摘要的单独部分中列为“将不会安装以下软件包更新:”。要更新单个包,请指定一个或多个包名称。您可以使用“*”和“?”包名称中的通配符用于指定与模式匹配的多个包。

手册页zypper dup

执行发行版升级。此命令将(指定)存储库的状态应用到系统上;将已安装的软件包升级(甚至降级)到存储库中找到的版本,删除存储库中不再存在的软件包并为升级带来依赖问题,处理软件包拆分和重命名等。如果没有通过 --from 或指定存储库--repo 选项,zypper 将使用所有定义的存储库进行升级。如果系统包含冲突的存储库(例如两个不同发行版的存储库),这可能会成为问题。如果在添加新版本存储库后忘记删除旧版本存储库(例如 openSUSE 11.1 和 openSUSE 11.2),就会经常发生这种情况。为了避免上述问题,您可以使用 --from 或 --repo 选项指定要从中进行升级的存储库。两者之间的区别在于,当使用 --repo 时,zypper 的行为就好像它只知道指定的存储库,而使用 --from zypper 最终还可以使用其余启用的存储库来满足包依赖性。

答案3

http://financialsoft.about.com/od/softwaretitle1/f/upgradevupdate.htm可能会回答你的问题

对我来说,升级是指主要版本增加,更新是次要版本。

例如:

  • 侏儒2.32 -> 侏儒3.0:升级
  • 侏儒 3.0-> 侏儒 3。2: 更新

相关内容