Ubuntu18.04 離線本地源的製作

參考文檔:

https://my.oschina.net/u/3362827/blog/860711

https://blog.csdn.net/candcplusplus/article/details/52156324

https://www.cnblogs.com/silvermagic/p/7665841.html

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

環境:

一臺能上網的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和相應的密碼。

結束之後,輸入命令,可以查看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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章