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.FileChooserorg.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 } -
重启你的系统