Linux 系统中安装 ktlint

在 Linux 系统中安装 ktlint(Kotlin 代码格式化 / 检查工具)非常简单,主要有手动安装 (通用所有 Linux 发行版)和包管理器安装(针对特定发行版)两种方式,下面优先推荐通用且易维护的手动安装方式。

一、通用手动安装(推荐)

这种方式适配所有 Linux 发行版(Ubuntu、CentOS、Fedora 等),步骤清晰且便于控制版本。

步骤 1:下载 ktlint 可执行文件

首先创建一个存放工具的目录(推荐 ~/.local/bin,该目录通常已加入系统 PATH),然后下载:

bash 复制代码
# 创建工具目录(如果不存在)
mkdir -p ~/.local/bin
cd ~/.local/bin

# 下载最新版 ktlint 到该目录(也可指定版本,如 0.50.0)
curl -sSLO https://github.com/pinterest/ktlint/releases/latest/download/ktlint
# 如需指定版本,替换为:curl -sSLO https://github.com/pinterest/ktlint/releases/download/0.50.0/ktlint

# 赋予可执行权限
chmod +x ~/.local/bin/ktlint
步骤 2:验证 PATH 与安装

检查 ~/.local/bin 是否在系统 PATH 中:

bash 复制代码
echo $PATH

如果输出包含 ~/.local/bin,直接验证安装:

cpp 复制代码
ktlint --version

如果输出类似 ktlint 0.50.0,说明安装成功。

(可选)若 PATH 未包含~/.local/bin

编辑 shell 配置文件(根据你使用的 shell 选择):

  • bash:~/.bashrc
  • zsh:~/.zshrc
  • fish:~/.config/fish/config.fish

以 bash 为例:

bash 复制代码
# 编辑配置文件
nano ~/.bashrc

# 在文件末尾添加以下内容
export PATH="$HOME/.local/bin:$PATH"

# 生效配置
source ~/.bashrc

再次执行 ktlint --version 验证即可。

二、包管理器安装(仅部分发行版)

1. Arch Linux/Manjaro(AUR)
bash 复制代码
# 使用 yay 安装
yay -S ktlint
# 或用 paru
paru -S ktlint
2. Mac/Linux(Homebrew,需先装 Homebrew)

如果你的 Linux 装了 Homebrew,也可以:

cpp 复制代码
brew install ktlint

三、验证安装 & 基础使用

安装完成后,执行以下命令测试

bash 复制代码
# 查看版本(核心验证)
ktlint --version

# 检查当前目录下的所有 Kotlin 文件
ktlint

# 自动格式化当前目录下的 Kotlin 文件(修复格式问题)
ktlint -F

四、常见问题解决

  1. curl 下载失败 :检查网络,或替换为 wget 命令:

    复制代码
    wget https://github.com/pinterest/ktlint/releases/latest/download/ktlint -O ~/.local/bin/ktlint
  2. 权限不足 :执行 chmod +x ~/.local/bin/ktlint 时加 sudo(仅当目录是系统目录时需要,如 /usr/bin)。

  3. 版本不匹配 :下载时指定具体版本号(如 0.49.1),替换命令中的 latest 为版本号即可。


总结

  1. 通用安装 :下载可执行文件到 ~/.local/bin 并赋权,是最适配所有 Linux 发行版的方式。
  2. 核心验证 :ktlint --version 能输出版本号即代表安装成功。
  3. 基础用法 :ktlint 检查代码,ktlint -F 自动格式化代码,满足日常开发需求。
相关推荐
镜子AI8 小时前
镜子AI 技术复盘:三条自动化链路上的“停止条件“设计
运维·人工智能·自动化
tianyuanwo8 小时前
NetBox 数据库详解:当“关系型数据库”被装进一个网络运维的领域模型里
运维·数据库·netbox
HideF8 小时前
Linux sudo
linux
FlightYe9 小时前
视界原理之3D视频(四):裸眼、眼镜和头显
android·linux·c++·3d·ffmpeg·音视频
蹊黎9 小时前
Linux 下用 C 语言实现进度条
linux·c语言·单片机
知已难寻10 小时前
03 · OpenStack的计算管理 Nova
运维·服务器·开发语言·云原生·云计算·openstack·开源软件
huainingning11 小时前
Windows syslog日志服务器搭建与模拟器对接
运维·服务器·智能路由器
牛马鸡niumasi11 小时前
【Linux】C语言文件操作
linux
say_fall11 小时前
【Linux系统编程】Ext 文件系统:磁盘与存储、文件与目录、现代计算机究竟如何寻找文件
linux·运维·服务器·数据库·c++
wacsii12 小时前
【Linux进程(一)】Linux 进程初探:操作系统如何管理进程?fork() 为什么返回两次?
linux·运维·服务器