1.Ubuntu 9.04下通常apt-get 或新立得安装软件时下载的deb包都会存放在/var/cache/apt/archives/下。将其cp到目标目录,如:
$sudo cp /var/cache/apt/archives/*.deb /media/TOOL_BACKUP/Ubuntu9.04
2.进入Ubuntu9.04目录的上一级目录,即: /media/TOOL_BACKUP
$cd /media/TOOL_BACKUP
3.运行如下命令:
$sudo dpkg-scanpackages Ubuntu9.04 /dev/null |gzip >Ubuntu9.04/Packages.gz
如果dpkg-scanpackages无法运行,则需安装dpkg-dev.
4.在/etc/apt/sources.list中添加源:
$deb file:///media/TOOL_BACKUP/Ubuntu9.04 /
注意/Ubuntu9.04后面有一个空格斜杠。
5.如果安装了apache2将源对外开放,方法如下:
$sudo ln -s /media/TOOL_BACKUP/Ubuntu9.04 /var/www/ubuntu-local
$gksu gedit /etc/apt/sources.list
把 deb http://127.0.0.1/ubuntu-local / 加入源中
网上其它电脑修改源时,要把127.0.0.1改为你的ip地址或域名
6.手动备份软件包时却常常会出现另外一个问题,http://ubuntuone.cn即新旧软件包的重复。将他们放在同一个备份文件夹,不仅浪费磁盘空间,而且在用 dpkg-scanpackages生成本地源的时候还会产生大量烦人的警告信息。以下脚本,update之后执行,可自动实现软件包备份、陈旧包删除、新软件添加进本地源这的工作。
#! /bin/sh
SOURCE=/var/cache/apt/archives
DEST=/media/TOOL_BOCKUP/Ubuntu9.04/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 Ubuntu9.04 /dev/null |gzip >Ubuntu9.04/Packages.gz