zdb.Connect:zdb 需要 SQLite 3.35.0 或更新版本

zdb.Connect:zdb 需要 SQLite 3.35.0 或更新版本

我正在尝试安装山羊计数器在 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

我用了https://stackoverflow.com/questions/64861331/how-can-i-install-or-upgrade-to-sqlite-3-33-0-on-ubuntu-18-04

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

经过聊天讨论,最终通过两种方式解决问题。

  1. 端口 443 已被 apache 使用。
  2. 该数据库似乎来自 goatcounter 的先前版本,需要迁移(或从新数据库开始)。

使用此命令启动 goatcounter 并且没有出现错误:

goatcounter serve -automigrate -db sqlite3+/home/root/db/goatcounter.sqlite3 -listen localhost:9999

接下来的问题是“如何将 goatcounter 用作端口 443 上的子域?”但这必须在另一个问题中回答。

相关内容