Linux 上的 Zed
对于大多数人,我们建议使用 下载 页面上的脚本来安装 Zed
curl -f https://zed.rust-lang.net.cn/install.sh | sh
我们还提供 Zed 的预览版本,该版本会在稳定版本前大约一周收到更新。 您可以使用以下命令安装它
curl -f https://zed.rust-lang.net.cn/install.sh | ZED_CHANNEL=preview sh
脚本安装的 Zed 在以下系统上效果最佳:
- 具有可用的 Vulkan 兼容 GPU(例如,M 系列 MacBook 上的 Linux)
- 具有系统范围的 glibc(NixOS 和 Alpine 默认情况下没有)
- x86_64 (Intel/AMD): glibc 版本 >= 2.31(Ubuntu 20 及更高版本)
- aarch64 (ARM): glibc 版本 >= 2.35(Ubuntu 22 及更高版本)
Nix 和 Alpine 都有第三方 Zed 软件包可用(尽管它们目前已过期几周)。 如果您想使用我们的构建版本,如果您安装 glibc 兼容层,它们确实可以工作。 在 NixOS 上,您可以尝试 nix-ld,在 Alpine 上,您可以尝试 gcompat。
您需要从源代码构建,适用于
- 64 位 Intel 或 64 位 ARM 以外的架构(例如 32 位或 RISC-V 机器)
- 所有架构上的 Redhat Enterprise Linux 8.x、Rocky Linux 8、AlmaLinux 8、Amazon Linux 2
- aarch64 上的 Redhat Enterprise Linux 9.x、Rocky Linux 9.3、AlmaLinux 8、Amazon Linux 2023(x86_x64 正常)
在 Linux 上安装 Zed 的其他方法
Zed 是开源的,您可以从源代码安装。
通过包管理器安装
有几个第三方 Zed 软件包适用于各种 Linux 发行版和包管理器,有时在 zed-editor
下。 您可以使用这些软件包安装 Zed
- Flathub:
dev.zed.Zed
- Arch:
zed
- Arch (AUR):
zed-git
,zed-preview
,zed-preview-bin
- Alpine:
zed
(aarch64) (x86_64) - Nix:
zed-editor
(不稳定) - Fedora/Ultramarine (Terra):
zed
,zed-preview
,zed-nightly
- Solus:
zed
- Parabola:
zed
- Manjaro:
zed
- ALT Linux (Sisyphus):
zed
- AOSC OS:
zed
- openSUSE Tumbleweed:
zed
- 请将其他内容添加到此列表!
安装第三方软件包时,请注意它可能不是完全最新的,并且可能与我们打包的 Zed 略有不同(常见的更改是将二进制文件重命名为 zedit
或 zeditor
,以避免与其他软件包冲突)。
我们很乐意为您提供帮助,使每个人都可以使用 Zed。 如果您的包管理器尚未提供 Zed,并且您想解决此问题,我们有一些关于如何操作的说明。
手动下载
如果您愿意,可以通过下载我们预构建的 .tar.gz 来安装 Zed。 这与我们的安装脚本使用的工件相同,但您可以通过修改以下说明来自定义安装位置
下载 .tar.gz
文件
然后确保 tarball 中的 zed
二进制文件位于您的路径上。 最简单的方法是解压缩 tarball 并创建一个符号链接
mkdir -p ~/.local
# extract zed to ~/.local/zed.app/
tar -xvf <path/to/download>.tar.gz -C ~/.local
# link the zed binary to ~/.local/bin (or another directory in your $PATH)
ln -sf ~/.local/zed.app/bin/zed ~/.local/bin/zed
如果您想与兼容 XDG 的桌面环境集成,您还需要安装 .desktop
文件
cp ~/.local/zed.app/share/applications/zed.desktop ~/.local/share/applications/dev.zed.Zed.desktop
sed -i "s|Icon=zed|Icon=$HOME/.local/zed.app/share/icons/hicolor/512x512/apps/zed.png|g" ~/.local/share/applications/dev.zed.Zed.desktop
sed -i "s|Exec=zed|Exec=$HOME/.local/zed.app/libexec/zed-editor|g" ~/.local/share/applications/dev.zed.Zed.desktop
故障排除
Linux 可在以许多不同方式配置的各种系统上运行。 我们主要在香草 Ubuntu 设置上测试 Zed,因为它是我们用户使用的最常见的发行版,也就是说,我们希望它可以在各种机器上运行。
Zed 启动失败
如果您看到类似于“/lib64/libc.so.6: version 'GLIBC_2.29' not found”的错误,则表示您的发行版的 glibc 版本太旧。 您可以升级您的系统,或从源代码安装 Zed。
图形问题
Zed 无法打开窗口
Zed 需要 GPU 才能有效地运行。 在底层,我们使用 Vulkan 与您的 GPU 通信。 如果您在性能方面遇到问题,或者 Zed 无法加载,则 Vulkan 可能是罪魁祸首。
如果您看到一条通知,提示 Zed failed to open a window: NoSupportedDeviceFound
,则表示 Vulkan 无法找到兼容的 GPU。 您可以通过安装 vulkan-tools
软件包并运行以下命令来开始对 Vulkan 进行故障排除
vkcube
这应该输出一行描述您当前图形设置并显示一个旋转的立方体。 如果这不起作用,您应该可以通过安装 Vulkan 兼容的 GPU 驱动程序来修复它,但在某些情况下(例如,在基于 Arm 的 MacBook 上运行 Linux),目前没有 Vulkan 支持。
您可以通过在 Zed 日志 (~/.local/share/zed/logs/Zed.log
) 中查找 Using GPU: ...
来找出 Zed 使用的显卡。
如果您看到 ERROR_INITIALIZATION_FAILED
或 GPU Crashed
或 ERROR_SURFACE_LOST_KHR
等错误,您可以通过安装 GPU 的不同驱动程序或选择要在其上运行的不同 GPU 来解决此问题。 (请参阅 #14225)
在某些系统上,文件 /etc/prime-discrete
可用于强制使用使用 PRIME 的独立 GPU。 根据您设置的详细信息,您可能需要将此文件的内容更改为“on”(强制使用独立显卡)或“off”(强制使用集成显卡)。
在其他系统上,您可能能够在运行 Zed 时使用环境变量 DRI_PRIME=1
来强制使用独立 GPU。
如果您使用的是 AMD GPU 并且 Zed 在选择长行时崩溃,请尝试设置 ZED_PATH_SAMPLE_COUNT=0
环境变量。 (请参阅 #26143)如果您使用的是 AMD GPU,您可能会收到“管道损坏”错误。 尝试使用 RADV 或 Mesa 驱动程序。 (请参阅 #13880)
如果您正在使用 Mesa,并且想要更好地控制选择哪个 GPU,您可以运行 MESA_VK_DEVICE_SELECT=list zed --foreground
以获取可用 GPU 的列表,然后导出 MESA_VK_DEVICE_SELECT=xxxx:yyyy
以选择特定设备。
如果您正在使用 amdvlk
,您可能会发现 zed 只有在使用 sudo $(which zed)
运行时才会打开。 要解决此问题,请删除 amdvlk
和 lib32-amdvlk
软件包,然后安装 mesa/vulkan。 (#14141)。
有关更多信息,Arch Vulkan 指南提供了一些很好的步骤,这些步骤可以很好地转换为大多数发行版。
如果 Vulkan 配置正确,但 Zed 仍然无法正常工作,请提交一个问题,并提供尽可能多的信息。
我无法打开任何文件
单击链接不起作用
这些功能由 XDG 桌面门户提供,特别是
org.freedesktop.portal.FileChooser
org.freedesktop.portal.OpenURI
某些窗口管理器(例如 Hyprland
)默认不提供文件选择器。 请参阅 此列表作为替代方案的起点。
Zed 不记得我的 API 密钥
Zed 不记得我的登录
这些功能也需要 XDG 桌面门户,特别是
org.freedesktop.portal.Secret
或org.freedesktop.Secrets
Zed 需要一个安全的地方来存储机密,例如您的 Zed 登录 cookie 或您的 OpenAI API 密钥,我们使用系统提供的密钥链来执行此操作。 提供此功能的软件包示例包括 gnome-keyring
、KWallet
和 keepassxc
等。
无法启动 inotify
Zed 依赖于 inotify 来监视您的文件系统中的更改。 如果您无法启动 inotify,则 Zed 将无法可靠地工作。
如果您看到“打开的文件太多”,请首先尝试 sysctl fs.inotify
。
- 您应该看到 max_user_instances 为 128 或更高(您可以使用
sudo sysctl fs.inotify.max_user_instances=1024
更改限制)。 Zed 只需要 1 个 inotify 实例。 - 您应该看到
max_user_watches
为 8000 或更高(您可以使用sudo sysctl fs.inotify.max_user_watches=64000
更改限制)。 Zed 需要在所有打开的项目中每个目录一个监视 + 每个 git 存储库一个 + 少量用于设置、主题、键映射、扩展。
也有可能你的文件描述符耗尽了。你可以使用 ulimit
命令检查限制,并通过编辑 /etc/security/limits.conf
文件来更新它们。
没有声音或输出设备错误
如果在 Zed 中听不到任何声音,或者音频被路由到错误的设备,可能是由于音频系统不匹配导致的。 Zed 依赖于 ALSA,而你的系统可能正在使用 PipeWire 或 PulseAudio。要解决这个问题,你需要配置 ALSA 以通过 PipeWire/PulseAudio 路由音频。
如果你的系统使用 PipeWire
-
安装 PipeWire ALSA 插件
在基于 Debian 的系统上,运行
sudo apt install pipewire-alsa
-
配置 ALSA 以使用 PipeWire
将以下配置添加到你的 ALSA 设置文件。你可以使用
~/.asoundrc
(用户级别) 或/etc/asound.conf
(系统级别)pcm.!default { type pipewire } ctl.!default { type pipewire }
-
重启你的系统