溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何使用apt-mirror搭建Ubuntu軟件源

發(fā)布時間:2021-09-03 11:09:25 來源:億速云 閱讀:235 作者:chen 欄目:系統(tǒng)運維

這篇文章主要講解了“如何使用apt-mirror搭建Ubuntu軟件源”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“如何使用apt-mirror搭建Ubuntu軟件源”吧!

搭建自有Ubuntu源的原因有很多

節(jié)省外網(wǎng)帶寬
提前下載,緩解國外源下載緩慢
私有定制軟件包發(fā)布

本文測試環(huán)境

ubuntu 14.04(LTS) 64位
apt-mirror 版本 0.5.1-1
nginx 版本 1.4.6-1ubuntu3.1


安裝apt-mirror

代碼如下:


# sudo apt-get update
# sudo apt-get install apt-mirror=0.5.1-1

配置apt-mirror

apt-mirror的配置文件位置為 /etc/apt/mirror.list
根據(jù)注釋修改相應(yīng)內(nèi)容,一般只需要修改 base_path和更改、添加軟件源。以下配置文件我只添加了Ubuntu 14.04和MongoDB的軟件源,你可以根據(jù)你的需要添加Ubuntu其他版本軟件源。

代碼如下:


############# config ##################
#
# 配置數(shù)據(jù)基目錄
set base_path     /data/apt-mirror
# 配置鏡像存儲位置
# set mirror_path  $base_path/mirror
# 配置臨時下載索引位置
# set skel_path    $base_path/skel
# 配置日子,URLs和MD5校驗信息存儲位置
# set var_path     $base_path/var
# 配置刪除過期源腳本位置(默認不刪除,方便安裝舊版本軟件)
# set cleanscript $var_path/clean.sh
# 設(shè)置默認架構(gòu), 可填: amd64 或 i386,默認是和本機一個架構(gòu)
# set defaultarch  <running host architecture>
#
# 設(shè)定下載后運行的腳本位置
# set postmirror_script $var_path/postmirror.sh
# 設(shè)置是否執(zhí)行 下載后的腳本操作,默認是1(但是默認沒有postmirror.sh腳本)
set run_postmirror 0
# 設(shè)置下載線程數(shù)
set nthreads     20
# 是否替換URL中的波浪線,替換成%7E(HTML代碼),否則會跳過不進行下載
set _tilde 0
#
############# end config ##############
# 配置Ubuntu trusty 源
deb http://archive.ubuntu.com/ubuntu trusty main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu trusty-security main restricted universe multiverse
deb 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 multiverse
deb-src http://archive.ubuntu.com/ubuntu trusty main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu trusty-security main restricted universe multiverse
deb-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 multiverse
# clean http://archive.ubuntu.com/ubuntu
# 配置MongoDB源
# 官方地址 http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/
#
deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen
# clean http://localhost/downloads-distro.mongodb.org


因為我自定義了apt-mirror的數(shù)據(jù)目錄,所以需要賦予 apt-mirror用戶權(quán)限,否則同步不會正確運行:

代碼如下:


# sudo chown -R apt-mirror:apt-mirror /data/apt-mirror


運行第一次同步

確保你的基目錄下磁盤空間足夠,如上所配置,則至少保證150G的磁盤空間,建議200G以上,以后版本更新,添加軟件源等會需要很多磁盤空間。
因為要下載135G的內(nèi)容,時間比較漫長,建議切換到apt-mirror用戶用以下命令放在后臺運行

代碼如下:


# sudo su apt-mirror
# nohup /usr/bin/apt-mirror > /var/spool/apt-mirror/var/cron.log &


安裝Nginx,配置HTTP訪問

通過以上配置,已經(jīng)可以在 /data/apt-mirror 目錄下看到生成的幾個數(shù)據(jù)文件。/data/apt-mirror/mirror下存放的就是軟件鏡像。但是如何向其他計算機發(fā)布這些數(shù)據(jù)呢?很明顯通過HTTP服務(wù)可以做到這一點。我們通過使用Nginx將mirror目錄下的內(nèi)容通過HTTP協(xié)議發(fā)布。

安裝Nginx

代碼如下:


# sudo apt-get install nginx=1.4.6-1ubuntu3.1


nginx配置文件位置: /etc/nginx/sites-enabled/default,將其替換為以下文件:

代碼如下:


server {
   listen 80;
   # 這里填寫你的域名,填寫localhost就直接通過IP地址訪問
   server_name localhost;
   # 顯示目錄
   autoindex on;
   location / {
       index index.html index.htm;
       # 這里填寫鏡像保存位置
       root /data/apt-mirror/mirror;
   }
   access_log /var/log/nginx/localhost.log;
}

更改完配置,先測試配置,如果測試通過,則重啟nginx

代碼如下:


# sudo nginx -t
# sudo service nginx restart


此時訪問 http://服務(wù)器IP 即可訪問到你發(fā)布的鏡像

配置定時同步

我們當(dāng)然不能,每天自己手動同步鏡像啦。我們需要配置apt-mirror每天定時同步,其實就是配置cron。
這里apt-mirror提供了cron模板文件,在/etc/cron.d/apt-mirror 中,取消最后一行的#注釋即可生效:

0 4 * * * apt-mirror /usr/bin/apt-mirror > /var/spool/apt-mirror/var/cron.log
以上設(shè)置每日4點同步一次

客戶端配置

現(xiàn)在我們已經(jīng)配置好了服務(wù)端,找個Ubuntu 14.04 64位的來測試一下

備份source.list

代碼如下:


# sudo mv /etc/apt/source.list /etc/apt/source.list.bak


新建/etc/apt/source.list, 寫入以下內(nèi)容(上述服務(wù)器DNS或IP 替換”自建源IP”)

代碼如下:


deb [arch=amd64] http://自建源IP/archive.ubuntu.com/ubuntu trusty main restricted universe multiverse
deb [arch=amd64] http://自建源IP/archive.ubuntu.com/ubuntu trusty-security main restricted universe multiverse
deb [arch=amd64] http://自建源IP/archive.ubuntu.com/ubuntu trusty-updates main restricted universe multiverse
deb [arch=amd64] http://自建源IP/archive.ubuntu.com/ubuntu trusty-proposed main restricted universe multiverse
deb [arch=amd64] http://自建源IP/archive.ubuntu.com/ubuntu trusty-backports main restricted universe multiverse

代碼如下:


deb-src [arch=amd64] http://自建源IP/archive.ubuntu.com/ubuntu trusty main restricted universe multiverse
deb-src [arch=amd64] http://自建源IP/archive.ubuntu.com/ubuntu trusty-security main restricted universe multiverse
deb-src [arch=amd64] http://自建源IP/archive.ubuntu.com/ubuntu trusty-updates main restricted universe multiverse
deb-src [arch=amd64] http://自建源IP/archive.ubuntu.com/ubuntu trusty-proposed main restricted universe multiverse
deb-src [arch=amd64] http://自建源IP/archive.ubuntu.com/ubuntu trusty-backports main restricted universe multiverse

代碼如下:


# 配置MongoDB源
deb [arch=amd64] http://自建源IP/downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen


通過比較apt-mirror和source.list文件,其實就是把原有域名變成了一個目錄。注意:以上客戶端配置也多添加了[arch=amd64],用于指定架構(gòu),否則會出現(xiàn)

Err http://192.168.1.71 trusty/main i386 Packages
  404  Not Found
Err http://192.168.1.71 trusty/restricted i386 Packages
  404  Not Found
Err http://192.168.1.71 trusty/universe i386 Packages
  404  Not Found
...
類似錯誤,因為我的測試環(huán)境是x64,只同步了64位架構(gòu)源,所以必須指定架構(gòu)為64,現(xiàn)在客戶端也無需i386的軟件。
添加過source.list后,運行

代碼如下:


# sudo apt-get update


ubuntu部分正常更新,但是發(fā)現(xiàn)會出現(xiàn)以下錯誤提示

W: GPG error: http://192.168.1.111 dist Release:
 The following signatures couldn't be verified
 because the public key is not available: NO_PUBKEY 9ECBEC467F0CEB10
需要添加GPG key,添加某些package時,基本都需要添加GPG key,官方網(wǎng)站一般都會給出

代碼如下:


sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10


此時你就可以使用自建源安裝軟件啦~~
以下安裝了MongoDB和htop來進行測試

代碼如下:


sudo apt-get install -y mongodb-org=2.6.5 htop

感謝各位的閱讀,以上就是“如何使用apt-mirror搭建Ubuntu軟件源”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對如何使用apt-mirror搭建Ubuntu軟件源這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI