# 配置环境
构建键映射前,有一些必须安装配置的构建工具,但无论你要编译多少个固件,这一步只需要做一次。
## 1. 必备工具
首先需要确保一些基本的软件配备。
* [文本编辑器](zh-cn/newbs_learn_more_resources.md#text-editor-resources)
* 你需要至少一个能编辑常规文本的软件。系统自带的编辑器通常不会如实保存(会做一些额外的处理,如回车),所以选择编辑器时需要留意。
* [QMK工具箱(可选)](https://github.com/qmk/qmk_toolbox)
* 在Windows及macOS上可用的图形程序,用于编辑及调试你的键盘
?> 如果你没有Linux/Unix命令行使用经验,有些基本概念需要先学习一下。[这些资料](zh-cn/newbs_learn_more_resources.md#command-line-resources)是个使用QMK很好的参考。
## 2. 准备构建环境 :id=set-up-your-environment
我们已经尽力让QMK易于配置了,你只要准备好Linux或Unix环境,剩余的交给QMK来安装。
### ** Windows **
QMK有维护一套基于MSYS2的软件包,所有命令行程序和依赖都是齐备的。通过 `QMK MSYS` 快捷命令可以快速启动开发环境。
#### 依赖项
需安装[QMK MSYS](https://msys.qmk.fm/),最新版在[这里](https://github.com/qmk/qmk_distro_msys/releases/latest)。
此外,如果想自行安装MSYS2环境,下面给出了具体的步骤。
自行安装
?> 若决定使用 `QMK MSYS`,请跳过此节.
#### 依赖项
遵循 https://www.msys2.org 上的指引,安装MSYS2、Git和Python。
在MSYS2安装完毕后,关闭所有的MSYS终端,启动新的MinGW 64-bit终端。
!> **注意:** MinGW 64-bit 终端*不同于*安装包最后打开的MSYS终端,窗口标题应当是紫色的"MINGW64"而不是"MSYS"。具体的差异可以[参考这里](https://www.msys2.org/wiki/MSYS2-introduction/#subsystems)。
执行如下命令:
pacman --needed --noconfirm --disable-download-timeout -S git mingw-w64-x86_64-toolchain mingw-w64-x86_64-python3-pip
#### 安装
安装QMK命令行程序:
python3 -m pip install qmk
### ** macOS **
QMK维护了一套Homebrew tap和formula以用于自动安装命令行程序及依赖项。
#### 依赖项
须先安装Homebrew,可以参考 https://brew.sh
#### 安装
安装QMK命令行程序:
brew install qmk/qmk/qmk
### ** Linux/WSL **
?> **WSL用户注意**: 默认情况下,QMK仓库会被clone到home目录下,如果想指定其它目录,务必留意要放在WSL文件系统中(即,非 `/mnt` 目录下),否则文件读写会[非常慢](https://github.com/microsoft/WSL/issues/4197).
#### 依赖项
须安装Git及Python,通常你肯定已经有了,如果确实没有,请使用下面的方法尝试安装:
* Debian / Ubuntu / Devuan: `sudo apt install -y git python3-pip`
* Fedora / Red Hat / CentOS: `sudo yum -y install git python3-pip`
* Arch / Manjaro: `sudo pacman --needed --noconfirm -S git python-pip libffi`
* Void: `sudo xbps-install -y git python3-pip`
* Solus: `sudo eopkg -y install git python3`
* Sabayon: `sudo equo install dev-vcs/git dev-python/pip`
* Gentoo: `sudo emerge dev-vcs/git dev-python/pip`
#### 安装
安装QMK命令行程序:
python3 -m pip install --user qmk
#### 社区提供的包
有一些社区成员提供的包,可能版本会有落后或是功能不全的问题,如果你遇到了什么问题,请联系维护它的社区成员。
Arch系环境下可以使用官方源安装命令行程序(在写这份文档时,有些依赖项被标记为可选的,其实不是):
sudo pacman -S qmk
也可以尝试AUR的 `qmk-git`:
yay -S qmk-git
### ** FreeBSD **
#### 安装
使用FreeBSD包安装QMK命令行程序:
pkg install -g "py*-qmk"
请遵循安装后输出的指引操作进行配置(使用 `pkg info -Dg "py*-qmk"` 可以显示这份指引)。
## 3. 执行QMK配置 :id=set-up-qmk
*译注:由于setup过程中需要从github clone依赖项,请先确保科学上网*
### ** Windows **
安装QMK后,执行:
qmk setup
通常所有的询问回复 `y` 就行了。
### ** macOS **
安装QMK后,执行:
qmk setup
通常所有的询问回复 `y` 就行了。
### ** Linux/WSL **
安装QMK后,执行:
qmk setup
通常所有的询问回复 `y` 就行了。
?>**Debian及Ubuntu系环境须留意**:
也许你会遇到 `bash: qmk: command not found` 错误,主要是因为Debian上的Bash 4.4版本引入的一个[bug](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=839155),`$HOME/.local/bin` 被从PATH环境变量中删除了,后续版本中这个问题已被修复。
然而Ubuntu很挫地再次引入了这个bug[且没有修复](https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1588562)。
不过修复也很容易,在当前账户中执行:`echo 'PATH="$HOME/.local/bin:$PATH"' >> $HOME/.bashrc && source $HOME/.bashrc`
### ** FreeBSD **
安装QMK后,执行:
qmk setup
通常所有的询问回复 `y` 就行了。
?> QMK的home目录可以在安装时通过 `qmk setup -H ` 来指定,安装后也可以通过[命令行程序来配置](zh-cn/cli_configuration.md?id=single-key-example)`user.qmk_home`变量,可以通过 `qmk setup --help` 查看所有可用配置。
?> 若你熟悉GitHub,[推荐阅读这份指引](zh-cn/getting_started_github.md)通过 `qmk setup /qmk_firmware` 来clone你自己的fork。如果你看不懂这一段啥意思,忽略就是了。
## 4. 测试你的构建环境
QMK构建环境搭建完成,可以尝试构建一个键盘固件。使用以下指令格式,先试试编译默认提供的键映射:
qmk compile -kb -km default
例如,要构建一个Clueboard 66%,就这样执行:
qmk compile -kb clueboard/66/rev3 -km default
你应当能看到像这样的输出信息:
```
Linking: .build/clueboard_66_rev3_default.elf [OK]
Creating load file for flashing: .build/clueboard_66_rev3_default.hex [OK]
Copying clueboard_66_rev3_default.hex to qmk_firmware folder [OK]
Checking file size of clueboard_66_rev3_default.hex [OK]
* The firmware size is fine - 26356/28672 (2316 bytes free)
```
## 5. 配置你的构建环境 (可选的)
通过对默认配置的简单调整,QMK用起来会更有趣一些,我们来试试!
大部分QMK新手手头只有一把键盘,可以通过 `qmk config` 命令将它设置为默认键盘,例如你想将 `clueboard/66/rev4` 设置为默认,可以这样:
qmk config user.keyboard=clueboard/66/rev4
也可以调整默认的键映射名称。社区上大家常用自己的GitHub用户名,这也是我们推荐的做法。
qmk config user.keymap=
完成后,这些配置就不用管了,编译键盘固件就可以直接这样执行:
qmk compile
# 制作你自己的键映射
万事俱备啦!请继续阅读[构建第一个固件](zh-cn/newbs_building_firmware.md).