在过去的4天里,我一直在努力让taskwarrior和taskwarriors服务器在windows 10上运行。事实证明,这对我来说是一个相当大的挑战
我遵循了以下步骤:https://taskwarrior.org/docs/build.html并创建了一个文件夹:
C:taskwarrior
为VC 2017 打开开发者命令提示符
cd /d C:/taskwarrior
git clone https://github.com/GothenburgBitFactory/taskwarrior.git taskwarrior.git
cd taskwarrior.git
git checkout master
然后取决于我是否尝试在启用同步的情况下构建taskwarrior(除非手动禁用,否则自动):
cmake -DCMAKE_BUILD_TYPE=release .
GNUTLS_library缺少
或:
cmake -DCMAKE_BUILD_TYPE=release . -DENABLE_SYNC=OFF
--找不到libuuid。
到目前为止所采取的步骤和尝试的简短摘要:
- 已从以下位置下载并安装Microsoft Visual C++2017 Redistributable(x64和x86):https://visualstudio.microsoft.com/vs/features/cplusplus/
- 根据微软的文档中的建议,可以获得保证的cl:https://msdn.microsoft.com/en-us/library/cyz1h6zd.aspx
- 下载了MinGW安装管理器,并按照上的建议安装了基本软件包http://www.mingw.org/wiki/Getting_Started:
如果您确实希望安装mingw-get-inst.exe的强制集,(包括GNU C编译器、GNU调试器(GDB)和GNUmake工具),您应该选择mingw基本包进行安装。
- 从安装Cmakehttps://cmake.org/download/
- 在管理员模式下从cmd运行上述命令
打开Cmake选择源文件夹:
C:/taskwarrior/taskwarrior.git
使用构建文件夹:
C:/taskwarrior
这给出了与我通过上面描述的VC 2017的开发者命令提示符尝试它时完全相同的错误,从中我得出结论,我在上面描述的命令中没有打字错误。
- 即使它应该已经与Mingw一起安装,GNU仍然找不到(即使在重新启动后)。所以我尝试从以下位置手动下载:
- http://gnuwin32.sourceforge.net/packages/make.htm
https://sourceforge.net/projects/gnuwin32/
我在命令提示符下尝试了以下命令:
install libgnutlsxx28 gnutls-dev
install gnutls-dev
正如taskwarrior中基于Debian的发行版的安装文件中所建议的那样,我尝试了:
libgnutls-dev
这打开了IncrediBuild 9.2.1版本的安装程序,我目前不知道它能做什么。
我尝试从以下位置下载libuuid库:https://sourceforge.net/projects/libuuid/但我目前不知道如何构建和安装它。
我试着通过cmd中的python安装它:
easy_install python-libuuid
从以下源代码学习构建程序:https://msdn.microsoft.com/en-us/library/cyz1h6zd.aspx
- 学习和实践https://github.com/codebox/bitmeteros/wiki/How-to-build-on-Windows.
- 最后,我了解到我已经安装了Cygwin,我可以通过重新安装Cygwin并检查/标记任务包来安装旧版本的taskwarrior。所以我有taskwarrior在运行,但没有taskwarrio服务器。此外,我正在努力学习如何从源代码构建代码/项目,因此我正在努力进行成功的构建,以提高我的技能,从而提高工具集
- 安装GNU TLS 3.6.2的说明https://www.gnutls.org/manual/gnutls.html#Downloading-并且安装仅限于:
然后像许多其他使用Autoconf的包一样提取、配置和构建包。有关配置和构建它的详细信息,请参阅分发存档中的INSTALL文件。通常您会调用/配置,然后进行检查安装。
然而,最新的GNUTLS for Windows x64下载文件:gitlab上的最新w64版本:https://www.gnutls.org/download.html名为artifacts.zip的文件不包含名为INSTALL
的文件。
因此,我目前正在了解如何使用autoconf进行配置和构建。
问题:你知道我如何在windows 10上安装GNU库和/或libuuid库吗
我不确定它是否仍然与您的问题有关,但我能够在64位cygwin(在Win7上)下构建taskwarrior v2.5.1,从这里使用cmake
行:TW-1845 cygwin构建失败,缺少get_current_dir_name
也就是说,这条cmake
线后面跟着make
:
cmake -DHAVE_GET_CURRENT_DIR_NAME=0
我可能误解了上下文。GnuTLS似乎是一个适用于linux/debian操作系统的程序。
尽管如此,以下两种解决方案在中是有效的:
- 在Windows中查找和使用UUID库
- 解决XY问题并在"windows pc"上使用GnuTLS(带有Linux)。:
对于缺少UUID的库错误:
- 打开资源管理器>转到C:(或其他系统光盘)>搜索:
uuid.lib
>记住/任何uuid.lib
文件的路径。(对我来说C:/Program Files (x86)/Microsoft SDKs/Windows/v7.1A/Lib worked
) - 打开Cmake,然后在UUID_LIBRARY_DIR中输入:
C:/Program Files (x86)/Microsoft SDKs/Windows/v7.1A/Lib
- 然后在UUID_LIBRARY中输入:
C:/Program Files (x86)/Microsoft SDKs/Windows/v7.1A/Lib/Uuid.Lib
在步骤1中,您将C:/Program Files (x86)/Microsoft SDKs/Windows/v7.1A/Lib
替换为您自己找到的UUID.lib路径
这使得CMake克服了windows中的UUID错误。
现在对于GnuTLS,我在windows中找不到解决方案。但是,当我阅读以下内容的taskserver安装指南时:https://gitpitch.com/GothenburgBitFactory/taskserver-setup#/4/4我了解到Taskwarrior并不打算在Windows本身/本机上运行,而是在linux环境中运行(具体而言,建议将linux发行版Ubuntu安装在Windows上,如下所示:https://taskwarrior.org/download/)只需单击1次就可以完全下载并安装linux发行版(对我来说,它目前看起来像一个模拟器)。
在windows商店中,可以下载Ubuntu和其他Linux发行版作为Debian GNU/Linux:https://learn.microsoft.com/en-us/windows/wsl/install-win10.由于我在安装GnuTLS时遇到了一些困难,我尝试了debian GNU/Linux发行版,希望它能预装在发行版中。以下命令在debian GNU/Linux上成功安装了taskwarrior、GnuTLS和Taskserver:
sudo apt-get update
sudo apt-get install taskwarrior
cd /home/a/
- 然后创建新目录"taskwarrior">
mkdir taskwarrior
-
cd /home/a/taskwarrior
Debian中的任务服务器安装:
-
sudo apt install g++
sudo apt install libgnutls28-dev
sudo apt install uuid-dev
sudo apt install cmake
**sudo apt install gnutls-utils**
gnutls失败,因此:
**sudo apt-get update**
**sudo apt install gnutls-utils**
sudo apt-get update
sudo apt-get install git-core
来源:https://gitpitch.com/GothenburgBitFactory/taskserver-setup#/6/1建议您输入:git clone --recurse-submodules=yes https://github.com/GothenburgBitFactory/taskserver.git taskserver.git
给出以下错误:option
递归子模块takes no value
,因此将其重写为:
-
git clone https://github.com/GothenburgBitFactory/taskserver.git taskserver.git
-
cd taskserver.git/
-
git checkout master
-
cmake -DCMAKE_BUILD_TYPE=release .
-
make
现在您可以测试构建,如中所述:https://gitpitch.com/GothenburgBitFactory/taskserver-setup#/6/8注意:SOURCEDIR现在是home/a/taskwarrior/taskserver.git(/test我目前不知道/test是源目录的子文件夹还是实际的源目录)
sudo make install
注意:您可以使用验证GnuTLS安装
task diagnostics | grep libgnutls
sudo apt install taskd
未回答以上内容只回答了我的一半问题(并解决了XY问题)。GnuTLS在windows上的安装本身仍然没有解决。我目前不确定下载
GNU for windows
gitlab gnutls_3_6_0_1:mingw64 上的最新w64版本
https://gnutls.org/download.html.
- 它包含一个lib和一个bin文件夹,这似乎表明即使是在"windows"下列出的文件也适用于Linux操作系统(OS)(因为我认为这些类型的文件夹不是在windows中常规使用的/我不知道该怎么办/如何安装它们)
- 这意味着GnuTLS假设GnuTLS,即使在Windows操作系统上也发生在Linux中系统也可能只是我缺少关于如何在中使用/安装这些文件的知识/工作/理解窗口
因此,如果有人仍然能够回答如何在windows上应用GnuTLS,我将非常感谢您的见解!