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 自动格式化代码,满足日常开发需求。
相关推荐
桑榆4164 小时前
双系统(Windows + Ubuntu)安装流程
linux·windows·ubuntu
jerryinwuhan9 小时前
《系统部署与运维》开篇 课程介绍
运维
ltl11 小时前
实时 OS 巡礼:VxWorks、QNX、Zephyr 与 PREEMPT_RT
linux
我是谁??11 小时前
Ubuntu22.04更换清华源
linux·运维·服务器
圣殿骑士-Khtangc11 小时前
Go字符串高效拼接性能对比与底层原理分析
服务器·前端·golang
Shell运维手记12 小时前
Linux 常用基础命令学习笔记
linux·运维·笔记·学习·算法·github
朴马丁12 小时前
国际与国产PLM在精细化工赛道的布局:2026年主要厂商技术特色
大数据·运维·人工智能·流程行业plm·化工新材料
这个DBA有点耶13 小时前
数据库一体机架构演进:从硬件堆叠到软硬深度耦合
服务器·网络·数据库·硬件架构·运维开发·database·数据库架构
Elastic 中国社区官方博客13 小时前
Elasticsearch:使用 AI Agent 来创建 workflow
大数据·运维·人工智能·elasticsearch·搜索引擎·自动化·全文检索
测试运维日常笔记13 小时前
Linux系统安装配置TigerVNC服务器完整指南
linux·运维·服务器