在 DEB 包中,无法离线安装应用程序(在无法访问互联网的计算机上)。因为存在依赖关系。对于 .snap,根据天哪!Ubuntu,Snap 包可以包含应用程序二进制文件及其运行所需的任何依赖项。
这是否意味着任何 .snap 应用程序都可以安装在离线电脑上(如 MacOSX 中的 .dmg)?因为不需要从源获取任何依赖项。
答案1
看来你必须先下载并安装 ubuntu-core snap,然后才能离线安装任何其他 snap。对我来说,这个方法有效:
在在线 Ubuntu 系统上运行以下命令:
snap 下载 ubuntu-core 下载一些软件包
这会将以下文件放入您的当前目录中:
ubuntu-core_1797.assert ubuntu-core_1797.snap somePackage.assert 一些包.snap
将这些文件复制到离线系统,然后安装它们(从复制到的目录):
sudo snap ack ubuntu-core_1797.assert sudo snap 安装 ubuntu-core_1797.snap sudo snap ack somePackage.assert sudo snap 安装 somePackage.snap
这应该可以解决@lane 在安装本地 .snap 文件时尝试连接到互联网时遇到的问题。
答案2
首先,你确实可以离线安装 debs:
$ sudo dpkg -i <deb>
但是,你说得对,它没有考虑到 deb 的依赖关系——你实际上需要有 deb 和全部为了成功安装它,它的依赖项必须可脱机使用:
$ sudo dpkg -i <deb> <dependency1> <dependency2> ...
所以是的,离线安装 snap 非常容易,你所需要的只是一个 snap(因为如你所知,它包含了它的依赖项):
$ sudo snap install path/to/snap