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 自动格式化代码,满足日常开发需求。
相关推荐
未济2 天前
linux 配置环境变量
linux
傲世仙尊2 天前
目录即文件-Ext文件系统收尾篇
linux·c语言
虎头金猫2 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
_艾伦 耶格尔.2 天前
进程间通信
linux
AI职业加油站2 天前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
Liuqy-052 天前
Linux IO编程——静态库、动态库
linux
此冬歌咏2 天前
K8s 节点故障实战:优雅驱逐 31 秒,硬故障 331 秒,以及那个永远 Pending 的 Pod
运维·k8s
彧azz2 天前
Linux 环境下 Redis 学习总结:数据类型、持久化、锁、事务、主从与缓存问题
linux·redis·笔记·学习·面试
-梅2 天前
linux(8) 软硬链接
linux·运维·服务器
Wang's Blog2 天前
Java 项目实战: 外卖平台-文件下载与ServletOutputStream回写浏览器
服务器·项目开发