在调试此脚本期间https://github.com/at-0/PublicCodeLibrary/tree/master/AutomationAndSystems/Taskwarrior/CustomSort,我正在尝试从我的 taskd taskwarrior 服务器中删除任务数据。
我不知道那里有一个 taskwarrior 论坛和https://botbot.me/freenode/taskwarrior/已关闭。所以我想我应该在超级用户这里询问。
最初,我误解了该命令的含义task sync init
。我以为它会将本地任务推送到任务服务器上,作为任务服务器上应有的完整列表。然而,这是一个无效的假设,实际上它只是添加任务,如此处所述https://taskwarrior.org/docs/taskserver/sync.html。因此该命令本身不足以清除任务服务器。
因此我也尝试过:
- 删除
backlog.data
、、completed.data
和。pending.data
然后输入命令。undo.data
~/.task/
sudo task sync init
- 删除
backlog.data
、、completed.data
和。使用命令创建单个任务来重新创建这些文件。pending.data
输入命令。undo.data
~/.task/
task add task1
sudo task sync init
- 使用命令从 ubuntu WSL 16.04 中删除 taskwarrior 服务器
apt-get remove taskd
,然后重新启动 WSL Ubuntu 16.04 并重复第一步,然后重复第二步。两者都无效。 - 使用命令从 ubuntu WSL 16.04 中删除 taskwarrior 服务器
apt-get purge taskd
,然后重新启动 WSL Ubuntu 16.04,并重复第一步,然后第二步。 两者都无效。 如下所建议:https://askubuntu.com/questions/187888/what-is-the-correct-way-to-completely-remove-an-application.然后执行步骤 1 和步骤 2。 - 我已更新至 taskwarrior 2.6.0,以在所有任务上使用清除命令:task purge,但它并没有从本地 taskwarrior 中删除任务,因此也没有从 taskserver 中删除它们。
有效清除任务服务器的一种方法是完全卸载 WSL Ubuntu,然后重新安装 taskwarrior、taskwarrior 服务器和我在 Ubuntu 上运行的其他软件。虽然这是一项很好的练习,迫使我在尝试另一个破坏数据的调试测试之前好好思考,但我也渴望了解 taskwarriors 任务服务器的功能。
因此,我想知道是否有人知道从 Ubuntu 内部清除 taskwarrior 服务器的命令?
答案1
Task Warrior 在 ubuntu 上安装得很好,但你必须安装任务服务器才能在计算机之间同步任务。好吧,我刚刚安装了,但我还要说它很复杂。有安装 taskd 的 git 方法。它是这样的。
- 创建用户 twarrior 并更改为该用户
$ sudo add user twarrior
$ su twarrior
$ mkdir ~/opt
$ cd ~/opt
- git 克隆服务器
$ git clone --recurse-submodules https://github.com/GothenburgBitFactory/taskserver.git
构建服务器(您需要安装一些软件包才能构建)
构建过程
所需的依赖项
sudo apt install g++
sudo apt install libgnutls28-dev
sudo apt install uuid-dev
sudo apt install cmake
sudo apt install gnutls-bin
# Then make build from the rep directory ~/opt/taskserver
cd $SOURCE
cmake -DCMAKE_BUILD_TYPE=release .
make
sudo make install
- 转到 ~/opt/taskserver/scripts 文件夹并跑步使用安装脚本进行 repo。它起作用了。
您应该小心谨慎(避免设置任何重复的主机名或 /etc/host 别名)。我强制我的机器从 /etc/hostname 记录中读取主机名,并且它还在 /ect/hosts 中将其指定为别名,然后我也设置了一个 DNS 服务器,使用不同的名称...显然,只需一个就足够了。我更喜欢在您的私有网络上使用 DNS 作为名称解析器。
$ cd ~/opt/taskserver/scripts/ && ./setup_server.bash
- 您将需要一些信息,例如域名地址。
一些额外的步骤
- 使用以下方式添加用户
taskd add org "<ORGANIZATION>"
taskd add user "<ORGANIZATION>" "<YOUR USERNAME>
- 这将设置服务器目录,并使用 uuid 来代替您的姓名。
- 你还将看到你设置的用户的 uuid
- 切换到 repos pki 目录,你将在设置步骤中看到你的用户密钥设置
- 你会做对,如果犯了错你会再做
我认为安装程序会处理服务器配置,但是,如果您有任何错误,那么会有很好的文档讨论配置设置的每一点,尽管您键入的命令通常只是最容易键入的命令,而不是复制和粘贴。[任务战士服务器 DOCS]
服务器是
- 您将 Your_Name.cert.pem Your_Name.key.pem 和 ca.cert.pem 复制到您的真实用户帐户 ~/.task 目录 --- 这样做需要 sudo 并将文件 chown 到您的真实用户:组
- 检查 taskd 是否正在运行
ps -leaf | grep taskd
- 如果没有,则可以启动它
taskdctl start
(以 twarrior 用户身份执行此操作)。 - 以正常用户身份运行
task sync init
并(y) - 您现在就可以启动并运行了。