搭建ubuntu arm/arm64的本地源

Posted 摩斯电码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了搭建ubuntu arm/arm64的本地源相关的知识,希望对你有一定的参考价值。

参考:

搭建apt源

Ubuntu ARM更改为国内源

使用Qemu运行Ubuntu文件系统(1)

 

针对arm和arm64,使用的是http://ports.ubuntu.com/ubuntu-ports/。下面以搭建arm64的本地源为例。

概述

有些私有云环境不允许连接互联网,这样的话云平台的虚拟机安装软件比较困难,因此就需要自己搭建apt源才行

步骤

我们使用apt-mirror制作apt源,因为会把包文件同步到本地,所以建议创建一个至少200G的磁盘,单独挂载用于存储数据。

服务端配置

1、安装apt-mirror

apt-get install apt-mirror

2、修改apt-mirror配置文件

vim /etc/apt/mirror.list

参考以下配置文件:

# 以下注释的内容都是默认配置,如果需要自定义,取消注释修改即可
############# config ##################
set base_path /gitlab/ubuntu_port_mirror/data_arm64/16.04
# set base_path /var/spool/apt-mirror
#
# 镜像文件下载地址
# set mirror_path $base_path/mirror
# 临时索引下载文件目录,也就是存放软件仓库的dists目录下的文件(默认即可)
# set skel_path $base_path/skel
# 配置日志(默认即可)
# set var_path $base_path/var
# clean脚本位置
# set cleanscript $var_path/clean.sh
# 架构配置,armhf/arm64,默认的话会下载跟本机相同的架构的源
set defaultarch arm64
# set postmirror_script $var_path/postmirror.sh
# set run_postmirror 0
# 下载线程数
set nthreads 20
set _tilde 0
#
############# end config ##############
#可以使用Ali yun的apt源(这里没有添加deb-src的源)
deb https://mirrors.aliyun.com/ubuntu-ports xenial main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu-ports xenial-security main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu-ports xenial-updates main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu-ports xenial-proposed main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu-ports xenial-backports main restricted universe multiverse

3、开始同步

执行apt-mirror,然后就开始进行同步了,同步的镜像文件目录为/gitlab/ubuntu_port_mirror/data_arm64/16.04/mirror/mirrors.aliyun.com/ubuntu/,当然如果增加了其他的源,在/gitlab/ubuntu_port_mirror/data_arm64/16.04/mirror目录下还有其他的地址为名的目录。

4、安装apache2

apt-get install apache2

由于Apache2的默认网页文件目录位于/var/www/html,因此,可以做个软链接

ln -s /gitlab/ubuntu_port_mirror/data_arm64/16.04/mirror/mirrors.aliyun.com/ubuntu-ports /var/www/html/ubuntu160406/arm64/ubuntu-ports

然后就可以通过如下地址访问了。

http://[host]:[port]/ubuntu #ip和port是自己本机的,其中端口默认为80。在测试时可能遇到打不开的情况,查看下本机和云平台的防火墙规则是否打开相关端口或者selinux的问题。

5、服务器配置(可选)

安装apache2,配置文件/etc/apache2/sites-enabled/000-default.conf,或者直接加一个新的配置文件,文件内容:

<VirtualHost *:80>

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/
  <Directory />
        Options FollowSymLinks
        AllowOverride None
  </Directory>
  <Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
  </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

配置好后,重启apache服务

 

客户端配置

1、在/etc/apt/sources.list配置如下

deb http://192.168.1.100/ubuntu160406/arm64/ubuntu-ports/ xenial main restricted
deb http://192.168.1.100/ubuntu160406/arm64/ubuntu-ports/ xenial-updates main restricted
deb http://192.168.1.100/ubuntu160406/arm64/ubuntu-ports/ xenial universe
deb http://192.168.1.100/ubuntu160406/arm64/ubuntu-ports/ xenial-updates universe
deb http://192.168.1.100/ubuntu160406/arm64/ubuntu-ports/ xenial multiverse
deb http://192.168.1.100/ubuntu160406/arm64/ubuntu-ports/ xenial-updates multiverse
deb http://192.168.1.100/ubuntu160406/arm64/ubuntu-ports/ xenial-backports main restricted universe multiverse
deb http://192.168.1.100/ubuntu160406/arm64/ubuntu-ports/ xenial-security main restricted
deb http://192.168.1.100/ubuntu160406/arm64/ubuntu-ports/ xenial-security universe
deb http://192.168.1.100/ubuntu160406/arm64/ubuntu-ports/ xenial-security multiverse

2、更新apt-get源

apt-update

完。

以上是关于搭建ubuntu arm/arm64的本地源的主要内容,如果未能解决你的问题,请参考以下文章

在Ubuntu下,安装arm-linux-gcc交叉编译器,环境变量也都设置好了,运行arm-linux-gcc 提示未找到命令

在ubuntu上交叉编译Boost 1.57.0 for arm

优化系列汇编优化技术:ARM架构64位(AARCH64)汇编优化及demo

Ubuntu16.04系统中BusyBox在配置arm交叉编译环境时make失败

解决一个Ubuntu中编译NEON优化的OpenCV的错误

[知乎]ARM 到底是什么