zoukankan      html  css  js  c++  java
  • ubuntu搭建关于amd64或arm64,armhf架构的本地apt源

    须知

    • 对于arm和arm64架构的cpu,使用的国内源是http://ports.ubuntu.com/ubuntu-ports/
    • xenial和bionic指的是ubuntu的发行版本号,目前来看,xenial版本的ubuntu安装bionic搭建的本地apt源,没有出现问题,个人推测影响不大。
    • 架构不同,apt-mirror中的配置文件需不一样。
    • 下载线程数建议根据服务器性能来设置,否则容易出现系统卡死现象

    步骤

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

    服务端配置

    1、安装apt-mirror

    apt-get install apt-mirror
    

    2、修改apt-mirror配置文件

    查看系统版本

    pi@NanoPi-NEO-Plus2:~$ sudo lsb_release -a
    No LSB modules are available.
    Distributor ID: Ubuntu
    Description:    Ubuntu 16.04.2 LTS
    Release:        16.04
    Codename:       xenial
    pi@NanoPi-NEO-Plus2:~$
    

    coedname为xenial,因此在配置文件中,源的版本要修改为xenial

    vim /etc/apt/mirror.list
    

    普通AMD64架构CPU参考以下配置文件:

    # 以下注释的内容都是默认配置,如果需要自定义,取消注释修改即可
    ############# config ##################
    set base_path /var/spool/apt-mirror
    # 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
    # 指定CPU架构,默认的话会下载跟本机相同的架构的源
    set defaultarch amd64
    # set postmirror_script $var_path/postmirror.sh
    # set run_postmirror 0
    # 下载线程数
    set nthreads 20
    set _tilde 0
    
    ############# end config ##############
    #可以使用Ali yun的apt源(这里没有添加deb-src的源)
    # url后面就是codename
    deb https://mirrors.aliyun.com/ubuntu xenial main restricted universe multiverse
    deb https://mirrors.aliyun.com/ubuntu xenial-security main restricted universe multiverse
    deb https://mirrors.aliyun.com/ubuntu xenial-updates main restricted universe multiverse
    deb https://mirrors.aliyun.com/ubuntu xenial-proposed main restricted universe multiverse
    deb https://mirrors.aliyun.com/ubuntu xenial-backports main restricted universe multiverse
        
    # 中科大源(阿里源和中科大源,二选一)
    # 修改codename为系统的版本
    deb http://mirrors.ustc.edu.cn/ubuntu bionic main restricted universe multiverse
    deb http://mirrors.ustc.edu.cn/ubuntu bionic-security main restricted universe multiverse
    deb http://mirrors.ustc.edu.cn/ubuntu bionic-updates main restricted universe multiverse
    deb http://mirrors.ustc.edu.cn/ubuntu bionic-proposed main restricted universe multiverse
    deb http://mirrors.ustc.edu.cn/ubuntu bionic-backports main restricted universe multiverse
    
    clean http://mirrors.ustc.edu.cn/ubuntu
    

    普通arm64架构CPU参考以下配置文件:

    # 以下注释的内容都是默认配置,如果需要自定义,取消注释修改即可
    ############# config ##################
    set base_path /var/spool/apt-mirror
    # 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  # 禁止跑run_postmirror脚本,目前已经没有该脚本,如果跑的话会报错
    # 下载线程数
    set nthreads 10
    set _tilde 0
    
    ############# end config ##############
    # 不管使用哪个源,arm64架构的cpu的apt源 路径 和普通的AMD64的不一样
    deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports bionic main restricted universe multiverse
    deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports bionic-security main restricted universe multiverse
    deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports bionic-updates main restricted universe multiverse
    deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports bionic-proposed main restricted universe multiverse
    deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports bionic-backports main restricted universe multiverse
    
    clean https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports
    

    树莓派的arm64和armhf架构的CPU参考以下配置文件:

    需要多种cpu架构的apt包,就在配置文件中增加所需的apt源信息,以deb-cpu架构的方式添加。但需要注意,deb-arm64deb-armhf,不能与deb共存。

    # 以下注释的内容都是默认配置,如果需要自定义,取消注释修改即可
    ############# config ##################
    set base_path /var/spool/apt-mirror
    # 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
    # 架构配置,默认的话会下载跟本机相同的架构的源
    # set defaultarch arm64
    # set postmirror_script $var_path/postmirror.sh
    set run_postmirror 0  # 禁止跑run_postmirror脚本,目前已经没有该脚本,如果跑的话会报错
    # 下载线程数
    set nthreads 10
    set _tilde 0
    #
    ############# end config ##############
    #可以使用清华源的apt源(这里没有添加deb-src的源)
    deb-armhf http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports bionic main restricted universe multiverse
    deb-armhf http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports bionic-security main restricted universe multiverse
    deb-armhf http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports bionic-updates main restricted universe multiverse
    deb-armhf http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports bionic-proposed main restricted universe multiverse
    deb-armhf http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports bionic-backports main restricted universe multiverse
    
    deb-arm64 http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports bionic main restricted universe multiverse
    deb-arm64 http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports bionic-security main restricted universe multiverse
    deb-arm64 http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports bionic-updates main restricted universe multiverse
    deb-arm64 http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports bionic-proposed main restricted universe multiverse
    deb-arm64 http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports bionic-backports main restricted universe multiverse
    
    # 不可以将deb和deb-arm64和deb-armhf类型放在一起,否则会导致中途报错,URL中会多出一条“/”,从而NOT FIND报错
    # deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports bionic main restricted universe multiverse
    # deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports bionic-security main restricted universe multiverse
    # deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports bionic-updates main restricted universe multiverse
    # deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports bionic-proposed main restricted universe multiverse
    # deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports bionic-backports main restricted universe multiverse
    
    clean https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports
    

    3、开始同步

    sudo apt-mirror
    

    然后等待很长时间(该镜像差不多100G左右,具体时间看网络环境),同步的镜像文件目录为/var/spool/apt-mirror/mirror/mirrors.aliyun.com/ubuntu/,当然如果增加了其他的源,在/var/spool/apt-mirror/mirror目录下还有其他的地址为名的目录。

    注意:当apt-mirror 被意外中断时,只需要重新运行即可,apt-mirror支持断点续存;另外,意外关闭,需要在/var/spool/apt-mirror/var目录下面删除 apt-mirror.lock文件【 sudo rm apt-mirror.lock 】,之后执行apt-mirror重新启动

    在日常升级中,我们可以定期执行apt-mirror命令
    sudo apt-mirror
    或者写进crontab中:

    30 5 * * * sudo /usr/bin/apt-mirror >> /var/spool/apt-mirror/var/cron.log
    

    每天五点30分执行,并在/var/spool/apt-mirror/var/文件夹中生成cron.log日志文件,以方便查看更新状态。

    4、同步完成

    同步完成之后,会出现以下提示:

    Run /var/spool/apt-mirror/var/clean.sh for this purpose.
    

    根据提示,需要运行clean.sh的脚本

    cd /var/spool/apt-mirror/var/
    ./clean.sh
    

    5、安装apache2

    可以选择使用apache服务进行托管,也可以使用nginx进行托管,根据个人喜好。如果使用nginx进行托管,客户端配置apt源的配置文件需要按需进行更改。

    sudo apt-get install apache2
    

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

    ln -s /var/spool/apt-mirror/mirror/mirrors.aliyun.com/ubuntu /var/www/html/ubuntu
    

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

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

    6、服务器配置(可选)

    安装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
    

    3、更新apt-get源

    apt-update
    
  • 相关阅读:
    re模块 与正则表达式之间的关系 一.....
    计算机硬件组成
    随便
    linux crontab定时
    linux shell命令记录
    tomcat意外退出 A valid shutdown command was received via the shutdown port. Stopping the Server instance
    mongodb设置用户
    mongodb的mongo.conf文件 启动参数
    mysql设置不区分表名大小写
    mongodb报Write failed with error code 17280 and error message 'WiredTigerIndex::insert: key too large
  • 原文地址:https://www.cnblogs.com/cnhyk/p/13360167.html
Copyright © 2011-2022 走看看