背景:
虽然apt-get的确强大,可是不是每个人的网速都足够和本地光盘或硬盘那么快。所以本地源似乎很不错。当然我们无需把整个发行版的源全部备份,我只想要和我现在用的系统一样的软件库。这正是你想要的。一张光盘或是一个iso文件。
正文:
本文将描述如何刻录一张带使用apt下载的软件包的CD光盘。也就是本地源
例如,我将演示如何制作一张包含所有以下载的安全升级的CD光盘。
目录
* 1 Step 1: Install the apt-move package(安装apt-move软件包)
* 2 Step 2: Select the packages you want to put on the cd(选择您要刻录到CD上的软件包)
* 3 Step 3: Run apt move to create the archive structure(运行apt move创建文档结构)
* 4 Step 4: Burn the cd(刻录 CD 光盘)
Step 1: Install the apt-move package(安装apt-move软件包)
Apt-move是一个专为已下载到/var/cache/apt/archives的软件包生成debian软件包仓库文件结构的工具。为了便于安装,apt会将已安装的软件包下载到本地。 Apt-move将默认在/mirrors/debian中生成这个本地仓库。
sudo apt-get install apt-move
我将/etc/apt-move.conf中的设置从
COPYONLY=no
to 变为
COPYONLY=yes
以便apt-move不会删除/var/cache/apt/archives/中的软件包。
Step 2: Select the packages you want to put on the cd(选择您要刻录到CD上的软件包)
在这个实例中,我们仅希望刻录下载的最新的软件包。我们不想刻录旧的或Ubuntu CD上已存在的软件包。
首先,我们清除/var/cache/apt/archives 中旧的软件包(只保留系统中现在安装了的软件)。
sudo apt-get autoclean
Step 3: Run apt move to create the archive structure(运行apt move创建文档结构)
首先确定你有足够的硬盘空间。
由于/mirrors/debian归root所有,我们必须使用root账户,以便于这一步的操作
sudo -s
下面的所有命令均以root身份运行。
先我们清空先前的镜像(如果存在的话),然后我的运行apt-move。
mkdir -p /mirrors/debian
rm -rf /mirrors/debian
apt-move -d dapper update /*intrepid 是系统版本名:如8.10 intrepid. 在加入源时用到*/
由于ubuntu的仓库结构,apt-move并不是把所有的软件包都插入到Packages.gz文件中。我们必须在apt-ftparchive的帮助下重新制作Packages.gz。
cd /mirrors/debian
apt-ftparchive packages pool/main/ | gzip -9c > dists/dapper/main/binary-i386/Packages.gz
apt-ftparchive packages pool/restricted/ | gzip -9c > dists/dapper/restricted/binary-i386/Packages.gz /*有可能没有restricted目录,那就可以不做*/
我们还必须重新制作Release文件。为了做到这一点,我们必须制作一个名为 ~/myapt.conf的apt配置文件。它的内容如下:
APT::FTPArchive::Release {
Origin "APT-Move";
Label "APT-Move";
Suite "dapper";
Codename "dapper";
Architectures "i386";
Components "main restricted";
Description "Ubuntu Updates CD";
};
然后,运行以下命令:
rm dists/dapper/Release
apt-ftparchive -c ~/myapt.conf release dists/dapper/ > Release
mv Release dists/dapper/
//////////////////////////////////////////////
现在,我们必要制作Release.gpg,为了做到这一点,你必须已经激活你的 UbuntuHelp:GPGKey ,并已经开始签名。
gpg -bao dists/dapper/Release.gpg dists/dapper/Release
////////////////////////////////////////////// /*没有成功,也可以不做,没必要加密,那后面的密钥也不需要了*/
接下来,我们删除不想要的.apt-move目录
rm -rf .apt-move
你可以通过在CD上制作一个.disk目录和一个info文件来标识这个CD光盘。
mkdir .disk
echo Ubuntu-Updates `date +%Y-%m-%d` > .disk/info
//////////////////////////////////////////////
然后,我们必要将我们的公钥放进去。
gpg --export -a "Your Name" > public.key
当然,要把"Your Name"换成你在自己的PGP中使用的名字。
////////////////////////////////////////////// /*不做*/
这样就完成了!
exit
Step 4: Burn the cd(刻录 CD 光盘)
复制/mirrors/debian中所有的内容到CD光盘上。
例如,你可以使用下列的命令来制作一个iso文件:
mkisofs -r -A "Ubuntu Updates `date +%Y%m%d`" -o ubuntu-updates.iso /mirrors/debian
//////////////////////////////////////////////
在你使用这张CD前,你需要将我们的GPG key添加到apt GPG keys中去。将这张CD放入CD-ROM驱动器,挂载它(如果它不能自动挂载的话) ,然后运行如下命令:
apt-key add /cdrom/public.key
////////////////////////////////////////////// /*不做*/
此时,你就可以像其它的Ubuntu CD那样使用这张CD了。
你也可以通过命令行方式来做到这一点:
sudo apt-cdrom add
你还可以先挂载iso文件,然后添加file源
sudo mount ubuntu-updates.iso /media/house
添加
deb file:///media/house dapper main
到/etc/sources.list
然后呢?
...........................
apt-get update 还有其他命令,随便你。
阅读(3273) | 评论(1) | 转发(0) |