是否建议同时执行“ sudo apt-get安装”,“ sudo snap安装”和“ pip安装--user”?


0

为了提高安装效率,我想进行并行安装包时,我不得不使用命令sudo apt-get installsudo snap installpip install --user 在脚本中。

这是一个好主意,还是个坏主意(即,对于Linux OS或计算机硬件(如存储介质)可能是灾难性的)?我在执行此操作时应注意的任何陷阱?


1
如果尝试使用aptpip同时安装相同的软件包,则可能会遇到严重的问题。两者都安装在相同的位置。
user535733

Answers:


2

系统不允许apt install一次执行多次。它将在第二个错误中出错,因为它无法锁定特殊文件。原因:apt removeapt install可能有冲突的动作。一个软件包可能需要删除其他操作需要的内容。我们称之为“依赖地狱”。

“快照”可以做到,但是您需要一个特殊功能:

snap set system experimental.parallel-instances=true

不会有任何问题:“快照”旨在独立于一切。这里没有依赖项问题:所有快照都安装自己的软件。

“点子”也可以做到。

xargs --max-args=1 --max-procs=4 sudo pip install < install.txt

它将安装“ install.txt”中的软件包(每一行一个软件包),并且一次将安装4(在此示例中)。注意:依赖项可能会令人讨厌。pipenv install package packages本来可以解决依赖关系的问题,但有一个严重的缺点:创建一个文件和一个锁定文件需要很长时间才能创建,因此速度上并没有太大提高。但是完成后它确实会并行安装。

假设您打算同时使用这3个中的每个(而不是同时使用这3个中的一个):您可以同时运行每个3个,其中snap和pip可以并行安装。还要注意以下事项:可以apt用来安装也可以安装的软件包pip。同时执行此操作可能会带来麻烦。

如评论中所述:总是sudo apt update在安装新软件之前进行操作。

是否建议同时执行“ sudo apt-get安装”,“ sudo snap安装”和“ pip安装--user”?

不,但“推荐”并不是真正的表演停止者:)


我可以使用python3 concurrent.futures托管各种subprocess.run()进程,这些进程将apt-get install与您的parallised snappip命令一起运行cmd 吗?还是应该将所有并发/并行管理限制在concurrent.futures
太阳熊

1
当然。就像我说的那样:apt安装不能一次以上完成。我将进行1 apt安装(并在1行中添加所有软件包),您将赢得安装最大数量的snap或pip安装所需的时间。
Rinzwind
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.