注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

心情挺好的博客

正在等你光临呢 呵呵

 
 
 

日志

 
 
关于我

喜欢摄影的朋友看过来:) 有时间就跟我一起去拍照去吧. QQ272751 上海圣玛丽摄影化妆培训学校 16年专业摄影培训化妆培训学校 电话:15900513500。 http://www.smlsh.com

网易考拉推荐

Ubuntu自动备份软件包和制作本地源  

2009-01-12 02:07:36|  分类: 技术 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
2008年11月16日 星期日 下午 11:41
http://hi.baidu.com/jcxz/blog/item/bcbdaa350e23e81691ef3981.html

Ubuntu之所以成为众多Linux发行版里面最受欢迎的版本之一,除了可以免费申请安装光盘以外,另外一个影响很大的原因在于:软件丰富、速度快。比 如想要安装媒体播放器mplayer,确保联网以后只要一个命令:apt-get install mplayer以后,所有的工作(解决依赖关系,下载和安装软件等等)计算机都会自动进行;系统有了更新以后,只要输入:apt-get dist-upgrade就可以全面更新系统。这种“类傻瓜(真正傻瓜的是Window$,但它的“傻”和Linux的又有明显不同,不多讨论)似的”安 装和升级方法给用户带来了极大的方便。

但伴随这种方便的软件安装和升级而来的,是网络的速度和流量问题。比如,在用了很长一段时间以后,某人的机器因为个人操作不当而导致崩溃,那么重装以后想 要执行系统更新,那么很可能会耗费几百兆的流量,即便有些宽带服务提供者并不按照流量计费,但是如果网速不快的话这些更新的下载所耗费的时间也会让人恼 火。又比如,如果一个实验室或者一个局域网内,如果有多个Ubuntu(或者其他的Linux)用户,如果每个人都各自去从外网上安装或者更新软件,这对 网络流量和时间来讲会有很大的浪费。  

解决这一问题的方法其实很简单,就是──备份安装或者更新时候下载的软件包,并添加本地源。这样可以节省很多的流量和时间,尤其是对于网速不高或者对网络 流量有限制的人来讲,好处无疑是很大的。本文分为了两个部分,第一部分讲了如何手动制作和添加本地源;第二部分针对手动方法带来的几个不便进行了修正,给 出了自动解决方案。

一、手动制作和添加本地源     每一次install时系统下载的软件包,包括各个软件所依赖的包都会保存在/var /cache/apt/archives/目录下,选定某一次通过网络安装完自己所常用到的所有软件之后,将该文件夹下的所有文件都复制到一个不常格式化 的分区里面,即可作为以后重装系统时的本地源,具体步骤如下。
1、在某个系统重装时候不会被格式化的磁盘分区下建立一个目录,用于放所有下载的软件包,另外建立一个目录用于存放Packages.gz包,比如我的:
mkdir -p /media/sda7/Backup/Ubuntu/Pakcages
mkdir -p /media/sda7/Backup/Ubuntu/dists/hardy/main/binary-amd64
其中的binary-amd64根据自己的系统类型会有所变化,比如binary-i386等等,根据自己的机器酌情更改。
2、复制文件到前面建立的文件夹下:
sudo cp /var/cache/apt/archives/* /media/sda7/Backup/Ubuntu/Pakcages
3、将建立Packages.gz包,里面记录了packs文件夹下面的软件包信息,包括依赖信息。
dpkg-scanpackages Packages hardy | gzip > dists/hardy/main/binary-amd64/Packages.gz
4、加本地源
sudo gedit /etc/apt/sources.list
加入 deb file:///media/sda7/Backup/Ubuntu/ hardy main ,注意,这里只是我电脑上的路径,请依实际位置修改。如果出错,请按照系统的出错提示进行相应设置。
5、设置完成
完成以上设置和文件复制之后,就可以开始正常使用本地的源了和使用网络上的源一样操作。
sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get install XXX
这样就完成了本地源的手动配置。

二、自动备份软件包和制作本地源
手动备份软件包时却常常会出现另外一个问题,即新旧软件包的重复。比如:原来最初备份的是 kdesktop_4%3a3.5.8-0ubuntu7.3_amd64.deb,现在更新以后有了其更新版 本:kdesktop_4%3a3.5.9-0ubuntu7.3_amd64.deb,将他们放在同一个备份文件夹的话,浪费磁盘空间,而且在用 dpkg-scanpackages生成本地源的时候还会产生大量、烦人的警告信息。当然我们可以手动其删除老板本的包,但如果一次更新了几十几百个包的 话,这个删除工作恐怕就让人为难了。以下是一个脚本,更新完之后执行一下,就可以实现软件包备份、陈旧包删除、新软件添加进本地源这一系列工作,省了不少 事情,嘿嘿。
#! /bin/sh
SOURCE=/var/cache/apt/archives
DEST=/media/sda7/Backup/Ubuntu/Packages
cd $SOURCE
for name in $(ls *.deb);
do
cd $DEST
rm $(dpkg --info $SOURCE/$name | grep Package: | sed 's/Package://')_*
mv $SOURCE/$name $DEST/
cd $SOURCE
done

cd $DEST
cd ..
dpkg-scanpackages Packages hardy | gzip > dists/hardy/main/binary-amd64/Packages.gz
  评论这张
 
阅读(279)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017