跳到主要内容

搭建 Yak 语言开发环境

在正式学习 Yak 语言之前,我们需要先准备好开发环境。Yak 提供了两种使用方式,你可以根据自己的使用场景任选其一:

  1. 【推荐】使用 Yakit 内置的 Yak 引擎:通过图形化客户端 Yakit 直接编写并执行 Yak 代码,开箱即用,自带代码补全。
  2. 【专家】直接安装 Yak 引擎:把引擎安装到系统中,使用命令行 yak [your-script].yak 执行脚本,适合自动化、服务器与 CI 场景。
我该选哪一种?
  • 如果你是初学者,或者希望获得最完整的编程辅助体验,请直接选择第一种「在 Yakit 中使用内置引擎」。
  • 如果你需要在服务器上批量运行脚本,或者想把 Yak 集成进自己的工具链,请选择第二种「在系统中使用 Yak 引擎」。

两种方式底层都是同一个 Yak 引擎,能力完全一致。

【推荐】在 Yakit 中使用内置的 Yak 引擎

Yak 语言核心提供了非常强大的安全能力,但它本质上是一门语言,直接使用要求用户既要学习 Yak 语法,又要具备一定的安全理解。

为了让 Yak 的安全能力更贴近实际使用,我们为 Yak 编写了 gRPC 服务器,并基于它构建了图形化客户端 Yakit。Yakit 是一个高度集成化的 Yak 语言安全能力输出平台,它内置了 Yak 引擎的下载与管理能力,你无需手动安装引擎即可开始编程。

第一步:下载并安装 Yakit 客户端

前往官网下载与你操作系统匹配的 Yakit 安装包(提供 macOS、Windows、Linux 版本)。

图:Yakit 官网多平台安装包下载界面(提供 Windows / macOS / Linux 版本)

你也可以前往 Yakit 的 GitHub Releases 下载对应平台的发行版。

图:Yakit 的 GitHub Releases 发布页

下载完成后按照常规方式安装即可。Windows 下双击 .exe 安装程序,按向导提示逐步完成(启动 → 选择安装路径 → 安装 → 完成)。

图:Yakit Windows 安装向导(启动 → 选择路径 → 安装 → 完成)

macOS 下打开 .dmg 镜像,把 Yakit 图标拖入「应用程序(Applications)」文件夹即可。

图:macOS 下将 Yakit 拖拽到「应用程序」文件夹完成安装

macOS 提示 "Yakit 已损坏" 的处理办法

在较新版本的 macOS 或 Apple Silicon(M 系列芯片)系统下,首次打开可能会提示安装包"已损坏",这是系统的隔离属性(quarantine)导致的,并非文件本身损坏。

【配图:macOS 提示 "Yakit 已损坏" 的弹窗】

在「终端(Terminal)」中执行以下命令清除隔离属性即可正常打开:

sudo xattr -r -d com.apple.quarantine /Applications/Yakit.app

第二步:使用 Yakit 下载核心 Yak 引擎

首次启动 Yakit 时,客户端会引导你初始化核心 Yak 引擎。选择「初始化引擎(本地模式)」,按界面提示等待引擎下载安装完成即可——这是开箱即用的本地一体化工作模式,足以应对绝大多数任务。

图:Yakit 首次启动的引擎初始化界面(选择「初始化引擎」即进入本地模式)

下面的视频演示了完整的引擎下载流程:

第三步:使用 Yak Runner 执行 Yak 代码

引擎安装完成并连接成功后,点击主界面右上角的 Yak Runner,即可新建脚本、编写并运行 Yak 代码。它不仅是编辑器,更是一个完整的 Yak 语言集成开发环境(IDE),集文件管理、代码编辑与执行调试于一体。

图:Yak Runner 一体化开发工作台(左侧资源管理器 / 中部代码编辑区 / 下方输出面板)

点击代码编辑区右上角的 执行 按钮运行脚本,结果会实时反馈在下方的「输出」面板中。

图:在 Yak Runner 中执行脚本,输出面板实时展示运行结果

如果你想进一步了解 Yak Runner 的工程化管理、智能补全、调试与集成终端等完整能力,可参阅 Yakit 使用手册:Yak IDE - Yak Runner 集成开发环境

下面的视频演示了在 Yak Runner 中运行第一段 Hello World 代码:

推荐使用 Yak Runner 编写代码

Yak Runner 内置了 Yak 代码的自动补全,它直接与引擎通信来调度代码并生成补全,可以在多平台下提供统一一致的 Yak 编程体验。对于绝大多数用户,这是最省心的开发方式。

【专家】在系统中使用 Yak 引擎

适用场景

以下步骤会把核心引擎安装到系统中,使你能够通过系统命令直接执行 Yak 脚本,适合服务器、自动化与 CI 等无图形界面的场景。

一键脚本安装(macOS / Linux)

可能需要面对的依赖问题

Yak 中的 SYN 扫描技术依赖 github.com/google/gopacket,在捕获数据包时需要使用 libpcap 作为外部依赖。如果遇到 pcap 依赖问题,可通过以下命令安装 libpcap:

brew install libpcap

在 macOS 下安装 Yak 非常简单,直接在终端执行:

bash <(curl -sS -L http://oss-qn.yaklang.com/install-latest-yak.sh)

脚本会自动下载并把 Yak 安装到系统可执行目录。安装过程中可能会要求输入管理员密码(用于把引擎复制到系统目录)。

【配图:macOS 终端执行一键安装脚本的过程,安装成功后输出 yak version 信息】

安装完成后,执行 yak version 可以看到类似如下的版本信息:

yak version
Yak Language Build Info:
Version: v0.9.7a2-ff28a9389f7bd7538de20468b4a096258dfe3ce6
GoVersion: go version go1.15.13 darwin/amd64
GitHash: ff28a9389f7bd7538de20468b4a096258dfe3ce6
BuildTime: Mon Jul 19 17:45:48 2021 +0800

安装代码编辑器与 Yak 插件

虽然我们努力让编写 Yak 脚本尽量简单,但借助编辑器插件可以获得语法高亮与代码补全,让编写过程更高效。

VSCode 插件维护频度有限

VSCode 插件的更新与维护频度不高,自动补全可能不及 Yakit 中的 Yak Runner 完整。若你追求最佳编程体验,仍推荐使用 Yak Runner。

确认 Yak 已安装完毕

在安装插件之前,先确认引擎已经就绪。在命令行执行 yak version,能正常输出版本信息即表示安装成功:

yak version
Yak Language Build Info:
Version: v0.9.7a2-ff28a9389f7bd7538de20468b4a096258dfe3ce6
GoVersion: go version go1.15.13 darwin/amd64
GitHash: ff28a9389f7bd7538de20468b4a096258dfe3ce6
BuildTime: Mon Jul 19 17:45:48 2021 +0800

安装 VSCode 并启用 Yaklang 插件

首先安装 VSCode。安装完成后,在插件市场搜索 yaklang,即可找到并安装 Yak 语言插件。

【配图:VSCode 插件市场中搜索并安装 yaklang 插件】

安装好插件后,你就可以在任何地方开始编写 Yak 脚本了。

插件能为我们做什么?
  1. 当文件以 .yak 为后缀时,会自动启用代码高亮;
  2. 当输入内置库名称后跟 . 时,会自动提示该库可用的接口;
  3. 对动态语言中的变量,插件会尝试猜测可能的字段名与方法名,虽不一定完全准确,但能帮助你快速筛选。

由于研发精力有限,插件的补全能力仍在完善中,欢迎社区共同建设 Yak 生态。

手动下载 / 安装

如果一键脚本不可用,或你希望自行管理安装过程,可以手动下载对应平台的发行版后安装。

依赖提示

如果遇到 pcap / libpcap 依赖问题,请先参考上文「依赖说明」对应平台的处理办法。

点击下载 yak_darwin_amd64

下载完成后执行:

chmod +x yak_darwin_amd64 && ./yak_darwin_amd64 install

在确认 yak version 执行成功后,即可删除下载的文件 yak_darwin_amd64

常见安装问题 Q&A

Yak 安装的原理是什么?

  1. 安装脚本托管在阿里云 OSS 上,可下载 http://oss-qn.yaklang.com/install-latest-yak.sh 查看具体安装方法;
  2. 安装脚本会把 yak 主程序下载到本地;
  3. yak 程序会把自己的二进制复制到可执行目录中(例如 /usr/local/binC:\Windows\System32\),然后执行 yak version 验证安装结果。

如何删除 Yak?

找到 Yak 的安装路径并删除即可。例如在 *unix 系统下,可通过 which yak 找到安装路径。

安装失败应该如何操作?

  1. 手动下载适合自己平台的最新 Yak 发行程序;
  2. 在管理员 / root 权限下执行 yak_{{GOOS}}_amd64 install 命令;
  3. 执行成功后,确认 yak version 能正常运行。

pcap / libpcap 依赖出现问题?

  1. *unix 操作系统下,一般通过 brew/apt/yum install libpcap 即可解决;
  2. Windows 平台下,可下载并安装 npcap for Common Windows Version 解决。