[apt同步问题]apt-mirror: can’t chdir to skel at /usr/bin/apt-mirror line 313.
Posted in linux on 09/26/2009 02:01 下午 by tunpishuang
突然想搞一个ubuntu的套件库(repository)。最近常使用ubuntu,系统安装完后的那些安全升级和一般包的升级需要700MB左右,我们学校上网费用按照流量计算,所以打算做一个本地的apt server,需要一个apt-mirror的工具来同步同步apt server上的文件。做好了拿出来共享给大家那就牛逼啦。
大三上学期的课程1个星期6节,就两科。机房上网是不需要流量的,上机课的时候跑到机房最后一排在移动硬盘上下载安装cygwin(啥是 cygwin?Cygwin is a Linux-like environment for Windows. It consists of two parts:
|
|
)。
本校有个老师做了一个cygwin的套件库镜像:http://cygwin.mirrors.cqit.edu.cn/ 安装的时候选择All->Install 全部安装,下载800MB,安装后解压出来3.75 GB。
具体方法:
1.到官方下载cygwin , http://www.cygwin.com/ 文件大小不超过1MB
2.下载后运行,选择“install from internet”
3.下一步 ,Root Direcotry是安装后的cygwin的根目录,我指定到位置J:\cygwin
4.下一步 ,选择包下载到本地硬盘的位置,我制定到位置J:\cygwin_pkgs
5.下一步,根据需要选择网络连接方式
6.下一步,会在cygwin.com下载mirrors.lst是cygwin软件包服务器列表
7.下一步,输入http://cygwin.mirrors.cqit.edu.cn/ 点“Add”
8.下一步,会下载setup.bz2,这个文件是这个软件包服务器上所提供的软件包列表
9.下一步,选择需要安装的软件包,避免手动安装麻烦,我全部安装上了,点All->Install
10.然后是漫长的下载,安装,运行配置的过程。
11.打开cygwin , 运行apt-mirror直接弹出错误:apt-mirror: can’t chdir to skel at /usr/bin/apt-mirror line 313. 我猜想可能是配置文件没有配置好。
12.修改配置文件/etc/apt/mirror.list :
# apt-mirror configuration file
##
## The default configuration options (uncomment and change to override)
##
#取消以下内容前面的#
set base_path /var/spool/apt-mirror
set mirror_path $base_path/mirror
set skel_path $base_path/skel
set var_path $base_path/var
set defaultarch amd64
set nthreads 20
##
## Example sources
##我改成了ubuntu karmic 的源
deb http://tw.archive.ubuntu.com/ubuntu karmic main universe restricted multiverse
deb http://tw.archive.ubuntu.com/ubuntu karmic-updates universe main multiverse restricted
deb http://tw.archive.ubuntu.com/ubuntu karmic-proposed universe main multiverse restricted
deb http://tw.archive.ubuntu.com/ubuntu karmic-security universe main multiverse restricted
deb http://tw.archive.ubuntu.com/ubuntu karmic-backports main multiverse restricted universe
##
## Cleaner configuration example
##
#
# set cleanscript $var_path/clean.sh
#需要清理的url
# Cleaning section
clean http://tw.archive.ubuntu.com/ubuntu
13.运行apt-mirror出现错误:apt-mirror: can’t chdir to skel at /usr/bin/apt-mirror line 313.
打开apt-mirror文件,定位到313行:
chdir get_variable(“skel_path”) or die(“apt-mirror: can’t chdir to skel”);
这是一个perl脚本,出现错误的原因是chdir get_variable(“skel_path”)这个命令没有执行成功,skel_path这个变量是在mirror.list文件中定义了的,发现目录是:/var/spool/apt-mirror/ 还有其他几个目录,所以执行以下命令:
mkdir -p /var/spool/apt-mirror/mirror
mkdir -p /var/spool/apt-mirror/var
mkdir -p /var/spool/apt-mirror/skel
继续运行apt-mirror成功,接下来就是漫长的下载过程,需要寂寞的等待。因为mirror.list有这么一句:set defaultarch amd64,所以只会下载amd64构架的包,可以节约不少空间和时间。











+



