|
Smart 实用教程
By:dyhml
转载请注明原帖地址
注意:
1.本文假定读者知道Smart是干什么的
2.本文只介绍Smart的命令行界面
3.实用就是说,本文将以 脚本+注释 的形式写出,可以另存为脚本直接(或稍加修改后)使用
4.所有脚本在作者的机器( Mandriva2006 )上验证通过,如有问题,请自行解决
第一部分:初始化
安装smart,添加本地channel,添加网络channel,添加网络镜像
1.加载本地channel
硬盘上有iso文件,则用如下脚本加载到文件系统
脚本一:mount-isos
- #!/bin/sh
- mount /mnt/hda8/bt/MandrivaLinux2006/Mandriva-Linux-Extra-Plugins-2006-CD.i586.iso /tmp/isos/mdv2006extra -t iso9660 -o loop
- mount /mnt/hda8/bt/MandrivaLinux2006/Mandriva-Linux-Free-2006-CD1.i586.iso /tmp/isos/mdv2006cd1 -t iso9660 -o loop
- mount /mnt/hda8/bt/MandrivaLinux2006/Mandriva-Linux-Free-2006-CD2.i586.iso /tmp/isos/mdv2006cd2 -t iso9660 -o loop
- mount /mnt/hda8/bt/MandrivaLinux2006/Mandriva-Linux-Free-2006-CD3.i586.iso /tmp/isos/mdv2006cd3 -t iso9660 -o loop
复制代码
完成工作后,可用此脚本卸载
脚本二:umount-isos
- #!/bin/sh
- umount /tmp/isos/mdv2006cd1
- umount /tmp/isos/mdv2006cd2
- umount /tmp/isos/mdv2006cd3
- umount /tmp/isos/mdv2006extra
复制代码
对于只有cd的人,只须
mount /dev/cdrom
即可加载.但本文中提到的源位置(/tmp/isos/mdv2006*),须替换为cd的加载点,一般为/mnt/cdrom.另,可能需要多次换盘,脚本可能出错.
smart的rpm包在CD3 内,如没有安装:
rpm -ivh /tmp/isos/mdv2006cd3/media/main3/smart-0.39-2mdk.i586.rpm
2.添加本地channel
脚本三:add-smart-local
- #!/bin/sh
- #将名为main-local,类型是urpmi,的软件源(cd1)加入smart,将使用hdlist(详细的软件包列表)
- smart channel --add main-local type=urpmi baseurl=file:///tmp/isos/mdv2006cd1/media/main hdlurl=../media_info/hdlist1.cz
- #cd2,和cd3其中没有hdlist,使用cd1中对应的
- smart channel --add main2-local type=urpmi baseurl=file:///tmp/isos/mdv2006cd2/media/main2 hdlurl=../../../mdv2006cd1/media/media_info/hdlist2.cz
- smart channel --add main3-local type=urpmi baseurl=file:///tmp/isos/mdv2006cd3/media/main3 hdlurl=../../../mdv2006cd1/media/media_info/hdlist3.cz
- #如果只有cd,将不能使用cd1中的hdlist,只能使用自带的synthesis.hdlist.cz,比hdlist缺少每个包的文件列表和changelog
- #smart channel --add main2-local type=urpmi baseurl=file:///mnt/cdrom/media/main2 hdlurl=media_info/synthesis.hdlist.cz
- #smart channel --add main3-local type=urpmi baseurl=file:///mnt/cdrom/media/main3 hdlurl=media_info/synthesis.hdlist.cz
- #extra cd 中有5个源
- smart channel --add extra-main type=urpmi baseurl=file:///tmp/isos/mdv2006extra/media/main hdlurl=../media_info/hdlist1s.cz
- smart channel --add extra-firmwares type=urpmi baseurl=file:///tmp/isos/mdv2006extra/media/firmwares hdlurl=../media_info/hdlist2s.cz
- smart channel --add extra-modules type=urpmi baseurl=file:///tmp/isos/mdv2006extra/media/modules hdlurl=../media_info/hdlist3s.cz
- smart channel --add extra-dkms type=urpmi baseurl=file:///tmp/isos/mdv2006extra/media/dkms hdlurl=../media_info/hdlist4s.cz
- smart channel --add extra-plugins type=urpmi baseurl=file:///tmp/isos/mdv2006extra/media/plugins hdlurl=../media_info/hdlist5s.cz
复制代码
3.添加网络源
添加Mandriva标准的main,contrib,jpackage,updates这四个源使用台湾的服务器
添加plf-free和plf-nonfree,使用新加坡的服务器
一般,这两个服务器对大陆的公网用户比较快
脚本四:add-smart-net
- #!/bin/sh
- #因为是网络传输,使用了较小的synthesis.hdlist,缺点就是不能查看没有安装的包的文件列表和changelog
- smart channel --add plf-free type=urpmi baseurl=ftp://plf.acnova.com/pub/linux/plf/mandrake/free/2006.0 hdlurl=synthesis.hdlist.cz
- smart channel --add plf-nonfree type=urpmi baseurl=ftp://plf.acnova.com/pub/linux/plf/mandrake/non-free/2006.0 hdlurl=synthesis.hdlist.cz
- smart channel --add updates type=urpmi baseurl=ftp://mdk.linux.org.tw/pub/mandrakelinux/official/updates/2006.0/main_updates/ hdlurl=media_info/synthesis.hdlist.cz
- smart channel --add main type=urpmi baseurl=ftp://mdk.linux.org.tw/pub/mandrakelinux/official/2006.0/i586/media/main hdlurl=media_info/synthesis.hdlist.cz
- smart channel --add contrib type=urpmi baseurl=ftp://mdk.linux.org.tw/pub/mandrakelinux/official/2006.0/i586/media/contrib hdlurl=media_info/synthesis.hdlist.cz
- smart channel --add jpackage type=urpmi baseurl=ftp://mdk.linux.org.tw/pub/mandrakelinux/official/2006.0/i586/media/jpackage hdlurl=media_info/synthesis.hdlist.cz
复制代码
完成后,运行此命令查看channel,检查是否所有channel都已加入
smart channel --show
4.添加镜像
脚本五:add-smart-mirror
- #!/bin/sh
- #对教育网用户,mirror.mandrakelinux.cn是很快的.但对公网可能很慢,很慢就不要加
- smart mirror --add ftp://plf.acnova.com/pub/linux/plf/ ftp://cooker@mirror.mandrakelinux.cn/plf/
- smart mirror --add ftp://mdk.linux.org.tw/pub/mandrakelinux/ ftp://mirror.mandrakelinux.cn/FreeOS/MandrivaLinux/
- #公网,还有这个镜像较快
- smart mirror --add ftp://mdk.linux.org.tw/pub/mandrakelinux/ http://ftp.ale.org/pub/mirrors/mandrake/
- #以下命令应该可以一下子添加大量的镜像,但本人实验没有报错,但也没有成功,如有成功者,请报告一下
- smart mirror --add http://www.mandrivausers.org/easyurpmi/mirror.list/plf.list
- smart mirror --add http://www.mandrivausers.org/easyurpmi/mirror.list/2006.official.list
复制代码
完成后,运行此命令查看镜像
smart mirror --show
5.注意,镜像并不是越多越好.
在下载多个文件时,smart将会多线程,从各个镜像同时下载文件.但是,每一个文件都只有一个镜像,一个线程.
所以,会出现这种情况,这是本人真实经历的:
同时下载10个文件,
有一个文件(600k)分配给了较慢的镜像(1k/s),10分钟
其他镜像很快(50k/s)下载完了其他9个文件(15M),5分钟
smart和flashget是不同的,flashget是镜像越多越好,flashget是每个文件都多线程多镜像的.
所以,慢的镜像一定要删除,不要有太多的镜像,最好channel中的url是最快的,如果没有快的镜像,就不用.
删除镜像:
smart mirror --remove ftp://mdk.linux.org.tw/pub/mandrakelinux/ ftp://mirror.mandrakelinux.cn/FreeOS/MandrivaLinux/ |
|