![zdb.Connect:zdb 需要 SQLite 3.35.0 或更新版本](https://linux22.com/image/1072078/zdb.Connect%EF%BC%9Azdb%20%E9%9C%80%E8%A6%81%20SQLite%203.35.0%20%E6%88%96%E6%9B%B4%E6%96%B0%E7%89%88%E6%9C%AC.png)
我正在尝试安装山羊计数器在 Ubuntu 20.04 上。
Github goatcounter 问题没有帮助https://github.com/arp242/goatcounter/issues
我收到错误“zdb.Connect:zdb 需要 SQLite 3.35.0 或更新版本;有“””
这是 Ubuntu 错误吗?如何确定导致此错误的原因?
goatcounter 已被提取并安装;我没有从源代码构建它。
SQLite3 3.38.3 已安装并运行。
sqlite3 --version
返回 3.38.3 2022-04-27 12:03:15
Go 和 libzdb-dev 已安装。
ldd /usr/local/bin/goatcounter
返回“不是动态可执行文件”
goatcounter version
返回“version=dev; go=go1.17.6; GOOS=linux; GOARCH=amd64; race=false; cgo=true”
systemctl status --no-page -l goatcounter
返回
goatcounter.service - GoatCounter
Loaded: loaded (/etc/systemd/system/goatcounter.service; disabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Sat 2022-05-21 09:49:53 MDT; 7min ago
Process: 83524 ExecStart=/usr/bin/env goatcounter serve -db sqlite3:///home/root/db/goatcounter.sqlite3 (code=exited, status=1/FAILURE)
Main PID: 83524 (code=exited, status=1/FAILURE)
May 21 09:49:53 localhost systemd[1]: goatcounter.service: Main process exited, code=exited, status=1/FAILURE
May 21 09:49:53 localhost systemd[1]: goatcounter.service: Failed with result 'exit-code'.
May 21 09:49:53 localhost systemd[1]: goatcounter.service: Scheduled restart job, restart counter is at 5.
May 21 09:49:53 localhost systemd[1]: Stopped GoatCounter.
May 21 09:49:53 localhost systemd[1]: goatcounter.service: Start request repeated too quickly.
May 21 09:49:53 localhost systemd[1]: goatcounter.service: Failed with result 'exit-code'.
May 21 09:49:53 localhost systemd[1]: Failed to start GoatCounter.
答案1
我遇到了这个问题,结果发现 goatcounter 没有权限创建 SQLite 数据库文件 - 错误消息真的很误导人!我为目标目录设置了正确的写入权限,一切开始正常工作。直到我阅读 GitHub 问题上的旧回复。
答案2
GoatCounter 是服务(意味着它一直运行)
首次下载并构建
$ cd ~
$ mkdir GoatCounter
$ git clone -b release-2.2 https://github.com/arp242/goatcounter.git
$ cd GoatCounter
$ go build -ldflags="-X zgo.at/goatcounter/v2.Version=$(git log -n1 --format='%h_%cI')" ./cmd/goatcounter
⬆️以上源命令来自 Github⬆️
然后通过服务启动GoatCounter
systemctl start goatcounter
然后
systemctl status goatcounter
然后好好工作
...
工作顺利,
谢谢
答案3
经过聊天讨论,最终通过两种方式解决问题。
- 端口 443 已被 apache 使用。
- 该数据库似乎来自 goatcounter 的先前版本,需要迁移(或从新数据库开始)。
使用此命令启动 goatcounter 并且没有出现错误:
goatcounter serve -automigrate -db sqlite3+/home/root/db/goatcounter.sqlite3 -listen localhost:9999
接下来的问题是“如何将 goatcounter 用作端口 443 上的子域?”但这必须在另一个问题中回答。