如何从 bash 脚本进行 apt 安装?

如何从 bash 脚本进行 apt 安装?

我正在尝试制作一个脚本来设置一个新的虚拟机以供使用,这涉及一些安装,但是当我将安装命令 ( apt-get --yes install <package>) 放入脚本中时,它们总是失败:

E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)

sudo ./setup.sh该脚本以 root ( )身份运行

当我检查apt进程时,我得到:

4 S root      2227     1  0  80   0 -  1126 -      07:33 ?        00:00:00 /bin/sh /usr/lib/apt/apt.systemd.daily update

0 S root      2231  2227  0  80   0 -  1126 -      07:33 ?        00:00:00 /bin/sh /usr/lib/apt/apt.systemd.daily lock_is_held update

问题是,这只发生在从脚本执行 apts 时,如果我手动执行完全相同的命令,他们永远不会遇到这个问题。 shell 脚本运行 apt install 的方式是否有所不同?

无论如何,从 shell 脚本运行apt(或yum就此而言)安装程序的最佳方式是什么,并且不会导致安装程序锁定?

答案1

你必须写sudo apt-get install <package> -y在剧本里。执行脚本./setup.sh

但当然你的用户必须是 sudoer(sudo 访问权限)。

答案2

它告诉您(apt 无法获得锁定)您需要进一步运行该 bash 脚本以进行安装后或等待这些进程名称不存在。您可能会对此很刻薄,杀死进程并删除锁定文件,然后 apt-get update 或只是等待它们完成。

可能导致失败的事情 - 如果您在安装另一个软件包的过程中运行 apt-get install 某些东西(不要这样做,只需使用依赖项)。

相关内容