當前位置: 首頁>>技術教程>>正文


如何創建Ubuntu存儲庫服務器

, , , , , , , ,

本指南將展示如何配置基於Ubuntu Bionic的本地存儲庫服務器,但是它可以適用於Ubuntu的早期版本,甚至可以使用Aptitude作為主要軟件包管理係統(例如Debian或Mint)進行任何發行。您可能通常希望設置一個本地存儲庫以節省Internet帶寬。

在本教程中,您將學習:

  • 如何在服務器上安裝所需的軟件
  • 如何選擇要在服務器上鏡像的存儲庫
  • 如何在服務器上本地鏡像選擇存儲庫
  • 如何配置Linux客戶端以使用本地存儲庫服務器

如上所述,本教程並未考慮公共或國家/地區鏡像,但如果要實施,請考慮:

  • 您的網絡帶寬變得非常重要
  • 您需要將存儲庫注冊到Ubuntu的鏡像列表中
  • 您必須每天至少同步鏡子四次
  • 因為您必須鏡像所有以前的版本,所以可能需要2 TB或更多的磁盤空間
Updating packages list from the local repos.

從本地存儲庫更新軟件包列表。

使用的軟件要求和約定

軟件要求和Linux命令行約定
類別 使用的要求,約定或軟件版本
係統 Ubuntu 18.04.2(Bionic Beaver)LTS
軟件 Apache http 2.x,apt-mirror
其他 以root身份或通過Linux特權訪問Linux係統sudo命令,存儲庫的最小200 GB磁盤空間
約定 -要求linux命令可以直接以root用戶身份或通過使用root特權以root特權執行sudo命令
$-要求linux命令以常規non-privileged用戶身份執行

如何逐步創建Ubuntu存儲庫服務器

  1. 在服務器上安裝所需的軟件。

    第一步,我們需要安裝Apache HTTP Server,該服務器位於名為的軟件包下apache2,使用以下命令:

    $ sudo apt install apache2

    訂閱新聞
    訂閱Linux職業通訊並接收最新的Linux新聞,工作,職業建議和教程。


    Installing Apache HTTP

    安裝Apache HTTP

    然後確保服務在啟動時運行:

    
    $ sudo systemctl enable apache2
    

    如果一切正常,我們將移至默認的DocumentRoot目錄(/var /www /html)。
    在這裏我們可以創建sub-directory/var/www/html/ubuntu並將其分配給適當的所有者www-data(運行Apache HTTP的用戶)。

    
    $ sudo mkdir -p /var/www/html/ubuntu
    $ sudo chown www-data:www-data /var/www/html/ubuntu
    

    強烈建議DocumentRoot或至少ubuntu子文件夾位於屬於邏輯卷的文件係統上;這樣,我們可以在線擴展它,而無需停機。在我進行測試時,如果還要鏡像src軟件包,則需要的絕對最小空間為171.5 GiB。因此,為將來做計劃,建議至少有300 GiB的磁盤空間。

    如果選擇一個版本的Ubuntu,這主要是一個估計。如果需要鏡像不同版本的軟件包,則空間需求將大大增加。

  2. 允許我們創建本地存儲庫的主要工具是apt-mirror,要安裝它,執行:
    
    $ sudo apt install apt-mirror
    

    如果找不到軟件包,請確保首先使用以下命令刷新軟件包列表:

    
    $ sudo apt update
    
  3. 選擇要在服務器上鏡像的存儲庫。

    安裝apt-mirror後,我們可以為其配置文件製作備份副本/etc/apt/mirror.list,然後確保包含選項的行set base_path指向我們存儲庫的正確路徑(默認為/var /spool /apt-mirror)。

    
    $ sudo cp /etc/atp/mirror.list /etc/apt/mirror.list.org
    

    因此,您現在可以使用喜歡的編輯器(例如,vi或nano)將mirror.list文件中的base_path選項更改為/var/www/html/ubuntu;您還需要指定要鏡像仿生發行版(如果您使用其他Ubuntu版本,則進行相應更改)存儲庫,始終在mirror.list配置文件中。

    mirror.list config file

    mirror.list配置文件

    如果磁盤上沒有足夠的空間,則可以選擇不鏡像src軟件包。因此,您將注釋相關行:

    mirror.list config file

    mirror.list配置文件


    接下來,將重要腳本複製到/var/www/html/ubuntu/var/

    
    $ sudo mkdir -p /var/www/html/ubuntu/var 
    $ sudo cp /var/spool/apt-mirror/var/postmirror.sh /var/www/html/ubuntu/var/
    
  4. 在服務器上本地鏡像選定的存儲庫。

    現在是創建本地鏡像的時候了,請記住,初始鏡像(來自archive.ubuntu.com僅適用於本教程)可能會花費大量時間並減慢您的連接速度,因此建議您晚上開始這項工作。要開始將遠程存儲庫軟件包鏡像到本地服務器,隻需執行以下命令:

    
    $ sudo apt-mirror
    

    如果需要,可以中斷此過程(使用經典的CTRL + C組合鍵),然後稍後重新啟動;它會從剩下的地方恢複。

    最終,我們將執行clean.sh和postmirror.sh腳本,這表明鏡像過程已完成。

    End of mirroring process.

    鏡像過程結束。
  5. 使用cron調度程序配置自動同步過程。

    第一次同步完成後,我們需要創建一個cron作業,以確保我們擁有一個自動更新的本地存儲庫;例如,我們希望此任務每天晚上2:00 AM運行,因此:

    
    $ sudo crontab -e
    

    然後,我們編輯crontab以添加以下行:

    
    00 	02 	*	 *	 *	/usr/bin/apt-mirror
    

    並保存並退出(使用vi,nano或設置的任何編輯器)。

配置Linux客戶端以使用本地存儲庫服務器

  1. 配置本地存儲庫列表。

    在將要使用我們本地存儲庫的任何客戶端中,我們都需要編輯配置文件/etc/apt/sources.list指定我們的本地存儲庫並禁用任何遠程存儲庫。在我們的情況下,已下載以下存儲庫:

    Server local repositories

    服務器本地存儲庫


    注意

    建議在/etc/apt/sources.list文件引用未在我們服務器中鏡像的存儲庫,例如,在這種情況下,任何以deb-src並且包含bionic-backports已被評論。

    如果不這樣做,可能會得到錯誤Release file has not been found 在客戶端上運行命令apt update時。

    首先,我們用本地鏡像IP(在本例中為10.0.0.42)替換任何字符串archive.ubuntu.com。當然,您的本地IP地址可能會有所不同。

    
    $ sudo  sed -i.bak0 "s/archive\.ubuntu\.com/10\.0\.0\./g" /etc/apt/sources.list
    

    此命令將創建備份文件/etc/apt/sources.list.bak0並替換任何archive.ubuntu.com10.0.0.42。再次以這種方式運行sed:

    
    $ sudo  sed -i.bak1 "s/ubuntu/ubuntu\/mirror\/archive\.ubuntu\.com\/ubuntu/g" \ /etc/apt/sources.list
    

    這是必要的,因為apt-mirror會附加路徑mirror/archive.ubuntu.com/ubuntu到我們的基本路徑。在這裏將創建另一個備份文件

    
    /etc/apt/sources.list.bak1.
    

    在本教程中,我們僅鏡像來自archive.ubuntu.com的軟件包或存儲庫;當然,您可以在服務器的mirror.list文件中添加其他非官方存儲庫,但隨後您必須在re-run apt-mirror那裏,並在任何客戶端上相應地編輯source.list文件。

  2. 更新本地存儲庫索引。
    現在,您需要確保端口80未被客戶端防火牆阻止,然後可以運行:
    
    $ sudo apt update
    

    您就可以出發了。

    Updating packages list from the local repos.

    從本地存儲庫更新軟件包列表。

結論

在Ubuntu中設置本地存儲庫並不困難,因為看起來似乎很容易,隻要您有足夠的本地網絡和磁盤資源,它就可以派上用場。

參考資料

本文由Ubuntu問答整理, 博文地址: https://ubuntuqa.com/zh-tw/article/7366.html,未經允許,請勿轉載。