相关疑难解决方法(0)

Docker 和 Snap 之间的主要区别是什么?

在最近的 c't(可悲的是付费墙)中有一篇关于 Snap 和 Flatpak 的文章。

在此处输入图片说明

这听起来与 Docker 非常相似,很多概念是相同的。现在我的问题是 Snap 和 Docker 之间有什么区别?这些是不同的用例吗?

container ubuntu-core docker snap

105
推荐指数
1
解决办法
7万
查看次数

为什么 Chromium 突然不能访问除 /home 之外的任何分区?

我刚刚升级到 Ubuntu 19.10,令我震惊的是,我发现默认浏览器 Chromium 无法再访问除 /home 之外的其他分区。

这意味着我的包含音乐和视频(/多媒体)的分区无法再访问,例如上传到 Google Drive。这包括 USB 分区。

我在这里找到了对这种现象的另一种描述:https : //fosspost.org/reviews/distributions/ubuntu-19-10-review它说

“此外,虽然我们承认大多数用户只需要访问他们的主文件夹,但值得一提的是,您不再可以从 Chromium 内部访问系统文件和文件夹(除了您的主文件夹之外,您无法访问任何内容)。这意味着例如,如果您要使用上传网站将文件或图像上传到 Internet,则此文件/图像必须位于您的主文件夹中,因为您无法访问 /usr、/etc 等目录或位于的其他目录在您的根分区中。事实上,您根本无法再访问任何其他分区,这包括 U 盘和其他启动分区:”

我想知道为什么要引入这种行为?它违反了多个磁盘、分区和符号链接的整体思想。顺便说一句,这仍然适用于 Firefox。

我的问题是

  • 有没有计划解决这个问题?
  • 我预计这种行为的一个原因是安全性。如果是这样,是否可以解释为什么以及如何提高安全性?用户无论如何都可以合法地访问其他分区上的文件,例如通过符号链接。但是有了这个变化,我必须在上传之前将它们移动到 /home ,所以仍然可以访问它们,尽管更慢更麻烦。
  • 如果这种行为现在是永久性的,那么问题是我们应该如何在我们的文件系统中合并多个磁盘?
  • 或者,有人可以告诉我如何查找和安装 debian 包。我一直无法找到它?

这不是snap 的经典模式什么的副本,为什么有些 snap 没有它就不能安装(例如 MS Visual Studio)?因为那是关于我没有得到的安装过程中的特定错误。我的问题是关于 Ubuntu 19.10 中铬的访问权限。

无论如何,我使用来自 Google 的原始 debian 包通过以下命令解决了该问题:

sudo apt-get install google-chrome-stable
Run Code Online (Sandbox Code Playgroud)

之后,我现在可以再次访问我的其他分区。我知道这在某种意义上是 hacky,因为该软件包不是 Ubuntu 原生的,所以我真的很想获得一些关于如何将多个磁盘和分区与 Chromium 的这种新受限行为合并的建议。

非常感谢

filesystem chromium home-directory

21
推荐指数
4
解决办法
8428
查看次数

gimp 的 Snap 版本无法打开根文件夹中的图像

我在 Ubuntu 22.04 上有 gimp 2.10.30。每当我尝试打开主文件夹之外的图像时,它都会显示Error opening directory '<directory>': permission denied.
当我右键单击图像并选择使用 gimp 打开时,它显示:Opening <image path> failed: Could not open <image path> for reading: No such file or directory。我该如何解决这个问题?

permissions gimp 22.04

8
推荐指数
2
解决办法
1458
查看次数

如何允许快照应用程序访问 /tmp 文件夹?

通常我会避免使用基于快照的应用程序,但有时我需要它们。

例如 - Markdown Lint Tool 仅以 Snap 命名 mdl

当文件在主文件夹中时效果很好 -

$ echo "# header" > ~/test.md
$ /snap/bin/mdl ~/test.md ; echo $?
0
Run Code Online (Sandbox Code Playgroud)

但是当文件位于/tmp目录中时它会失败:

$ echo "# header" > /tmp/test.md
$ cat /tmp/test.md
# header
$ /snap/bin/mdl /tmp/test.md
/snap/mdl/140/lib/ruby/gems/2.4.0/gems/mdl-0.9.0/lib/mdl/doc.rb:57:in `read': No such file or directory @ rb_sysopen - /tmp/test.md (Errno::ENOENT)
    from /snap/mdl/140/lib/ruby/gems/2.4.0/gems/mdl-0.9.0/lib/mdl/doc.rb:57:in `new_from_file'
    from /snap/mdl/140/lib/ruby/gems/2.4.0/gems/mdl-0.9.0/lib/mdl.rb:75:in `block in run'
    from /snap/mdl/140/lib/ruby/gems/2.4.0/gems/mdl-0.9.0/lib/mdl.rb:73:in `each'
    from /snap/mdl/140/lib/ruby/gems/2.4.0/gems/mdl-0.9.0/lib/mdl.rb:73:in `run'
    from /snap/mdl/140/lib/ruby/gems/2.4.0/gems/mdl-0.9.0/bin/mdl:10:in `<top (required)>'
    from /snap/mdl/140/bin/mdl:23:in `load'
    from /snap/mdl/140/bin/mdl:23:in `<main>'
Run Code Online (Sandbox Code Playgroud)

对于此特定应用程序,没有以下选项 …

permissions tmp tmpfs snap

7
推荐指数
2
解决办法
1506
查看次数

如何使用 Snap 应用程序访问已安装的硬盘驱动器?

我的计算机上有一个双启动设置,Windows + Ubuntu。此外,我的计算机中有一个辅助硬盘驱动器,格式化为 NTFS。两种操作系统都可以访问该驱动器。这非常方便,因为我可以将我所有的音乐、个人文件和项目放在那里,并从 Windows 和 Ubuntu 访问它们。在 Ubuntu 上,此驱动器安装在~/shared.

但是 Ubuntu 上的 Snap 应用程序不允许访问此驱动器。这包括 Gimp、VLC、SubtitleEdit 之类的东西,它们可以访问我保存在那里的媒体文件。

这些应用程序使用访问可移动驱动器的选项注册自己。我根据这篇文章授予他们此权限,他们确实能够访问 /media 中的内容,例如 U 盘。但不是这个 NTFS 分区安装在我的主目录中。

我有两种解决方法:

  • 卸载这些应用程序并使用 Apt 等安装它们。这适用于许多应用程序(如 Firefox)。问题是并非所有应用程序都可以从 Apt 获得,或者它们有时处于较低版本。
  • 将我需要临时访问的文件复制到我的桌面,并在我编辑它们后将它们复制回来。恼人的。

这个问题与以下其他问题类似,但并不完全相同:1 , 2 , 3 , 4。我无法在那里找到适用于这种情况的答案。

permissions mount snap

6
推荐指数
1
解决办法
598
查看次数

如何让基于 snap 的 chromium 访问单独安装的文件系统?

我最近从 18.04 版本升级到 Ubuntu 20.04。从那时起, 20.04 附带的snap基于 的chromium浏览器无法访问/opt我单独安装在系统上的分区中的任何项目。

如果我不厌其烦地安装非snap基于版本的chromium,则在 20.04 下就不会出现此问题。

我不确定,但我认为访问运行 snap 程序的文件系统之外的文件系统的问题可能存在于所有snap基于 的软件中,而不仅仅是chromium.

我怎样才能让chromium所有其他snap基于的程序看到我已经安装的所有文件系统?

非常感谢。

PS:在我的系统上,/opt通过以下行安装/etc/fstab...

UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /opt ext4 defaults,auto 0 0
Run Code Online (Sandbox Code Playgroud)

...其中 x 代替实际的、有效的 UUID。

PPSsnap我的系统上的所有非基于软件在访问该分区上的任何内容时都没有任何问题/opt

PPPS:参考文章中建议的解决方案并不能解决我的问题,因为我必须改变我的系统(更改安装、路径、脚本),只是为了让这个残缺的snap基于 -的chromium系统像以前一样工作之前工作。我的目标是根本不改变我长期存在的系统设置,而是简单地安装一个chromium可以以与我多年来运行它相同的方式运行的版本。我现在发布的答案显示了我学习如何做到这一点的方式。在发现消除snap基于 -chromium并将其替换为传统版本的方法后,我花了不超过 10 分钟的时间进行替换chromium,以便一切都像以前一样能够运行。

filesystem restricted-access snap 20.04

4
推荐指数
1
解决办法
4487
查看次数