|
|
第1行: |
第1行: |
− | | + | #REDIRECT[[UbuntuHelp:AptMoveHowto/zh]] |
− | == 使用 apt-move 创建软件库光盘 ==
| + | |
− | | + | |
− | 原文出处:https://help.ubuntu.com/community/AptMoveHowto
| + | |
− | | + | |
− | 原文作者:周正(ZhouZheng)
| + | |
− | | + | |
− | 授权许可:
| + | |
− | * [http://creativecommons.org/licenses/by-sa/2.0/ 创作共用协议Attribution-ShareAlike 2.0]
| + | |
− | * [http://www.gnu.org/copyleft/fdl.html GNU自由文档许可证]
| + | |
− | | + | |
− | 翻译人员:周正(ZhouZheng)
| + | |
− | | + | |
− | 校正人员:
| + | |
− | | + | |
− | 贡献人员:
| + | |
− | | + | |
− | 适用版本:Ubuntu 6.06
| + | |
− | 文章状态:[[等待校正]]
| + | |
− | ----
| + | |
− | | + | |
− | | + | |
− | | + | |
− | | + | |
− | For breezy (Ubuntu 5.10) see: [[AptMoveHowto/breezy]]
| + | |
− | | + | |
− | 如果您使用的是breezy (Ubuntu 5.10)请参见: [[AptMoveHowto/breezy]]
| + | |
− | | + | |
− | This page will describe how to make a cd which contains packages you have downloaded on one machine using apt or synaptic. The cd will be a repository that you can easily use on another machine using synaptic or apt-cdrom.
| + | |
− | | + | |
− | 本文将描述如何刻录一张带使用apt或synaptic下载的软件包的CD光盘。这张CD光盘将会是一张可以直接为其它机器的synaptic或apt-cdrom所用的软件仓库。
| + | |
− | | + | |
− | For example, I will show how to make a cd which contains all the security updates that has been downloaded.
| + | |
− | | + | |
− | 例如,我将演示如何制作一张包含所有以下载的安全升级的CD光盘。
| + | |
− | | + | |
− | Except for adding new apt PGP keys, the user of the cd will not need to use the command-line to use it.
| + | |
− | | + | |
− | 除了添加新的apt PGP keys以外,这张CD光盘的使用者将无需做任何的命令行操作。
| + | |
− | | + | |
− | === Step 1: Install the apt-move package(安装apt-move软件包) ===
| + | |
− | | + | |
− | Apt-move is a tool for creating a debian package repository file structure out of packages that have been downloaded to /var/cache/apt/archives. Installed packages are downloded there by apt for installation. Apt-move will create this local repository in /mirrors/debian, by default.
| + | |
− | | + | |
− | Apt-move是一个专为已下载到/var/cache/apt/archives的软件包生成debian软件包仓库文件结构的工具。 为了便于安装,apt会将已安装的软件包下载到本地。 Apt-move将默认在/mirrors/debian中生成这个本地仓库。
| + | |
− | | + | |
− | <pre><nowiki>
| + | |
− | sudo aptitude install apt-move
| + | |
− | </nowiki></pre>
| + | |
− | | + | |
− | (Or just use synaptic) You need to enable the universe repository. See AddingRepositoriesHowto
| + | |
− | | + | |
− | (或者使用synaptic) 你需要激活universe仓库。参见AddingRepositoriesHowto
| + | |
− | | + | |
− | I change the setting in /etc/apt-move.conf from
| + | |
− | | + | |
− | 我将/etc/apt-move.conf中的设置从
| + | |
− | <pre><nowiki>
| + | |
− | COPYONLY=no
| + | |
− | </nowiki></pre>
| + | |
− | to
| + | |
− | 变为
| + | |
− | <pre><nowiki>
| + | |
− | COPYONLY=yes
| + | |
− | </nowiki></pre>
| + | |
− | So that apt-move doesn't delete file from your /var/cache/apt/archives/.
| + | |
− | | + | |
− | 以便apt-move不会删除/var/cache/apt/archives/中的软件包。
| + | |
− | | + | |
− | | + | |
− | === Step 2: Select the packages you want to put on the cd(选择您要刻录到CD上的软件包) ===
| + | |
− | | + | |
− | In this example, we only want to put freshly downloaded packages. We don't want to put old packages or packages that exist in Ubuntu CD.
| + | |
− | | + | |
− | 在这个实例中,我们仅希望刻录下载的最新的软件包。我们不想刻录旧的或Ubuntu CD上已存在的软件包。
| + | |
− | | + | |
− | First, we clean up the /var/cache/apt/archives from old packages.
| + | |
− | | + | |
− | 首先,我们清除/var/cache/apt/archives 中旧的软件包。
| + | |
− | <pre><nowiki>
| + | |
− | sudo aptitude autoclean
| + | |
− | </nowiki></pre>
| + | |
− | | + | |
− | === Step 3: Run apt move to create the archive structure(运行apt move创建文档结构) ===
| + | |
− | | + | |
− | Make sure you have enough disk space first.
| + | |
− | | + | |
− | 首先确定你有足够的硬盘空间。
| + | |
− | | + | |
− | Because /mirrors/debian is root owned we must become root to make the steps easier.
| + | |
− | | + | |
− | 由于/mirrors/debian归root所有,我们必须使用root账户,以便于这一步的操作
| + | |
− | <pre><nowiki>
| + | |
− | sudo -s
| + | |
− | </nowiki></pre>
| + | |
− | | + | |
− | All the following command run as root.
| + | |
− | | + | |
− | 下面的所有命令均以root身份运行。
| + | |
− | | + | |
− | First we clean-up previous mirrors (if exists) then we run apt-move.
| + | |
− | | + | |
− | 先我们清空先前的镜像(如果存在的话),然后我的运行apt-move。
| + | |
− | <pre><nowiki>
| + | |
− | rm -rf /mirrors/debian
| + | |
− | apt-move -d dapper update
| + | |
− | </nowiki></pre>
| + | |
− | | + | |
− | Because ubuntu repository structure, not all packages are inserted into the Packages.gz file by apt-move. We must remake Packages.gz with the help of apt-ftparchive.
| + | |
− | | + | |
− | 由于ubuntu的仓库结构,apt-move并不是把所有的软件包都插入到Packages.gz文件中。我们必须在apt-ftparchive的帮助下重新制作Packages.gz。
| + | |
− | | + | |
− | <pre><nowiki>
| + | |
− | 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
| + | |
− | </nowiki></pre>
| + | |
− | | + | |
− | We must also remake Release file, to do this we must make an apt configuration file named ~/myapt.conf it contents is like this
| + | |
− | | + | |
− | 我们还必须重新制作Release文件。为了做到这一点,我们必须制作一个名为 ~/myapt.conf的apt配置文件。它的内容如下:
| + | |
− | <pre><nowiki>
| + | |
− | APT::FTPArchive::Release {
| + | |
− | Origin "APT-Move";
| + | |
− | Label "APT-Move";
| + | |
− | Suite "dapper";
| + | |
− | Codename "dapper";
| + | |
− | Architectures "i386";
| + | |
− | Components "main restricted";
| + | |
− | Description "Ubuntu Updates CD";
| + | |
− | };
| + | |
− | </nowiki></pre>
| + | |
− | | + | |
− | Next, run the following commands:
| + | |
− | | + | |
− | 然后,运行以下命令:
| + | |
− | <pre><nowiki>
| + | |
− | rm dists/dapper/Release
| + | |
− | apt-ftparchive -c ~/myapt.conf release dists/dapper/ > Release
| + | |
− | mv Release dists/dapper/
| + | |
− | </nowiki></pre>
| + | |
− | | + | |
− | Then we need to make Release.gpg, to make it you must already have your [[GPGKey]] set and ready to sign.
| + | |
− | | + | |
− | 现在,我们必要制作Release.gpg,为了做到这一点,你必须已经激活你的 [[GPGKey]] ,并已经开始签名。
| + | |
− | | + | |
− | <pre><nowiki>
| + | |
− | gpg -bao dists/dapper/Release.gpg dists/dapper/Release
| + | |
− | </nowiki></pre>
| + | |
− | | + | |
− | Next, we delete unwanted .apt-move directory
| + | |
− | | + | |
− | 接下来,我们删除不想要的.apt-move目录
| + | |
− | <pre><nowiki>
| + | |
− | rm -rf .apt-move
| + | |
− | </nowiki></pre>
| + | |
− | | + | |
− | You can identify the cd by making a .disk directory and making an info file in it.
| + | |
− | | + | |
− | 你可以通过在CD上制作一个.disk目录和一个info文件来标识这个CD光盘。
| + | |
− | | + | |
− | <pre><nowiki>
| + | |
− | mkdir .disk
| + | |
− | echo Ubuntu-Updates `date +%Y-%m-%d` > .disk/info
| + | |
− | </nowiki></pre>
| + | |
− | | + | |
− | Then we need to put our public keys in it.
| + | |
− | | + | |
− | 然后,我们必要将我们的公钥放进去。
| + | |
− | <pre><nowiki>
| + | |
− | gpg --export -a "Your Name" > public.key
| + | |
− | </nowiki></pre>
| + | |
− | | + | |
− | Offcourse change Your Name with the name that you use in your PGP.
| + | |
− | | + | |
− | 当然,要把"Your Name"换成你在自己的PGP中使用的名字。
| + | |
− | | + | |
− | Thats' all
| + | |
− | | + | |
− | 这样就完成了!
| + | |
− | | + | |
− | <pre><nowiki>
| + | |
− | exit
| + | |
− | </nowiki></pre>
| + | |
− | | + | |
− | == Step 4: Burn the cd(刻录 CD 光盘) ==
| + | |
− | | + | |
− | Copy the contents of what is contained in /mirrors/debian to a cd.
| + | |
− | | + | |
− | 复制/mirrors/debian中所有的内容到CD光盘上。
| + | |
− | | + | |
− | For example you could make an iso by following command:
| + | |
− | | + | |
− | 例如,你可以使用下列的命令来制作一个iso文件:
| + | |
− | <pre><nowiki>
| + | |
− | mkisofs -r -A "Ubuntu Updates `date +%Y%m%d`" -o ubuntu-updates.iso \
| + | |
− | /mirrors/debian
| + | |
− | </nowiki></pre>
| + | |
− | | + | |
− | Before you could use the CD, you need to add our GPG key to apt GPG keys. Put the CD on CD-ROM Drive, mount it (if it not automatically mounted) then run the following:
| + | |
− | | + | |
− | 在你使用这张CD前,你需要将我们的GPG key添加到apt GPG keys中去。将这张CD放入CD-ROM驱动器,挂载它(如果它不能自动挂载的话) ,然后运行如下命令:
| + | |
− | | + | |
− | <pre><nowiki>
| + | |
− | apt-key add /cdrom/public.key
| + | |
− | </nowiki></pre>
| + | |
− | | + | |
− | Then you could use the CD like any other Ubuntu CD.
| + | |
− | | + | |
− | 此时,你就可以像其它的Ubuntu CD那样使用这张CD了。
| + | |
− | | + | |
− | On a non-networked ubuntu machine, you can run synaptic, insert the cd and go into Synaptic -> Edit -> Add Cdrom and it will add the contents of the cd to your repositories.
| + | |
− | | + | |
− | 在一台未联网的ubuntu机器上,我可以运行synaptic,插入CD,并进入Synaptic -> 编辑 -> 添加Cdrom。它会将这张CD的内容添加到你的仓库中。
| + | |
− | | + | |
− | You can also do it from the command-line with
| + | |
− | | + | |
− | 你也可以通过命令行方式来做到这一点:
| + | |
− | | + | |
− | <pre><nowiki>
| + | |
− | sudo apt-cdrom add
| + | |
− | </nowiki></pre>
| + | |
− | | + | |
− | ----
| + | |
− | [[category:CategoryCleanup]]
| + | |