您的位置:首页 > 其它

搭建本地ubuntu镜像服务器(arm版)

2016-07-24 16:43 417 查看

搭建本地ubuntu镜像服务器(arm版)

最近由于项目需要,经常从ports.ubuntu.com服务器上面下载ubuntu的镜像文件,但是面对几kB的速度,项目实在是进行不下去了。考虑到后面还要经常用到这些镜像文件,不如自己建了一个服务器。于是乎在阿里云买了一个120G的存储服务器,着手构建自己的ubuntu for armhf 镜像文件服务器。登录服务器之后,apt-get update了一下,十几M/s的网速,终端页面嗖嗖滑动的感觉真是倍儿爽啊。

搭建环境

服务器系统:ubuntu 14.04LTS x86_64,ip为255.255.255.255

目标镜像:ports.ubuntu.com中的armhf镜像文件

搭建步骤

为了创建ubuntu for armhf镜像服务器,好像至少需要90G的空间,因为现在下载完毕之后的总文件大小在80G,开始我也不相信,因为网上都在说x64或者x86的才30G左右,但是事实就是需要80G,可能是armhf版的镜像文件比较多,保存的版本比较多的缘故。这里使用官方网站
ports.ubuntu.com
作为源,因为arm版本的源实在是太少了,还有一个
ftp.ubuntu-tw.org/ubuntu-ports
,但是网速和这个基本上没有区别。

安装必备工具

apt-get install apt-mirror


这是ubuntu系统中用来方便用户批量下载服务器中镜像文件的工具,可以通过修改mirror.list文件来定制其操作,下面将使用该工具。

apt-get install apache2


这是ubuntu中实现服务器功能的软件,将允许别人在网络上通过ip访问指定的文件和内容,我们通过这个工具将这个ip的电脑作为自己日后使用的服务器。

修改配置mirror.list文件

cd /etc/apt
cp mirror.list mirror.list.bak
vi mirror.list


############# config ##################
#
# 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 cleanscript $var_path/clean.sh
# set defaultarch  <running host architecture>
# set postmirror_script $var_path/postmirror.sh
# set run_postmirror 0
set nthreads     20
set _tilde 0
#
############# end config ##############

deb http://archive.ubuntu.com/ubuntu trusty main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu trusty-security main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu trusty-updates main restricted universe multiverse
#deb http://archive.ubuntu.com/ubuntu trusty-proposed main restricted universe multiverse
#deb http://archive.ubuntu.com/ubuntu trusty-backports main restricted universe multiverse

deb-src http://archive.ubuntu.com/ubuntu trusty main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu trusty-security main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu trusty-updates main restricted universe multiverse
#deb-src http://archive.ubuntu.com/ubuntu trusty-proposed main restricted universe multiverse
#deb-src http://archive.ubuntu.com/ubuntu trusty-backports main restricted universe multiverse

clean http://archive.ubuntu.com/ubuntu[/code] 
由于安装完成apt-mirror工具之后,在/etc/apt中生成的mirror.list文件中,默认的网址是
archive.ubuntu.com/ubuntu
,是下载x86/x64用的,所以要修改为我们需要的源网址。同时由于目前只需要deb文件,为了尽快下载完成,这里先只下载deb软件包,后面如果需要src文件的话在下载也不影响。修改如下:

:%s/archive.ubuntu.com\/ubuntu/ports.ubuntu.com\/ubuntu-ports/g


通过
info apt-mirror
看到,如果要仅下载某一个架构的镜像文件的话,需要指定架构参数:deb-,这里是deb-armhf。最终如下:

############# config ##################
#
# 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 cleanscript $var_path/clean.sh
# set defaultarch  <running host architecture>
# set postmirror_script $var_path/postmirror.sh
# set run_postmirror 0
set nthreads     20
set _tilde 0
#
############# end config ##############

deb-armhf http://ports.ubuntu.com/ubuntu-ports trusty main restricted universe multiverse
deb-armhf http://ports.ubuntu.com/ubuntu-ports trusty-security main restricted universe multiverse
deb-armhf http://ports.ubuntu.com/ubuntu-ports trusty-updates main restricted universe multiverse
deb-armhf http://ports.ubuntu.com/ubuntu-ports trusty-proposed main restricted universe multiverse
deb-armhf http://ports.ubuntu.com/ubuntu-ports trusty-backports main restricted universe multiverse

#deb-src http://ports.ubuntu.com/ubuntu-ports trusty main restricted universe multiverse
#deb-src http://ports.ubuntu.com/ubuntu-ports trusty-security main restricted universe multiverse
#deb-src http://ports.ubuntu.com/ubuntu-ports trusty-updates main restricted universe multiverse
#deb-src http://ports.ubuntu.com/ubuntu-ports trusty-proposed main restricted universe multiverse
#deb-src http://ports.ubuntu.com/ubuntu-ports trusty-backports main restricted universe multiverse

clean http://ports.ubuntu.com/ubuntu-ports[/code] 
执行如下命令开始下载镜像文件,整个过程可能需要几天时间,默认镜像文件下载地址为
/var/spool/apt-mirror/mirror


apt-mirror


小技巧:在下载过程中,我们可能需要查看下载网速和进度,这是执行
ps -x
命令,可以看到十几个wget命令正在拼命下载中,在wget命令中会有log文件作为参数,我们
cat xxx.log
一下就可以看到下载进度和相应的下载网速。


注意:如果在下载结束时提示
/bin/sh: 0: Can't open /var/spool/apt-mirror/var/postmirror.sh
,可以在mirror.list文件中取消注释
# set run_postmirror 0
或者创建一个空的postmirror.sh文件,因为该文件默认是什么都不做的。

设置访问服务器

安装完成apache2软件之后,会创建/var/www/html目录,网上说在/var/www目录下做超链接,我试了一下并不行,而必须是在/var/www/html目录中进行才行。由于下载的镜像文件默认在/var/spool/apt-mirror/mirror/ports.ubuntu.com/ubuntu-ports中,所以在/var/www/html目录中执行如下命令在/var/www/html中建立超链接:

ln -s /var/spool/apt-mirror/mirror/ports.ubuntu.com/ubuntu-ports  ubuntu-ports


则在浏览器中输入http://yourip/ubuntu-ports,例如http://255.255.255.255/ubuntu-ports即可看到和源ports.ubuntu.com中一样的目录结构。

service apache2 start/stop


以上命令分别是打开和关闭服务器功能。

定时更新

可以使用crontab进行每天的更新,在/etc/cron.d目录中已经默认生成了一个apt-mirror文件:

root@iZ94gf1fxkmZ:/etc/cron.d# cat apt-mirror
#
# Regular cron jobs for the apt-mirror package
#
#0 4    * * *   apt-mirror      /usr/bin/apt-mirror > /var/spool/apt-mirror/var/cron.log


把该文件前面的注释符号拿掉,系统就会自动使用apt-mirror和ports.ubuntu.com服务器去更新。

更改为自己的源

把arm的ubuntu系统的sources.list中的源网址更改为自己的源:

vi sources.list
:%s/ports.ubuntu.com/yourip/g


然后
apt-get update
,就可以愉快地使用自己的源了~

祝枫

2016年7月24日于深圳
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息