Loading

离线环境使用以下apt-get命令安装目标组件

转自  Aaron_Zhao的ChinaUnix博客

问题场景:
要在离线环境使用以下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

posted @ 2021-05-07 11:53  Ellisonzhang  阅读(1017)  评论(0编辑  收藏  举报