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

来源:互联网 发布:淘宝浏览量怎么提升 编辑:程序博客网 时间:2024/06/10 16:55

搭建本地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/aptcp mirror.list mirror.list.bakvi 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 0set nthreads     20set _tilde 0############## end config ##############deb http://archive.ubuntu.com/ubuntu trusty main restricted universe multiversedeb http://archive.ubuntu.com/ubuntu trusty-security main restricted universe multiversedeb 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 multiversedeb-src http://archive.ubuntu.com/ubuntu trusty main restricted universe multiversedeb-src http://archive.ubuntu.com/ubuntu trusty-security main restricted universe multiversedeb-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 multiverseclean http://archive.ubuntu.com/ubuntu

由于安装完成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 0set nthreads     20set _tilde 0############## end config ##############deb-armhf http://ports.ubuntu.com/ubuntu-ports trusty main restricted universe multiversedeb-armhf http://ports.ubuntu.com/ubuntu-ports trusty-security main restricted universe multiversedeb-armhf http://ports.ubuntu.com/ubuntu-ports trusty-updates main restricted universe multiversedeb-armhf http://ports.ubuntu.com/ubuntu-ports trusty-proposed main restricted universe multiversedeb-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 multiverseclean http://ports.ubuntu.com/ubuntu-ports

执行如下命令开始下载镜像文件,整个过程可能需要几天时间,默认镜像文件下载地址为/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日于深圳

0 0
原创粉丝点击