Saturday, 5. November 2005, 11:19:09
smart, yast, red-carpet, suse
一直以来,我认为SUSE和Mandriva一样,是一个特立独行的发行版。但没有想到,SUSE也开始跟Mandriva的风,将原先默认的Yast2/Red-carpet软件包管理器,
换成了目前风头正劲的smart。
实际上,Novell/SUSE本身支持两种格式的软件包仓库:apt-rpm和red-carpet,smart同时支持这两种仓库格式。前者通常见于SUSE Linux,后者通常用于NLD和SLES。由于smart在第一次运行的时候会读取apt-rpm所用的source.list,并将其中的内容添加为channel,所以你基本不用做什么特别的设置。但由于apt-rpm对于镜像的管理远不如smart方便和智能,所以我还是建议你手动检查一下smart生成的channel:
smart channel --show
如果你想要从头创建smart的channel,也是很方便的,和urpmi仓库差不多:
smart channel --add mychannel type=[color=red]apt-rpm[/color] name="Some repository" \
baseurl=http://somewhere.com/pub/repos [color=red]components=extra[/color]
在urpmi仓库中,是没有components这个参数的。从某种意义上来说,apt-rpm的各channel似乎更像mirror。
Friday, 16. September 2005, 06:44:59
smart, Mandriva, urpmi
也许你永远不会用到mysql的shell模式,但是如果你是一个smart的用户,一定会对它的shell模式赞赏有加。你可以在shell模式中向smart发出多条指令,然后用一个commit执行之。比如:
[root@localhost ~]# [color=blue]smart --shell[/color]
Smart Package Manager 0.39 - Shell Mode
Loading cache...
Updating cache... ######################################## [100%]
smart> [color=blue]update[/color]
Fetching information for 'mainpri'...
Fetching information for 'contribpri'...
Updating cache... ######################################## [100%]
smart> [color=blue]info eva[/color]
Name: eva
Version: 0.3.1-4mdk@i586
Priority: 0
Group: Networking/Instant messaging
Installed Size: 3.3MB
Reference URLs: http://www.sourceforge.net/projects/evaq
Flags:
Channels: RPM Database; mainpri
Summary: Eva is an IM client compatible with QQ protocol based on QT
Description:
Eva is an IM client compatible with QQ protocol based on QT and KDE.
smart> [color=blue]upgrade[/color]
Upgrading packages (57):
Installed packages (1):
780.7kB will be used.
Confirm changes? (Y/n): [color=blue]y[/color]
smart> [color=blue]commit[/color]
Upgrading packages (57):
Installed packages (1):
780.7kB will be used.
Confirm changes? (Y/n): [color=blue]y[/color]
Fetching packages...
当然,你在smart的shell模式中可以使用Tab键来补全软件包名称,也可以使用通配符来指定软件包。
Monday, 12. September 2005, 11:06:29
Mandriva, smart, urpmi
smart的另外一个优点是更好的解决了镜像的问题。
实际上,urpmi是没有镜像功能的,它所谓的镜像是通过添加多个软件仓库实现的。而在对多个软件仓库进行考量的时候,只有软件版本的高低而已:存放着高版本软件的仓库将被使用,如果存放的软件版本相同,则使用配置文件中靠前的一个。据我所知,apt的策略与此类似,yum不详。
smart中对镜像的管理是完全并行的。正如我在Part I中介绍的那样,smart的软件仓库叫做channel。通常情况下,Mandriva的channel有两个:main和contrib。也就是:
$ smart channel --show
[mainpri]
type = urpmi
baseurl = http://carroll.cac.psu.edu/pub/linux/distributions/mandrakelinux/devel/cooker/i586/media/main
hdlurl = http://carroll.cac.psu.edu/pub/linux/distributions/mandrakelinux/devel/cooker/i586/media/main/media_info/synthesis.hdlist.cz
[contribpri]
type = urpmi
baseurl = http://carroll.cac.psu.edu/pub/linux/distributions/mandrakelinux/devel/cooker/i586/media/contrib
hdlurl = http://carroll.cac.psu.edu/pub/linux/distributions/mandrakelinux/devel/cooker/i586/media/contrib/media_info/synthesis.hdlist.cz
实际上,在全球的各个服务器上存放了Mandriva Linux的镜像,而这些镜像的目录结构都是完全相同的。为了将同样软件仓库的镜像纳入smart的考虑,我们要将所有镜像对应的URL添加到smart的mirror里:
# smart mirror --add \
http://carroll.cac.psu.edu/pub/linux/distributions/mandrakelinux/ \
http://mirror.averse.net/pub/Mandrakelinux/
这条命令的意思是说,carroll和mirror这两台服务器在指定目录以下的目录结构中完全相同。类似的,我们可以添加多个mirror:
$ smart mirror --show
http://carroll.cac.psu.edu/pub/linux/distributions/mandrakelinux/
http://mirror.averse.net/pub/Mandrakelinux/
http://ftp.sunet.se/pub/os/Linux/distributions/mandrakelinux/
http://carroll.cac.psu.edu/pub/linux/distributions/mandrakelinux/devel/cooker/i586
ftp://cooker@mirror.mandrakelinux.cn/i586相信大家可以看到,mirror的功能是不区分协议的,这意味着你可以将本地目录添加为网上仓库的mirror。而smart在进行mirror查找的时候,只会进行模式匹配的字符串替换。
在你设置了多个mirror之后,smart在进行大量更新的时候,会尝试同时下载多个文件。至于是从多个服务器同时下载,还是从一个服务器多线下载,取决于你设置了多少个mirror。我来举一个例子
$ smart query OpenOffice.org-l10n-zh_CN --show-requires
OpenOffice.org-l10n-zh_CN-1:1.1.5-0.rc4.2mdk@i586
Requires:
OpenOffice.org = 1:1.1.5
fonts-ttf-gb2312
locales-zh
myspell-dictionary我们可以看到,这个软件包有四个依赖关系。那么按照我们上面的设置,如果你是在cooker中安装这个软件包,就可以匹配包括mirror.mandrakelinux.cn在内的四台服务器;如果你要在2005 official中安装,由于cooker@mirror.mandrakelinux.cn只能与/devel/cooker/i586匹配,无法匹配/official/10.2/i586/media/main/这个路径,所以只能从前三台服务器中下载。当然,实际从哪台服务器上下载,也取决于smart历史中对每个镜像记录的成功次数和速度。比如在我这里,虽然添加了ftp.sunet.se这个服务器,但由于这个服务器太慢,我历次下载的时候smart都没有考虑过它。
Showing posts 1 -
3 of
4.