ubuntu制作離線源的幾種方法


ubuntu安裝軟件有多種方式。

一、使用iso文件掛載到本地,然后使用iso鏡像進行軟件安裝。缺點:需要將操作系統打包做iso鏡像。

二、使用apt-mirror下載第三方源到本地,然后使用apache做服務,制作局域網源。缺點:第三方源很大,一般都是幾十G,需要下載很久,而且占用磁盤很大。

三、拷貝能聯網的機器的deb安裝包到不能聯網的服務器,然后制作本地源進行安裝,如果ubuntu14以下,不用制作release簽名,如果ubuntu14以上,需要制作release簽名,具體操作步驟見以下說明。缺點:操作繁瑣易出錯,但是定制化程度高,可以安裝自己需要的包,不需要安裝多余的包。

四、如果上述三個方法在操作過程中有其他錯誤無法完成安裝,可以采用純手動方法安裝(最笨的方法),先將聯網服務器上的多余deb包清理,將所有需要的deb包拷下載后拷貝到離線服務器上,進到指定deb包目錄,dpkg -i *.deb > log.txt,將所有deb包進行安裝,再對日志中的錯誤進行排查,檢查是否存在少包或者版本等問題,逐一解決后再進行安裝。

 

==================================================針對第三種方法的詳細說明=====================================================================

環境:

一台能上網的Ubuntu電腦,一台不能上網的Ubuntu電腦。Ubuntu版本都是18.04LTS。

目標:

將能上網的Ubuntu電腦安裝的軟件制作成源,通過U盤拷貝給內網電腦,內網電腦根據此離線源通過apt安裝軟件。

為什么不直接拷貝deb安裝呢?因為有些軟件安裝依賴的包比較多。

遇到的問題:

從Ubuntu 16.04 (xenial)起, 在將本地deb軟件包創建repo時候,跟14.04以前的版本相比,強制要求gpg對Release文件簽名,否則無法使用。

步驟:

1.在外網電腦上,安裝gpg軟件和相關軟件:

apt-get install gnupg
apt-get install rng-tools
密鑰創建過程中,需要使用到足夠的隨機數(random),可先行安裝rng-tools, 該工具可以常駐后台的方式, 生成隨機數,避免gpg密鑰創建過程中的長時間等待問題 

rngd -r /dev/urandom
生成公鑰和私鑰:

gpg --gen-key
執行gpg會進入一些對話,其中要新建一個用戶名username和相應的密碼。

這一步有問題可以參考:https://blog.csdn.net/tangsl388/article/details/72843438

結束之后,輸入命令,可以查看key:

gpg --list-key
導出gpg公鑰和私鑰:
私鑰,供Server端,對release文件簽名使用,好像不做也能簽名

gpg -a --export-secret-keys username > Ubuntu_Local_Archive_Automatic_Signing_Key_2017.sec
公鑰,需在Ubuntu client 導入,供apt-get使用

gpg -a --export username> username.pub
 2.在外網電腦上准備安裝包源

以下是安裝包目錄

$ sudo rm -rf /var/cache/apt/archives/* # 清空緩存目錄,這一步也可以不做
-d只是下載安裝包,並不安裝。

$ sudo apt-get -d install <包名>
在本地建一個目錄,將下載下來的安裝包拷貝到此目錄:

$ mkdir /var/debs
$ cp -r /var/cache/apt/archives/*.deb /var/debs/
在debs這個目錄創建Packages.gz,注意生成的路徑帶debs,否則內網安裝時會說找不到文件

# apt-ftparchive packages debs > debs/Packages
# cd debs
# gzip -c Packages > Packages.gz
在debs這個目錄下創建release file

# apt-ftparchive release ./ > Release
ubuntu apt-get 對軟件包索引,首先要求InRelease文件,其次才去找Release、Release.gpg文件; 這情況下, 其實只需要創建InRelease文件(包含Release文件和明文簽名)即可:

#gpg --clearsign -o InRelease Release
#gpg -abs -o Release.gpg Release
3. 將生成的debs目錄和公鑰文件username.pub拷貝到U盤

4.在內網的電腦上將debs目錄拷貝到/vars/下面,注意和外網的目錄一樣。

如下並導入公鑰。

# apt-key add username.pub
5.在內網電腦上備份apt源文件/etc/apt/source.list,並修改源。

$ sudo gedit /etc/apt/sources.list
將sources.list 原來的內容都注釋掉。在最后添加

$ deb file:/var debs/
注意上面的 /var 和 debs/ 之間的空格,以及 “/”。不要寫錯/var/debs/路徑了。
更新索引
$ sudo apt-get update
現在可以安裝包了。運行sudo apt-get install <包名> 就會像以前一樣安裝好了指定的包了。

6.安裝包的下載,一鍵下載所有依賴包,可以參照  

https://blog.csdn.net/junbujianwpl/article/details/52811153    

以上步驟參考:https://blog.csdn.net/yruilin/article/details/85124870

單個軟件安裝(https://blog.csdn.net/michaelwoshi/article/details/94185132)  [trusted=yes]

無需制作簽名安裝ubuntu14以下

https://blog.csdn.net/weixin_30535843/article/details/95711908

https://www.linuxidc.com/Linux/2017-03/142023.htm

 


免責聲明!

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



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