問題場景:
要在離線環境使用以下apt-get命令安裝目標組件xxxx
# apt-get install xxxx
問題描述:
沒有在線的倉庫,無法使用apt-get該如何解決?
解決思路:
下載所有所需的deb包和它的依賴,拷貝到目標安裝機器上,然后搭建一個本地apt倉庫,安裝完成之后刪除本地倉庫
解決方法:
一、新建一台測試的虛擬機,聯網下載所有所需的deb包和其依賴
注意:盡可能保證虛擬機和目標主機操作系統初始安裝一致,或者要求測試虛擬機的組件是目標主機的子集,那樣測試主機下載的deb包和依賴會更全面,具有包括性。
# cd /var/cache/apt/archives
# rm *.deb
安裝dpkg-scanpackage工具
# sudo apt -d install dpkg-dev
注意:-d表示只下載,不安裝
# tar zcvf tool.tar.gz ./*.deb
# rm *.deb
# sudo apt -d install xxx
# tar zcvf abc.tar.gz *.deb
二、拷貝下載的deb包到離線目標機器的目錄,並搭建本地apt倉庫(本案例是/var/debs)
拷貝所有deb文件
# scp /var/cache/apt/archives/*.tar.gz user@目的IP: /home/user
# cd /home/user;
# mkdir tool;tar xvf tool.tar.gz -C tool;dpkg -i tool/*.deb
安裝命令dpkg-scanpackage
#whick dpkg-scanpackage
使用dpkg-scanpackage將目的deb包制作成本地源
# mkdir -p /var/debs ;mv abc.tar.gz /var/debs;chmod -R 755 /var/debs
# dpkg-scanpackage /var/debs /dev/null | gzip > Packages.gz
# cp -p /etc/apt/source.list /etc/apt/source.listbak
# echo "deb [trusted=true] file:/var/debs /" > /etc/apt/source.list
# apt update
注意:如果沒有 [trusted=true],則執行 apt update會報以下錯誤
注意:“debs”后面有空格和“/”,否則執行 apt update會報以下錯誤
安裝目標組件
# apt install xxx
四、安裝完成后,刪除搭建的本地apt倉庫,恢復系統apt倉庫文件
# mv /etc/apt/source.listbak /etc/apt/source.list
# apt update
# rm -rf /var/debs