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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM