YaST 本地更新

Jump to: navigation, search

声明

本文档以GNU FDL协议发布,还是草稿,整理后发表在opensuse.org.cn上。

概述

YaST是一个强大的RPM包管理器和系统设置软件,包管理功能协调解决依赖性问题,从而提供了大规模软件升级的便利。YaST中这个功能叫做“系统更新”。用户简单的增加一个安装源,就可以升级含有多个包的大程序(比如KDE)。

但由于安装源大部分都在国外,网络条件不好的话,源更新的成功率较低。因此,把相关文件下载到本地,再把本地目录设为安装源,这样可以提高升级成功率,而且稳定,不易出错。

本地更新

更新“真”YaST源

步骤: 1.找到安装源的URL。一般来说都是个 ...../yast-sourse/的地址 2.在安装源的根目录找到content文件,下载打开,可以分析这个安装源的目录结构。

一个真YaST源不仅包含RPM包,也包含描述那些包的文件。在下载到本地时,这些文件都要下载。 一般来说,描述包的文件有如下几个

  media.1/
         `- media
  content
  directory.yast
  setup/descr/
             `- packages
             `- packages.DU
             `- packages.en

一般来说media.1目录下的media文件是固定的,根目录下directory.yast和content文件是位置固定的。 如果其它不是默认情况,content文件中会明示各路径。文件中关键词DESCRDIR对应安装包描述信息的位置,DATADIR对应rpm包的存放目录。

RPM包在目录 DATADIR/架构名称 下面存放。比如DATADIR是 suse/rpm,那64位的包就应该在 根目录/suse/rpm/x86_64,其它架构的包就是 根目录/suse/rpm/i386或者i586、i686。

描述包信息的文件,一般是三个文件packages、packages.DU、packages.xx。.xx是语言简写代码,一般是英语,packages.en。德语就是packages.de。

3.本地建立一个目录,准备镜像安装源。

4.根据第二步的分析,下载你需要的文件。

你不仅需要那些RPM包,也需要那些描述包的文件。当然具体情况你可以根据content文件分析。下载时请严格按照原有的目录结构下载。使本地和服务器目录结构上一致。

在选择你的架构后,请不要完全忽略noarch目录下的包,noarch的意思是所有架构通用,而不是你不需要用。

建议:尽量不要整个目录都下载,选择你需要的文件。

5.YaST-安装源-把本地目录加入安装源,只打开刚加的源和初始安装盘的源。

6.YaST-系统更新。

例子

这里以Suse 10.0 64bit更新到KDE 3.5.1为例说明: 1.找到安装源地址ftp://ftp.jaist.ac.jp/pub/Linux/SuSE/suse/x86_64/supplementary/KDE/update_for_10.0/yast-source

这里只是举例,升级用到了suse服务器上提供的Yast源--KDE supplementary 3.5 update。这里并没有用官方的地址,而是用了ftp.jaist.ac.jp服务器上作的镜像,因为这个服务器在日本,速度相对快些。

你并不一定要使用这个地址,如果你知道更快的suse服务器的镜像:把[1]作为你找到的官方镜像,32位把x86_64换成i386或者i586,只要适合你的情况就行:

[2]

2.分析根目录下的content文件


  PRODUCT supplementary KDE 3.5.x
  VERSION 3.5
  DISTPRODUCT KDE-3.5-supplementary
  DISTVERSION 3.5-0
  BASEPRODUCT SuSE Linux
  BASEVERSION 10.0-0
  VENDOR SuSE Linux AG
  ARCH.x86_64 x86_64 i686 i586 i486 i386 noarch
  DEFAULTBASE x86_64
  REQUIRES distribution-release
  LABEL supplementary KDE 3.5 update
  LABEL.de inoffizielles KDE 3.5 update
  DESCRDIR suse/setup/descr
  DATADIR suse
  FLAGS update
  TIMEZONE Europe/Berlin


其中DESCRDIR suse/setup/descr 这行是说对包的描述文件在 根目录/suse/setup/descr 里面,这里是文件packages、packages.DU、packages.en、packages.de。

DATADIR suse这行则是说我们需要的rpm包存在 根目录/suse/架构名称 下面。

3.建立本地目录 /home/xxx/kde-up/

4.按照原来目录结构下载下面文件到 /home/xxx/kde-up/

  media.1/
         `- media
  content
  directory.yast
  suse/setup/descr/
             `- packages
             `- packages.DU
             `- packages.en
             

当然如果你希望那个看到德语的包信息简介,请下载packages.de文件,而不是packages.en。

下载我们需要的包,先是下载整个 suse/x86_64/ 下面的文件到 /home/xxx/kde-up/suse/x86_64/ 。当然如果您很明确知道自己不需要什么就不要下那个包。比如说我就不用amarok用xmms,那么amarok.rpm就没有必要下载。

然后在 /home/xxx/kde-up/suse/noarch/ 下面下载 kdelibs3-devel-doc.rpm,kde3-i18n-zh_CN.rpm。如果你用Koffice,继续下koffice-i18n-zh_CN.rpm。之所以只下有zh_CN的rpm是因为这些kde3-i18n-*.rpm/koffice-i18n-*.rpm明显是语言包,下一大堆根本不用的语言没有意义。自然如果您使用繁体中文请下载相应的zh_TW的RPM。


5.YaST-安装源-把目录/home/xxx/kde-up/加入安装源。只打开刚加的源和初始安装盘的源。

6.YaST-系统更新,如果还显示少什么包,去[3]搜索,手动解决。