FreeBSD编程工具
FreeBSD提供了很多开发工具,例如C和C++编译器以及汇编器,以及经典UNIX工具,如 sed 和 awk 。
FreeBSD提供的解释器(Interpreters)
FreeBSD提供了一系列解释器(解释型语言):
编译器
FreeBSD默认提供 C llvm
,所以不需要 gcc
就可以编写C语言程序并且 从源代码编译构建FreeBSD
核心系统已经安装了
clang
(llvm) 以及make
,所以通常不需要再安装
安装
安装必要工具
pkg install bash ruby lua54 node npm-node22 \
python311 py311-pip go \
tmux graphviz
# 发行版14.3提供的go版本是 1.21
# 根据 gopls 说明,Go 1.21增加了向前兼容支持,所以只要使用go 1.21或更高版本安装gopls,任何必要的工具链升级都将自动处理,就像任何其他依赖项一样
#
# 发行版现在不通过lua软件包名安装,而是要要指定lua版本软件包进行安装,例如 lang/lua51 , lang/lua52 , lang/lua54
# 当前建议安装 lua54 , 即安装lua5.4.7
#
# 发行版14.3提供的node版本是 22.16
构建 neovim 开发环境
下载我自己的 NeoVim IDE 配置仓库:
mkdir /home/admin/src
cd /home/admin/src && git clone https://github.com/huataihuang/cloud-studio.git && cd /home/admin/src/cloud-studio/config && sh install.sh
我这里遇到和 Linux桌面 不一样的报错( :MasonLog
查看)
[INFO Fri Jun 20 15:52:15 2025] ...e/nvim/lazy/mason.nvim/lua/mason-core/installer/init.lua:184: Executing installer for Package(name=python-lsp-server) {}
[INFO Fri Jun 20 15:52:15 2025] ...e/nvim/lazy/mason.nvim/lua/mason-core/installer/init.lua:184: Executing installer for Package(name=lua-language-server) {}
[INFO Fri Jun 20 15:52:15 2025] ...e/nvim/lazy/mason.nvim/lua/mason-core/installer/init.lua:184: Executing installer for Package(name=bash-language-server) {}
[INFO Fri Jun 20 15:52:15 2025] ...e/nvim/lazy/mason.nvim/lua/mason-core/installer/init.lua:184: Executing installer for Package(name=clangd) {}
[INFO Fri Jun 20 15:52:15 2025] ...e/nvim/lazy/mason.nvim/lua/mason-core/installer/init.lua:184: Executing installer for Package(name=ruby-lsp) {}
[ERROR Fri Jun 20 15:52:15 2025] ...e/nvim/lazy/mason.nvim/lua/mason-core/installer/init.lua:249: Installation failed for Package(name=lua-language-server) error="The current platform is unsupported."
[INFO Fri Jun 20 15:52:15 2025] ...e/nvim/lazy/mason.nvim/lua/mason-core/installer/init.lua:184: Executing installer for Package(name=gopls) {}
[ERROR Fri Jun 20 15:52:15 2025] ...e/nvim/lazy/mason.nvim/lua/mason-core/installer/init.lua:249: Installation failed for Package(name=clangd) error="The current platform is unsupported."
[ERROR Fri Jun 20 15:55:01 2025] ...zy/mason.nvim/lua/mason-core/installer/registry/init.lua:186: Failed to download schemas Package(name=bash-language-server) Schema download timed out.
[ERROR Fri Jun 20 15:55:01 2025] ...e/nvim/lazy/mason.nvim/lua/mason-core/installer/init.lua:249: Installation failed for Package(name=python-lsp-server) error="Unable to find python3 installation in PATH. Tried the following candidates: python3, python."
[ERROR Fri Jun 20 15:55:03 2025] ...e/nvim/lazy/mason.nvim/lua/mason-core/installer/init.lua:249: Installation failed for Package(name=ruby-lsp) error=spawn: gem failed with exit code - and signal -. gem is not executable
[INFO Fri Jun 20 15:55:03 2025] ...e/nvim/lazy/mason.nvim/lua/mason-core/installer/init.lua:245: Installation succeeded for Package(name=bash-language-server)
[ERROR Fri Jun 20 15:55:40 2025] ...im/lazy/mason.nvim/lua/mason-registry/sources/github.lua:146: Failed to install registry GitHubRegistrySource(repo=mason-org/mason-registry). "Failed to download registry archive."
[ERROR Fri Jun 20 15:56:03 2025] ...e/nvim/lazy/mason.nvim/lua/mason-core/installer/init.lua:249: Installation failed for Package(name=gopls) error=spawn: go failed with exit code 1 and signal 0.
看起来 lua-language-server
和 clangd
并不支持FreeBSD? 不可能啊
另外由于路径中没有 python3
(只有 python3.11
所以还有python比昂管报错,以及访问go下载仓库软件报错
参考 Use Language Servers for Development in the FreeBSD Src Tree 原来在FreeBSD上,可以使用 ccls
Language server(发行版支持,可以直接用 pkg
安装),也可以像Linux一样使用 clangd
但是需要先安装 llvm15
在
dev
jail 中安装ccls
:
这个空间要求很大(2G):
警告
我发现一个困扰: Mason ( mason.nvim
)支持的LSP列表和 nvim-lspconfig
其实有一些gap:
有些LSP在
nvim-lspconfig
中支持,例如ccls
,但是在mason.nvim
列表中没有对应项,就无法安装: 也就是在plugins.lua
中配置:
require("lazy").setup({
-- ...
-- LSP manager
{ "mason-org/mason.nvim", opts = {} },
{
"mason-org/mason-lspconfig.nvim",
dependencies = {
"mason-org/mason.nvim",
"neovim/nvim-lspconfig",
config = function()
local lspconfig = require("lspconfig")
lspconfig.pylsp.setup({})
end,
},
opts = {
ensure_installed = { "pylsp", "lua_ls", "bashls", "ruby_lsp" },
},
},
{
"pmizio/typescript-tools.nvim",
dependencies = { "nvim-lua/plenary.nvim", "neovim/nvim-lspconfig" },
opts = {},
},
})
不能设置 ccls
,只能设置 clangd
,因为 Mason ( mason.nvim
) 只支持这个 clangd
插件安装,才能映射到 nvim-lspconfig
如果要支持更多插件(如 ccls
),就只能直接使用 nvim-lspconfig
,不要依赖 mason.nvim
警告
在FreeBSD平台使用 Mason ( mason.nvim
) 还会遇到很多报错: The current platform is unsupported
,例如安装:
clangd
lua_ls
参考 Neovim Mason and clangd ,原因是 Mason ( mason.nvim
) 是一个Linux为主的插件,所以在FreeBSD上有很多问题。虽然能够hack但是得不偿失。所以有人建议改为使用 helix-editor 来代替nvim,开箱即用,并且支持直接使用系统现有的LSP而不是每次启动来安装LSP
知乎上有一篇 开始使用 HELIX EDITOR 编辑器 可以参考入门
安装依赖
根据
MasonLog
日志,如果要安装ruby_lsp
,则系统需要先安装gem
工具,在 FreeBSD 上是通过pkg install devel/ruby-gems
获得要安装
clangd
,则需要安装llvm
,根据 FreeBSD 14.3 RELEASE信息 ,当前使用llvm19
修改
~/.config/nvim/lua/lsp.lua
:
备注
需要 配置Go程序代理服务器
警告
暂时没有时间继续,后续再研究
参考
How to Install Development Tools (GCC, CMake, etc.) on FreeBSD Operating System
Use Language Servers for Development in the FreeBSD Src Tree
GitHub: ranjithshegde/ccls.nvim 配置ccls语言服务器的neovim插件,待研究
failed to install lua-language-server #995 在alpine linux解决平台兼容性报错的方法,可以借鉴