linux - 适用于 Fedora 37 的 flutter

标签 linux flutter fedora

我正在尝试使用 snapd 在 Fedora 37 上安装 flutter,但它不起作用。每当我尝试使用该命令时:

sudo snap install flutter --classic

我收到错误:

Classic confinement requires snaps under /snap or symlink from /snap to /var/lib/snapd/snap.

然后我运行命令:

sudo ln -s /var/lib/snapd/snap /snap

我收到错误:

Failed to create symbolic link "snap/snap": File exists.

如何修复此问题或找到在 Fedora 37 上使用 flutter 的其他方法?

[ninal@fedora ~]$ sudo ln -s /var/lib/snapd/snap /snap
ln: failed to create symbolic link '/snap/snap': File exists
[ninal@fedora ~]$ sudo snap install flutter --classic
error: cannot install "flutter": classic confinement requires snaps under /snap
       or symlink from /snap to /var/lib/snapd/snap
[ninal@fedora ~]$ 

最佳答案

无论是否使用 Sudo,如果链接文件已存在,ln -s 总是会失败。为了覆盖,您可以使用 --force 选项覆盖现有链接文件。

但是,错误消息“snap/snap”:文件存在。 表示您已经有一个名为 /snap 的目录,其中有一个新的 snap 尝试创建符号链接(symbolic link)。

因此 ln 有两种不同的模式,最后一个参数是 的名称

  1. 链接文件或
  2. 要在其中创建链接文件的目录
$ cd /tmp
$ mkdir -p a/b/c
$ ln -s /tmp/a/b        # First time, create "b" symlink in /tmp
$ ln -s /tmp/a/b        # Second time, fails since symlink exists
ln: failed to create symbolic link './b': File exists
$ ln -sf /tmp/a/b       # Succeds, overwrites existing symlink
$ mkdir c
$ ln -s /tmp/a/b/c c    # First time, create "c" symlink inside /tmp/c directory
$ ln -s /tmp/a/b/c c    # Second time, fails since symlink exists
ln: failed to create symbolic link 'c/c': File exists
$

对于您的特定场景,您需要删除现有的 /snap 目录以创建预期的符号链接(symbolic link)。

sudo mv /snap /snap.old
sudo ln -s /var/lib/snapd/snap /snap

关于linux - 适用于 Fedora 37 的 flutter ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75396068/

相关文章:

ssl - 收到错误 SSLInitializationException : TLS SSLContext not available running a media server application

linux - 安装时出错,错误消息 :"mount.nfs: remote share not in ' 主机 :dir' format"

fedora - 在规范步骤中以编程方式安装 RPM 失败

linux - shell脚本中的新行

flutter : Target file "lib/main.dart" not found

intellij-idea - Intellij Flutter 为导入添加前缀

dart - Flutter - 如何在 flutter 的数字键盘中添加完成按钮

Linux:如何显示 UID 介于 300 和 500 之间的所有 Linux 用户?

linux - UART - 在轮询模式下使用 FIFO

linux - 从 lsof(Linux 命令行)中提取字段/属性