+ -
当前位置:首页 → 问答吧 → SLK的更新方案(swaret+lftp+cron)

SLK的更新方案(swaret+lftp+cron)

时间:2005-09-03

来源:互联网

在SLK10.2即将放出之际写下这片文章为不准备重新安装系统的朋友提供一个选择方案。

目的:

紧跟SLK站点更新,定期同步SLK的current目录,为系统安装维护提供稳定的软件包资源。

实现方法:

1、使用lftp镜像功能同步slackware-current目录。

建议把镜像目录放在非根分区所在磁盘分区挂载的目录下,而且最好该分区是ext2/3(自行编译的
grub引导slk的安装程序访问reiserfs分区在我的机器上没问题),以保持对grub等系统引导程序
的最佳兼容。比如根分区在hda1,另有hda5等等……可以把hda5分区(大于2G就足够了)挂载
到一个root用户才能访问的目录下,这里假设为/mnt/hd。

(1)、建立工作目录
PHP 代码:
# mkdir /mnt/hd/slackware/slackware-current
# touch /mnt/hd/slackware/lftp-mirror
# cd /mnt/hd/slackware
# chmod +x lftp-mirror 
(2)、编辑lftp-mirror脚本,写入以下内容:
PHP 代码:
#!/bin/sh
cd /mnt/hd/slackware/slackware-current
/usr/bin/lftp slackware.mirrors.tds.net:/pub/slackware/slackware-current/ -e ' \
get -c BOOTING.TXT && \
get -c CHECKSUMS.md5 && \
get -c CHECKSUMS.md5.asc && \
get -c COPYING && \
get -c COPYRIGHT.TXT && \
get -c CRYPTO_NOTICE.TXT && \
get -c CURRENT.WARNING && \
get -c ChangeLog.txt && \
get -c FAQ.TXT && \
get -c FILELIST.TXT && \
get -c GPG-KEY && \
get -c PACKAGES.TXT && \
get -c README.NPTL && \
get -c SPEAKUP_DOCS.TXT && \
get -c SPEAK_INSTALL.TXT && \
get -c Slackware-HOWTO && \
get -c UPGRADE.TXT && \
mirror -c --parallel=2 --delete --verbose extra && \
mirror -c --parallel=2 --delete --verbose isolinux && \
mirror -c --parallel=2 --delete --verbose kernels && \
mirror -c --parallel=2 --delete --verbose rootdisks && \
mirror -c --parallel=2 --delete --verbose slackware && \
mirror -c --parallel=2 --delete --verbose testing && \
quit' 
(3)、手工执行lftp-mirror就可以进行与slackware镜像站点之间的current目录同步。
经实验以上脚本可以解决过时的旧文件的删除问题,不会遗留垃圾文件。

2、cron定期执行lftp镜像脚本。

假定每周一三五的晚11点执行同步。
PHP 代码:
# cd /mnt/hd/slackware
# touch current-mirror.cron
# echo '00 23 * * 1,3,5 /mnt/hd/slackware/lftp-mirror'>current-mirror.cron
# crontab current-mirror.cron 
3、swaret配置文件中更新源指向本地文件目录。

在/etc/swaret.conf中加入以下源:
ROOT=file:/mnt/hd/slackware/slackware-current
并注销掉目前使用的源。
如果网络条件允许最好保留到sourceforge进行依赖关系检验的选项:
DEP_ROOT=http://swaret.sourceforge.net
这样以后执行swaret就可以方便的使用本机的安装源了,同样可以作为局域网内的其它机器的slk网络安装源。

作者: longwu9t   发布时间: 2005-09-03

不错。用slapt-get也可以吧?支持原创--建议加精。

作者: fei   发布时间: 2005-09-03

请问如何排除不必要的文件夹,如kde?

作者: dreamawake   发布时间: 2005-09-25

引用:
作者: dreamawake
请问如何排除不必要的文件夹,如kde?
如果只是使用lftp的mirror功能的话,只能把mirror定位到slackware这个目录了。
先手工在slackware-current目录下建立slackware目录,修改下载脚本
lcd ……/slackware
get ……
mirror ……(剔除kde等)
我实在想不出什么更好的主意了。

作者: 醉卧美人膝   发布时间: 2005-09-26

:(我现在也是这样的,不过写多很多代码,而且也有一些缺点。

作者: dreamawake   发布时间: 2005-09-26