Linux下安装Swift编程语言教程
在Linux上安装Swift需手动下载官方工具链并放置于/opt/swift,配置PATH和LD_LIBRARY_PATH指向bin和lib目录,否则swiftbuild会因库缺失而失败。系统需为Ubuntu/Debian,注意CPU架构与glibc版本需不低于2.28。解压后设置环境变量至~/.bashrc并执行source命令使其生效,VSCode调试前
Swift 在 Linux 上的安装,需要手动下载官方工具链并配置两个关键环境变量,尤其是 LD_LIBRARY_PATH,否则即使 swift --version 能正常输出版本号,实际运行项目时 swift build 也会失败。这一机制源于 Swift 运行时对动态库的底层依赖,并非偶然现象。
结论先行:即便终端中 swift --version 显示正常,只要 LD_LIBRARY_PATH 未正确配置,swift build 必然失败。这个常见问题看似意外,实则完全可以预期。
下载前确认系统兼容性
Swift 官方仅面向 Ubuntu/Debian 系提供预编译包,CentOS 或 RHEL 用户无法直接安装。目前(2026 年中),推荐使用稳定版 swift-5.9-RELEASE 或尝鲜版 swift-6.0-SNAPSHOT-2026-04-15-a。
下载前需注意以下细节:
- 使用
uname -m确认 CPU 架构。x86_64 机器选择ubuntu22.04或ubuntu24.04的包;ARM 架构服务器或树莓派则必须选择名称包含aarch64的版本。 - 运行
ldd --version查看 glibc 版本。Ubuntu 22.04 及更新系统基本可直接运行;若仍在使用 Ubuntu 18.04 或更老系统,建议降级至swift-5.7,否则解压后执行swift可能报错“No such file or directory”——实际是动态库链接失败,而非文件缺失。 - 避免直接复制旧教程中的 wget 链接,许多链接已失效。正确做法是前往 Swift 官网 Linux 栏目,找到对应系统和版本的最新 Release 或 Snapshot 链接,手动复制。
解压后配置两条环境变量
swift 命令本身是一个外壳,核心动态库 libswiftCore.so、libsourcekitd.so 等位于 usr/lib/swift/linux/ 目录下。Linux 动态链接器默认不扫描该路径,仅设置 PATH 相当于只拿到遥控器而缺少电池。
正确操作流程如下:
- 解压到用户目录,例如
tar xzf swift-5.9-RELEASE-ubuntu22.04.tar.gz -C ~/,得到~/swift-5.9-RELEASE-ubuntu22.04/。 - 编辑
~/.bashrc,在末尾添加两行(路径需改为实际路径):
export PATH=$HOME/swift-5.9-RELEASE-ubuntu22.04/usr/bin:$PATH
export LD_LIBRARY_PATH=$HOME/swift-5.9-RELEASE-ubuntu22.04/usr/lib/swift/linux:$LD_LIBRARY_PATH - 执行
source ~/.bashrc使配置生效。若使用 VSCode,请务必完全重启窗口,因为集成终端不会自动继承新环境变量。 - 注意一个易被忽略的干扰项:若之前通过 Snap 安装过 Swift(例如从 Ubuntu 软件中心安装),需先运行
sudo snap remove swift。Snap 的沙盒机制会屏蔽手动设置的LD_LIBRARY_PATH,导致配置无效。
VSCode 调试前的三重验证
安装 vonage.vscode-swift 插件后,并不能直接调试。该插件仅提供界面,核心组件 sourcekit-lsp 和 lldb 必须各自就位且版本匹配。
建议按以下顺序检查:
- 运行
which sourcekit-lsp,输出应为 Swift 工具链路径,例如/home/xxx/swift-5.9-RELEASE-ubuntu22.04/usr/bin/sourcekit-lsp。若输出系统路径或其他位置,说明路径未正确配置。 - 在 VSCode 设置中显式填写
swift.path.sourceKitLSP字段,值为上述绝对路径。自动发现功能常不可靠,手动指定最为稳定。 lldb版本必须与 Swift 工具链匹配。Ubuntu 22.04+ 推荐安装lldb-16(sudo apt install lldb-16),并在.vscode/launch.json中指定:"lldb.executable": "/usr/bin/lldb-16"。
整个过程中,最容易被忽视的是 LD_LIBRARY_PATH 未正确生效,或 VSCode 未重启导致 sourcekit-lsp 启动即退出。此时查看日志,往往仅显示空行或“connection closed”,无法定位具体问题。
正是这些看似平常的细节,决定了 Swift 在 Linux 上能否真正运行。谨慎处理,总能避免踩坑。
