47 lines
1.6 KiB
Markdown
Executable File
47 lines
1.6 KiB
Markdown
Executable File
# 5.14 离线安装软件
|
||
当没有网络连接的电脑上需要安装某个软件时,可以使用下面的脚本下载该软件以及依赖包,在脱机电脑上执行:
|
||
`sudo dpkg -i *.deb`
|
||
如果上述安装命令最后报错,则需要执行:`sudo apt install -f`
|
||
如果提示缺少软件包(依赖),则拷贝依赖包名(例如XXX),在有网络的电脑上执行`apt download XXX`下载,再拷贝到脱机电脑上双击安装即可。
|
||
批量下载脚本如下:
|
||
```bash
|
||
#! /bin/bash
|
||
pkg="$*"
|
||
function getDepends()
|
||
{
|
||
ret=`apt-cache depends $1 |grep -i 依赖 |sed 's/(.*)//' |cut -d: -f2`
|
||
if [[ -z $ret ]]; then
|
||
echo "$1 No depends"
|
||
echo -n
|
||
else
|
||
# echo $ret
|
||
# apt-cache depends $1 |grep -i 依赖
|
||
# echo ''
|
||
for i in $ret
|
||
do
|
||
if [[ `echo $pkg |grep -e "$i "` ]]; then
|
||
# echo "$i already in set"
|
||
echo -n
|
||
elif [[ $i =~ '<' ]]; then
|
||
echo "Drop $i"
|
||
elif [[ "$i" != "libc6" &&
|
||
"$i" != "libcairo2" &&
|
||
!("$i" =~ "glib") &&
|
||
!("$i" =~ "gtk") &&
|
||
!("$i" =~ "font")
|
||
]]; then
|
||
# echo "Download $i ing"
|
||
pkg="$pkg $i"
|
||
getDepends $i
|
||
fi
|
||
done
|
||
fi
|
||
}
|
||
|
||
for j in $@
|
||
do
|
||
getDepends $j
|
||
done
|
||
|
||
apt download $pkg -d -y
|
||
``` |