Libelektra: 为 Elektra 添加自制配方

创建于 2016-02-18  ·  28评论  ·  资料来源: ElektraInitiative/libelektra

Homebrew是 OS X 上最受欢迎的包管理器之一。如果我们为 Elektra 提供官方的 Homebrew 公式(也称为包),那就太好了。 有人已经在这里制定了一个基本公式。 也许我们可以以此为基础开展工作。

enhancement usability

最有用的评论

能否请您更新doc/INSTALL.md并明确何时使用官方公式...

我已经在我的本地版本的存储库中这样做了。 拉取请求 #1777 包含这些更改。

…以及何时使用我们的水龙头?

我们的水龙头的自述文件已经包含此信息。

所有28条评论

@tryge ,如果你没问题,我会接管这个

请继续!

正如 #1184 中所讨论的,使用 travis 构建 mac os x 二进制文件也很好。

但是添加 Homebrew Formula 具有最高优先级,我希望有 Mac 的人可以接受这个!

我为 Elektra 创建了一个 Homebrew 公式和一个水龙头

@markus2330我将 repo 转移给了 Markus,因为我需要管理员身份才能将 repo 转移到 ElektraInitiative 组织。 您能否将存储库从您的个人帐户移至 ElektraInitiative 组织?

我为 Elektra 创建了一个 Homebrew 公式和一个水龙头。

谢谢,真的很棒!

它是否还包括最新版本的二进制包?

我将 repo 转移给了你 Markus,因为我需要管理员身份才能将 repo 移动到 ElektraInitiative 组织。 您能否将存储库从您的个人帐户移至 ElektraInitiative 组织?

对不起,我在哪里可以找到它? 在https://github.com/sanssecours/homebrew-elektra我没有“设置”按钮(转移需要它)。

为什么不简单地克隆它? (或通过将相同的提交推入其中来重新创建一个)

顺便提一句。 是否有可能将这个配方也带到上游来酿造?

@omnidan你能测试一下水龙头/瓶子是否也适合你吗?

我们应该在此处或在此处创建有关水龙头/瓶子的问题
https://github.com/ElektraInitiative/homebrew-elektra?

它是否还包括最新版本的二进制包?

还没有,虽然创建一个二进制包看起来并不难。 我会看看。

对不起,我在哪里可以找到它? 在https://github.com/sanssecours/homebrew-elektra我没有“设置”按钮(转移需要它)。

感谢您的管理员访问权限。 我刚刚转移了回购

顺便提一句。 是否有可能将这个配方也带到上游来酿造?

是的。 我想先这样做,但据我所知,Homebrew 开发人员对他们接受的内容有点挑剔。 尤其是文字

我们不赞成作者提交自己的作品,除非它很受欢迎。

听起来是个问题。

我刚刚转移了回购。
还没有,虽然创建一个二进制包看起来并不难。 我会看看。

谢谢!

感谢您的管理员访问权限。

有需要的话随时再来。 我们还可以讨论永久管理员访问权限。

是的。 我想先这样做,但据我所知,Homebrew 开发人员对他们接受的东西有点挑剔。 尤其是文字

如果我们能得到一些反馈很好,即使他们不会接受。

我们不赞成作者提交自己的作品,除非它很受欢迎。

我理解这句话你不应该为你自己的工作提交一个公式(=你一个人写的repo)。 这几乎不是这里的情况。

现在可以使用二进制 Homebrew 包(瓶子)。 如果有人想尝试这个公式,请按照以下步骤操作。

  1. 请运行brew doctor并删除命令报告的所有 Elektra 片段。
  2. 点击存储库: brew tap ElektraInitiative/homebrew-elektra
  3. 如果你想安装

    • 瓶子使用brew install elektra

    • 从源代码发布 0.8.19,然后使用brew install --build-from-source elektra

    • 最新版本的 Elektra,然后使用brew install --HEAD elektra

  4. 要检查安装是否有效,您可以使用命令brew test elektra

如果我们能得到一些反馈很好,即使他们不会接受。

嗯,好吧。 如果我有时间,我明天会尝试打开一个拉取请求。

这又是个好消息!

你能更新 homebrew-elektra 的 README.md 以包含这个更长的描述吗?

您是否有一些启用了哪些插件和绑定的构建日志? 特别是如果包含python2绑定我会感兴趣(并且工作:你可以尝试在python解释器中import kdb )吗?

你能更新 homebrew-elektra 的 README.md 以包含这个更长的描述吗?

好的,您可以在此处查看更新的自述文件。

您是否有一些启用了哪些插件和绑定的构建日志?

插件列表应该相当广泛,因为我在我的机器上安装了很多可选的 Elektra 依赖项。 这是brew install --build-from-source -debug -verbose elektra生成的日志

特别是如果包含 python2 绑定我会感兴趣(并且工作:你可以尝试在 python 解释器中import kdb )吗?

它们应该被包括在内(参见上面的日志),但是import kdb在 Python 的系统版本( /usr/bin/python )和通过 Homebrew 安装的版本( /usr/local/bin/python $# )中都报告了以下错误

import kdb
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named kdb

.

好的,你可以看看更新的自述文件

太好了谢谢!

插件列表应该相当广泛,因为我在我的机器上安装了很多可选的 Elektra 依赖项。

  • ronn 似乎不见了(所以没有手册页)
  • 您似乎没有包含任何绑定(cpp 除外),似乎您需要一个-DBINDINGS=ALL
  • kdb gen需要 python cheetah 和--install-layout才能工作。 似乎很难修复(最好暂时保留它,只需从工具中禁用 gen )。

应该包括它们(见上面的日志)

我认为您混淆了 python 绑定和插件,绑定不存在(没有-- Include Binding swig_python2 )。

  • ronn 似乎不见了(所以没有手册页)

只是好像不见了。 我通过rbenv安装ronn 。 看起来 Homebrew 环境对PATH使用了不同的值,其中不包括~/.rbenv/shims 。 经过一番研究,我找到了一种将ronn添加为可选 Ruby依赖项的方法。 目前,该公式无法识别我安装的ronn 。 希望我能找到解决这个问题的方法。

  • 您似乎没有包含任何绑定(cpp 除外),似乎您需要-DBINDINGS=ALL

你是对的,谢谢。 我将选项添加到公式的 CMake 参数中。

我认为您混淆了 python 绑定和插件,绑定不存在(没有-- Include Binding swig_python2 )。

你又是对的:o)。 我稍后会检查绑定是否有效。

更新

手册页

我在这里添加了ronn作为构建过程所需的依赖项。 我不认为构建需要ronn是一个问题,因为大多数人无论如何都会使用瓶装版本的公式。

您可能会问为什么我没有添加ronn作为可选依赖项。 造成这种情况的原因是brew info的输出,如果我添加标签:optional $ ,它看起来有点傻而且超级错误:

…
==> Dependencies
Build: cmake ✔
==> Requirements
Build: ronn (ruby module) ✔
Optional: ronn (ruby module) ✔
==> Options
--with-languagemodule
    Build with languagemodule support
…

. 下面的文本显示了brew info elektra的当前输出:

elektrainitiative/elektra/elektra: stable 0.8.19 (bottled), HEAD
Configuration Framework
https://web.libelektra.org
Not installed
From: https://github.com/ElektraInitiative/homebrew-elektra/blob/master/Formula/elektra.rb
==> Dependencies
Build: cmake ✔
==> Requirements
Build: ronn (ruby module) ✔

.

绑定

在我将-DBINDINGS=ALL添加到公式brew audit --strict elektra的 CMake 选项后显示以下消息(在我安装 Elektra 之后):

elektrainitiative/elektra/elektra:
  * python modules have explicit framework links
    These python extension modules were linked directly to a Python
    framework binary. They should be linked with -undefined dynamic_lookup
    instead of -lpython or -framework Python.
      /usr/local/Cellar/elektra/0.8.19/lib/python2.7/site-packages/_kdb.so
      /usr/local/Cellar/elektra/0.8.19/lib/python3.5/site-packages/_kdb.so
Error: 1 problem in 1 formula

. 如果我在 Python 的 Hombrew 版本中尝试import kdb ,那么 Python 解释器会崩溃,并显示以下错误消息:

Fatal Python error: PyThreadState_Get: no current thread
fish: '/usr/local/bin/python' terminated by signal SIGABRT (Abort)

这似乎是正常的,因为在我通常的构建目录中的ninja test也失败了,显示以下错误:

     31 - testpy2_kdb.py (OTHER_FAULT)
     32 - testpy2_key.py (OTHER_FAULT)
     33 - testpy2_keyset.py (OTHER_FAULT)
     34 - test_kdb.py (OTHER_FAULT)
     35 - test_key.py (OTHER_FAULT)
     36 - test_keyset.py (OTHER_FAULT)
     40 - testruby_kdb (OTHER_FAULT)
     41 - testruby_key (OTHER_FAULT)
     42 - testruby_keyset (OTHER_FAULT)

. 我使用以下命令生成 Ninja 项目:

    cmake ..                        \
          -GNinja                       \
          -DENABLE_TESTING=ON               \
          -DENABLE_DEBUG=ON                 \
          -DENABLE_LOGGER=OFF               \
          -DBUILD_PDF=ON                    \
          -DCMAKE_EXPORT_COMPILE_COMMANDS=ON        \
          -DPDFLATEX_COMPILER=`which latexmk`       \
          -DPDFLATEX_COMPILER_OPTIONS='-pdf;-f;-quiet'  \
          -DCMAKE_PREFIX_PATH=/usr/local/opt/qt5        \
          -DTOOLS=ALL                   \
          -DBINDINGS=ALL

. Lua 绑定似乎工作正常。 至少require 'kdb'不显示任何错误消息。

感谢你的付出!

手册页

是的,我同意人们会更喜欢瓶装版本。 没有手册页确实是一个主要的可用性问题,所以要求是合理的..

import kdb崩溃

@manuelm lm 你知道绑定为什么会崩溃吗?

@sanssecours也许痛饮版本太旧,或者使用了错误的痛饮?

它们应该与 -undefined dynamic_lookup 而不是 -lpython 或 -framework Python 链接。

也许我们应该简单地将-framework在 APPLE 的情况下传递给 target_link_libraries。 根据cmake docu的说法,似乎对-framework有特殊处理。

也许python的cmake文件坏了? 这是关于损坏的 python cmake 文件的长时间讨论。 (但可能无关)我在这里帮不上忙,这个问题是 Mac OS X 特有的。

@sanssecours也许痛饮版本太旧了……

不,我通过 Homebrew 安装了最新版本的swig ( 3.0.10 )。

……,或者使用了错误的痛饮?

我不这么认为。 我通过locate swig快速搜索仅显示通过 Homebrew 安装的版本。

@markus2330是的,它有效! 非常感谢自制配方, @sanssecours :ok_hand:

我确实有一个小问题,但这可能是因为sudo make uninstall没有完全卸载 elektra:

> brew install elektra
==> Installing elektra from elektrainitiative/elektra
==> Downloading https://github.com/ElektraInitiative/homebrew-elektra/releases/download/0.
==> Downloading from https://github-cloud.s3.amazonaws.com/releases/76387201/caf85aac-c307
######################################################################## 100.0%
==> Pouring elektra-0.8.19.sierra.bottle.tar.gz
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink share/elektra/test_data/lua/batterytotracker.lua
/usr/local/share/elektra/test_data/lua is not writable.

You can try again using:
  brew link elektra
==> Summary
🍺  /usr/local/Cellar/elektra/0.8.19: 2,668 files, 54.1M
> brew link elektra
Linking /usr/local/Cellar/elektra/0.8.19...
Error: Could not symlink lib/elektra/libelektra-storage.so
Target /usr/local/lib/elektra/libelektra-storage.so
already exists. You may want to remove it:
  rm '/usr/local/lib/elektra/libelektra-storage.so'

To force the link and overwrite all conflicting files:
  brew link --overwrite elektra

To list all files that would be deleted:
  brew link --overwrite --dry-run elektra

不过,在运行brew link --overwrite elektra之后,它工作得非常好。

如果我尝试在 Hombrew 版本的 Python 中导入 kdb,那么 Python 解释器会崩溃,并显示以下错误消息:

致命的 Python 错误:PyThreadState_Get:没有当前线程
fish: '/usr/local/bin/python' 由信号 SIGABRT 终止(中止)

那么python -c "import kdb"给出了上述致命错误? 听起来很奇怪,因为绑定(与插件相反)根本不涉及任何线程状态或解释器。

那么python -c "import kdb"给出了上述致命错误?

是的,如果我使用旧版本的公式安装 Elektra,命令/usr/local/bin/python -c "import kdb"会打印此错误消息。 好消息是/usr/local/bin/python3 -c "import kdb"有效。

顺便说一句,看看https://github.com/ElektraInitiative/libelektra/blob/master/.travis.yml#L52

如果我添加额外的定义并禁用pyenv ,那么 Python 测试 - 在我通常的构建目录中 - 运行良好。 谢谢你。

谢谢你,伟大的工作!

对于任何感兴趣的人:我最近在homebrew-core此处打开了 Elektra 0.8.21 的拉取请求。

太好了,自制配方被接受了! https://github.com/Homebrew/homebrew-core/pull/22049

一件小事:在http://brewformulas.org/Elektra中,描述“共享配置片段的存储库”有点错误,是否可以通过公式修改它? 或者我们是否需要在他们的跟踪器中提交问题来更改此文本?

我不认为http://brewformulas.org是官方 Homebrew 网站。 您可以找到公式的正确描述

访问全局密钥数据库中的配置设置的框架

在官方Homebrew 主页上。

谢谢,似乎其他描述错误的非官方页面在我的互联网搜索中排名更高。 那么我们这边的描述就没有问题了。

再次感谢您为获得自制配方官方提供的坚韧不拔。

您能否更新doc/INSTALL.md并明确何时使用官方公式以及何时使用我们的水龙头?

能否请您更新doc/INSTALL.md并明确何时使用官方公式...

我已经在我的本地版本的存储库中这样做了。 拉取请求 #1777 包含这些更改。

…以及何时使用我们的水龙头?

我们的水龙头的自述文件已经包含此信息。

保持开放状态以跟踪每个版本的自制配方的状态怎么样? 如果愿意,我们还可以为跟踪添加一个新问题。

保持开放状态以跟踪每个版本的自制配方的状态怎么样?

正如您在此处发布的内容所示 😊,我们无需保持此问题开放即可添加新评论。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

sanssecours picture sanssecours  ·  3评论

mpranj picture mpranj  ·  3评论

mpranj picture mpranj  ·  3评论

markus2330 picture markus2330  ·  4评论

markus2330 picture markus2330  ·  3评论