YaST 本地更新
声明
本文档以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.分析根目录下的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]搜索,手动解决。