如何在没有互联网访问的情况下向 Ubuntu 添加程序

如何在没有互联网访问的情况下向 Ubuntu 添加程序

我家里没有互联网,骑自行车去图书馆大约需要半个小时。我下载了 .deb 文件,试图安装在我家的电脑上,但所有下载的文件都说无法安装,因为它依赖于软件包 X。第二天我将下载软件包 X,但它需要软件包 Y。有没有办法找出 deb 文件的所有子依赖项?

我曾尝试从图书馆计算机上的 USB 或外部硬盘启动,但安全设置阻止了这样做。

此外,我也不认识有 Linux 计算机的人。

答案1

您可以前往Ubuntu 软件包搜索并在任何计算机上找到软件包,即使是 Windows 或 Mac OSX。然后,您可以下载 .deb 文件,并将其放在闪存驱动器上,然后在 Ubuntu 计算机上双击它们以进行安装(或者在终端中执行sudo dpkg -i /path/to/package.deb

答案2

帖子这里有一些建议。软件包依赖看起来这可能就是你要找的东西。

答案3

在 ubuntu 中,软件包就像食物一样。如果你想要一杯咖啡,你需要咖啡豆和牛奶。如果你想要一碗麦片,你需要一盒麦片和牛奶,就像咖啡一样。

同样的事情。你想要包 X,而它需要包 Z。你想要包 Y,但它也需要包 Z。如果你想下载所有包,最好的方法是带着你的电脑去图书馆并运行sudo apt-get package

但如果你不能把电脑带到图书馆,你可以去Ubuntu 软件包搜索正如 ObsessiveFOSS 所说) 并找到您需要的所有软件包。找到特定软件包后,单击该软件包,然后转到“其他相关软件包”部分并安装所有软件包安装主包。否则将显示错误。

答案4

这是部分答案;希望其他人能够发布详细的答案,也许以教程的形式,如何使用实用程序自动处理依赖项、将包下载到 Windows(或其他非 Linux)机器,以及将它们安装在您的 Ubuntu 系统上。

相反,我只集中回答这个问题的一部分。

有没有什么方法可以找出 deb 文件的所有子依赖项?

是的,有一种方法可以做到这一点并且结果基本准确。

检查http://packages.ubuntu.com/这不是一个很好的解决方案,因为你通常已经拥有许多它所说的依赖包。相反,你应该模拟安装你想要的包

apt-get -s install packagename

由于您实际上并未安装任何东西,因此您不必使用sudo

除了其他一些信息之外,它还会告诉你需要安装(或升级或删除)哪些软件包packagename待安装。

虽然这通常会给出正确的答案,但如果您最近无法运行sudo apt-get update(您可能无法运行,因为您的计算机从未连接到 Internet),有时它不会给出正确的答案。这是因为某些软件包的版本比您计算机上软件包信息数据库的版本要新。这些较新的软件包有时具有不同的依赖关系(或者只是需要它已经依赖的软件包的较新版本……而您可能已经拥有较早的版本)。

如果您暂时没有互联网连接和/或只需要安装少量软件包,运行这种模拟非常有用。对于长期软件包管理来说,这是不够的,因为:

  • 你永远不会知道重要的更新,你的机器绝对即使没有网络连接,也容易成为某些安全漏洞的受害者。随着基于 Linux 的系统被越来越多的人使用,这个问题将变得更加严重(因为届时将有更多恶意软件针对 Ubuntu 和其他基于 Linux 的系统编写)。

  • 尽管比起为了安装每个包而多次往返于你家和公共图书馆之间(当你发现需要它们作为依赖项时检索包)所需的精力要少得多,但如果你必须安装大量软件或频繁安装软件,计算依赖关系apt-get -s install ...并手动下载所有必要的.deb文件仍然非常耗时。

希望有人能发布关于此问题的完整解决方案。我知道有解决方案,但我对它们都不够熟悉,无法给出好的、彻底的答案。

相关内容