1. 程式人生 > >Ubuntu apt 本地源 離線安裝

Ubuntu apt 本地源 離線安裝

今天一臺主機(Ubuntu 14.04)不知道為什麼連不上外網了。只能和區域網內的其他主機相互ping通。但是上面一個正在跑的程式出了問題,需要安裝兩個額外的包,而且這兩個包依賴還挺多的樣子。這可急死我了。但是我另一臺筆記本可以上外網。碰巧也安裝的是Ubuntu14.04。我就想能不能把要安裝的包先在筆記本上下載好,然後通過U盤轉移到前面那臺主機上,再在那臺主機上通過本地包安裝呢?通過網上一番搜尋後,終於搞定了。現在總結一下步驟。

在能上網的筆記本上下載好需要的包

$ sudo rm -rf /var/cache/apt/archives/*  # 清空快取目錄,這一步也可以不做
$ sudo apt-get -d
install <包名>

執行完該命令後,需要的包及依賴都會下載到 /var/cache/apt/archives。

複製到U盤中

將下載好的包( /var/cache/apt/archives目錄下的所有檔案)複製到U盤中,準備轉移。如果你不想拷貝多餘的包檔案,你可以提前將 /var/cache/apt/archives 目錄清空後再下載需要的包。

# 先在U盤中建立好一個目錄debs
$ sudo cp -r /var/cache/apt/archives/* /U盤/路徑/debs/

下面轉到不能上網的主機上操作

在主機上建立包快取目錄

$ sudo mkdir /var/debs

將U盤中下載好的包檔案全部複製到/var/debs目錄下

$ sudo cp -r /U盤/路徑/debs/* /var/debs/

生成包索引檔案

$ sudo touch /var/debs/Packages.gz
$ sudo chmod -R 777 /var/debs/  # 這一步是為了獲得檔案的可寫可讀可執行許可權,要不然後面會失敗
$ sudo dpkg-scanpackages debs  /dev/null  | gzip > debs/Packages.gz  # 建立索引

在 /etc/apt/sources.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 <包名> 就會像以前一樣安裝好了指定的包了。

參考: