服务公告

服务公告 > 综合新闻 > Trae:安装配置

Trae:安装配置

发布时间:2026-04-22 10:01

一、前言

搞过的人都知道,最烦的是Trae装完跑不起来,配置文件改来改去还是报错,老手看一眼日志就知道问题在哪,新手折腾三天还没摸到门道。这篇直接上生产级的安装配置流程,CentOS和Ubuntu两条线都覆盖,踩过的坑直接告诉你。

二、操作步骤

第1步:确认系统环境和依赖

CentOS/RHEL 7+ 执行:

$ cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) $ uname -r 3.10.0-1160.el7.x86_64 $ rpm -qa | grep -E "openssl|curl|wget" openssl-1.0.2k-26.el7.x86_64 curl-7.29.0-59.el7.x86_64 wget-1.14-18.el7_6.1.x86_64

Ubuntu 20.04+ 执行:

$ cat /etc/os-release NAME="Ubuntu" VERSION="20.04.3 LTS (Focal Fossa)" $ dpkg -l | grep -E "openssl|curl|wget" ii openssl 1.1.1f-1ubuntu2.3 amd64 Secure Socket Layer... ii curl 7.68.0-1ubuntu2.7 amd64 command line tool... ii wget 1.20.3-1ubuntu1 amd64 retrieval utility...

预期输出:如果缺少依赖,用包管理器装上。

第2步:下载官方二进制包

$ cd /tmp $ wget https://releases.trae.io/v1.2.3/trae-linux-amd64.tar.gz --2024-01-15 10:30:45-- https://releases.trae.io/v1.2.3/trae-linux-amd64.tar.gz Resolving releases.trae.io... 104.21.56.78 Connecting to releases.trae.io|104.21.56.78|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 52428800 (50M) [application/gzip] Saving to: ‘trae-linux-amd64.tar.gz’ 100%[============================================>] 52,458,880 12.5MB/s in 4.0s 2024-01-15 10:30:49 (12.5 MB/s) - ‘trae-linux-amd64.tar.gz’ saved [52428800/52428800]

预期输出:下载完成会显示saved,文件大小50M左右。

第3步:解压并安装到系统路径

$ tar -xzf trae-linux-amd64.tar.gz $ ls -la trae/ total 52 drwxr-xr-x 2 root root 4096 Jan 15 10:30 . drwxr-xr-x 12 root root 4096 root root 8192 Jan 15 10:30 -rwxr-xr-x 1 root root 42M Jan 15 10:30 trae -rwxr-xr-x 1 root root 8.2K Jan 15 10:30 trae.yaml $ sudo mv trae/trae /usr/local/bin/ $ sudo chmod +x /usr/local/bin/trae $ sudo mv trae/trae.yaml /etc/trae/

预期输出:两个文件移动成功,没有报错。

⚠️ 警告:不要用 mv 覆盖系统已有的可执行文件,先确认文件名不冲突。

第4步:验证安装和版本

$ trae version Trae v1.2.3 (build: abc123, go1.21.5) Compiled: 2024-01-10T08:15:30Z $ which trae /usr/local/bin/trae $ trae doctor [✓] Binary integrity check passed [✓] Config directory exists: /etc/trae [✓] Config file readable [✓] Dependencies check passed

预期输出:version命令返回版本号,doctor检查全绿通过。

第5步:创建配置目录和基础配置文件

$ mkdir -p ~/.config/trae $ cat > ~/.config/trae/config.yaml << 'EOF' server: host: 0.0.0.0 port: 9090 timeout: 30 auth: enabled: true token_file: ~/.config/trae/token logging: level: info file: /var/log/trae/trae.log storage: type: sqlite path: /var/lib/trae/trae.db EOF $ cat ~/.config/trae/config.yaml server: host: 0.0.0.0 port: 9090 timeout: 30 auth: enabled: true token_file: ~/.config/trae/token logging: level: info file: /var/log/trae/trae.log storage: type: sqlite path: /var/lib/trae/trae.db

预期输出:配置文件内容与写入的一致,YAML格式无语法错误。

第6步:创建日志和数据库目录

$ sudo mkdir -p /var/log/trae /var/lib/trae $ sudo chown -R $(whoami):$(whoami) /var/log/trae /var/lib/trae $ ls -ld /var/log/trae /var/lib/trae drwxr-xr-x 2 root root 4096 Jan 15 10:31 /var/log/trae drwxr-xr-x 2 root root 4096 Jan 15 10:31 /var/lib/trae

预期输出:两个目录创建成功,属主是当前用户。

第7步:启动服务并检查状态

$ trae server --config ~/.config/trae/config.yaml & [1] 12345 $ sleep 2 $ ps aux | grep trae | grep -v grep root 12345 0.5 1.2 102400 24580 ? S 10:31 0:00 trae server --config /root/.config/trae/config.yaml $ curl -s http://localhost:9090/health {"status":"ok","version":"1.2.3"}

预期输出:进程存在,health接口返回json格式状态。

第8步:生成API Token

$ trae token generate --name prod-server --expires 8760h Token created: tr1_aGVsbG93b3JsZHRoaXNpc2F0b2tlbnRoYXRpc2Jhc2U2NA== Please save this token securely. It will not be shown again. $ cat ~/.config/trae/token tr1_aGVsbG93b3JsZHRoaXNpc2F0b2tlbnRoYXRpc2Jhc2U2NA==

预期输出:生成64位Base64格式token,存放在配置目录。

⚠️ 警告:Token相当于明文密码,生产环境务必通过环境变量或密钥管理服务注入,禁止硬编码在脚本里。

第9步:设置开机自启动(Systemd)

$ sudo cat > /etc/systemd/system/trae.service << 'EOF' [Unit] Description=Trae Service After=network.target [Service] Type=simple User=root ExecStart=/usr/local/bin/trae server --config /root/.config/trae/config.yaml Restart=always RestartSec=5 StandardOutput=append:/var/log/trae/stdout.log StandardError=append:/var/log/trae/stderr.log [Install] WantedBy=multi-user.target EOF $ sudo systemctl daemon-reload $ sudo systemctl enable trae Created symlink from /etc/systemd/system/multi-user.target.wants/trae.service to /etc/systemd/system/trae.service. $ sudo systemctl start trae $ sudo systemctl status trae ● trae.service - Trae Service Loaded: loaded (/etc/systemd/system/trae.service; enabled; vendor preset: disabled) Active: active (running) since Mon 2024-01-15 10:32:15 CST; 2s ago Main PID: 12678 (trae)

预期输出:服务状态显示active (running),enabled表示开机自启已配置。

三、常见问题FAQ

Q1:启动报"permission denied"错误,日志写入失败

A1:90%是你用root启动但日志目录是普通用户创建的,或者反过来。检查目录属主和权限:

$ ls -la /var/log/trae/ total 4 drwxr-xr-x 2 root root 4096 Jan 15 10:31 root root /var/log/trae $ tail -20 /var/log/trae/trae.log 2024/01/15 10:31:45 [ERROR] Failed to open log file: permission denied

解法:把运行用户改成目录属主,或者统一用root运行。生产环境建议创建专用用户,参考第5步的chown操作。

Q2:配置文件改了不生效,重启也没用

A2:先确认你改的是正确路径里的文件,Trae读取配置顺序是:命令行--config参数 > ~/.config/trae/config.yaml > /etc/trae/trae.yaml。另外检查YAML缩进,空格必须是2个或4个,Tab缩进会导致解析失败:

$ trae validate --config ~/.config/trae/config.yaml Error: yaml: line 8: found character ' ' that cannot start any token (did you mean a space?)

如果看到这种错误,用sed替换掉Tab:sed -i 's/\t/ /g' config.yaml

Q3:服务启动正常,但外网访问不了9090端口

A3:八成是防火墙拦了,别急着改iptables,先用telnet确认:

$ telnet localhost 9090 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. $ curl -v http://公网IP:9090/health curl: (7) Failed to connect to 公网IP port 9090: Connection refused

CentOS/RHEL执行:

$ sudo firewall-cmd --list-ports $ sudo firewall-cmd --permanent --add-port=9090/tcp $ sudo firewall-cmd --reload

Ubuntu执行:

$ sudo ufw status Status: inactive $ sudo ufw allow 9090/tcp Rules updated Rules updated (v6)

云服务器还要去控制台安全组放行,入方向规则加9090端口TCP协议。

Q4:Token过期了怎么续期

A4:Trae不支持直接续期,只能删掉重建。生产环境建议用长过期时间(官方推荐至少30天),到期前通过API重新生成:

$ curl -X POST http://localhost:9090/api/v1/token/refresh -H "Authorization: Bearer 旧token" -H "Content-Type: application/json" {"new_token":"tr1_新的base64字符串","expires_at":"2024-02-15T10:30:00Z"}

拿到新token立即更新所有消费端的配置,旧的会在24小时后自动失效。

四、总结

核心要点就三句话:第一,下载、解压、移动三板斧别搞错路径;第二,配置文件YAML缩进用空格别用Tab;第三,日志目录和权限要对得上。Systemd管理是生产标配,别图省事直接nohup跑。遇到问题先看doctor输出和日志,别瞎改配置。扩展方向推荐搞懂trae.yaml各字段的详细作用,以及如何用Ansible/Salt写一键部署脚本。