跳到主要内容

搭建 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/bin 或 C:\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 解决。