Ubuntu apt 本地源 離線安裝
阿新 • • 發佈:2019-02-01
今天一臺主機(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 <包名> 就會像以前一樣安裝好了指定的包了。