使用不同软件安装方法的安全性(同时)

使用不同软件安装方法的安全性(同时)

我想知道从 Ubuntu 打包系统之外安装软件是否会使 apt/dpkg 工具混淆。我知道安装太新的 .deb 包并尝试手动递归解决依赖关系(因为依赖关系也太新)可能会使它们混淆。但是不同的打包工具(如 pip 或 snap)怎么办?通过“sudo make install”从源代码安装东西怎么办?我认为 apt/dpkg 不知道正在安装所有这些软件。那么这对这个打包系统的完整性是否安全?如果我这样做会怎么样:
sudo apt install cmake #low version from Ubuntu repository
sudo make install #high version from Cmake website in sources
sudo apt remove cmake
我假设两个安装都针对文件系统中的同一位置。

答案1

您正确地假设dpkgapt不知道来自pip或的这个额外软件sudo make install。然而,这两个安装不要瞄准文件系统中的相同位置。额外的软件来自pipsudo make install安装在您的 中优先级更高的目录中(更早)$PATH

如果您使用 标志从 安装软件包pip--user而不使用sudo,则软件包将安装到~/.local/bin。使用 安装的软件包sudo make install通常会安装到/usr/local/bin

如果您运行:echo $PATH您将看到这些路径列在软件包使用的标准目录之前,因此当您运行命令时将执行手动安装的软件包。这有助于避免使用或deb安装相同软件包时发生冲突。aptdpkg

因此,您可以保持apt依赖项满足,并且无需卸载apt的版本cmake。这样,您仍然可以通过执行完整路径在脚本或终端中调用dpkg已安装的版本: 运行命令:执行该版本。cmake/usr/bin/cmakecmakesudo make install

使用 安装的软件包也是如此pip。例如,如果您youtube-dl通过安装apt-get然后使用 安装:pip install youtube-dl --user,则将执行pip版本:~/.local/bin/youtube-dl而不是/usr/bin/youtube-dl

您可以安装两个相冲突的版本并且仍然可以使用它们。

这并不是说不会发生冲突。您的系统依赖于某些软件包(如 Python),如果您更改系统默认版本,这些软件包可能无法正常运行。此外,如果您不信任来源,则安装随机下载的软件被认为不太安全。手动下载的软件也可能存在错误或安全漏洞,您必须记住通过下载软件或使用 来手动更新pip

答案2

那么如果我不太确定某个包,我可以让 apt/dpkg 安装到 /usr/local(或 ~/.local)吗?我想不行,因为 .deb 包包含固定位置。另一方面,在使用这些工具处理时添加一个中缀并不是什么大问题。

相关内容