小编Mik*_* T.的帖子

"content-hash"是composer.lock的必备部分吗?

像大多数人一样编写(和阅读)关于是否保持composer.lock版本控制的问题,我们将其保留那里.

但是,每次在不同的代码分支中独立更新文件时,这都会给我们带来麻烦.即使更改不相关并且彼此远离影响文件的各个部分,该"content-hash"每次都会引起冲突.更糟糕的是,"侧面"都不正确,无论谁进行合并,都必须手动重新生成文件......

也许,这条线不是真的有必要吗?在询问之前,是否(当前版本的)作曲家在没有它的情况下工作,会缺少什么功能?哈希似乎可以防止文件本身发生变化 - 但源控制系统已经在做了......

我可以简单地删除该线路吗?如果今天无法完成,它会成为作曲家的理想功能吗?

composer-php

17
推荐指数
2
解决办法
7278
查看次数

如何使用单个文件资源安装多个文件

我需要将一些文件安装到一个目录中,而这个目录本身并不是由Puppet管理的.在source每个文件的是在files/我的模块的子目录.

我想一次性安装它们,因为它们的所有权和权限都是一样的.但是我该怎么做source?我希望,只需指定目录即可:

  file {[
    "${rcdir}/foo", "${rcdir}/bar",
  ]:
    source => "puppet:///${module_name}/",
    group  => 'wheel',
    owner  => 'root',
    mode   => '0644'
  }
Run Code Online (Sandbox Code Playgroud)

但是,不幸的是,Puppet(在这里使用3.7.5)不够聪明,不能自动追加foobar适当的.

有没有一个很好的方法来做到这一点,还是我必须精心枚举每个文件?谢谢!

puppet

7
推荐指数
1
解决办法
7852
查看次数

Ansible 清单可以包含另一个清单吗?

我们有一组在应用程序的不同实例之间共享的服务器,并且希望它们的列表成为一个单独的文件,以及其他特定于实例的清单(包括它)。

(我知道,这可以通过动态库存来完成,但可以这么说,这些都是代码,我们希望我们的服务器列表保留数据。)

对于 INI 库存,这是不可能的,但对于 YAML 来说,这是非常接近的。例如,这个答案显示了如何通过!include向 Python 的 YAML 解析器添加处理程序来完成此操作。然后我们可以这样写:

all:
  group1:
    host1:
    host2:
  sharedservers: !include shared-servers.yaml
Run Code Online (Sandbox Code Playgroud)

如何将此功能添加到自己的 Ansible 存储库中——最好不要实现全新的库存插件(尽管从 Ansible 的现有插件继承也可以)?

yaml include ansible ansible-inventory

7
推荐指数
2
解决办法
1万
查看次数

如何过滤Jinja中的字典?

我有一个字典,其中package-name是的字典,一些细节的字典是value

{
        "php7.1-readline": {
            "latest": "7.1.9-1+ubuntu14.04.1+deb.sury.org+1", 
            "origins": [
                "ppa.launchpad.net"
            ], 
            "version": "7.1.6-2~ubuntu14.04.1+deb.sury.org+1", 
            "www": "http://www.php.net/"
        }, 
        "php7.1-xml": {
            "latest": "7.1.9-1+ubuntu14.04.1+deb.sury.org+1", 
            "origins": [
                "ppa.launchpad.net"
            ], 
            "version": "7.1.6-2~ubuntu14.04.1+deb.sury.org+1", 
            "www": "http://www.php.net/"
        }, 
        "plymouth": {
            "version": "0.8.8-0ubuntu17.1"
        },
    ....
}
Run Code Online (Sandbox Code Playgroud)

我想将以上内容简化为仅包含latest其属性为-attribute 的包的字典。

似乎json_query是要使用的过滤器,但是我无法弄清楚语法。那里的例子似乎都是在词典列表上操作的,而不是相同词典列表 ...

例如,如果我将上述字典“管道”到中json_query('*.latest'),我会得到实际最新版本的列表

[
  "7.1.9-1+ubuntu14.04.1+deb.sury.org+1",
  "7.1.9-1+ubuntu14.04.1+deb.sury.org+1",
  "7.1.6-2~ubuntu14.04.1+deb.sury.org+1"
]
Run Code Online (Sandbox Code Playgroud)

我如何获取整个字典元素呢?

有希望吗

dictionary jinja2 ansible jmespath

5
推荐指数
1
解决办法
4931
查看次数

消息总线:发件人必须等待来自多个收件人的确认

在我们的应用程序中,发布者创建一条消息并将其发送到主题.

然后,当所有主题的订阅者都收到消息时,它需要等待.

它没有出现,消息总线实现可以自动执行此操作.因此,我们倾向于让每个订阅者在完成后为客户端发送自己的新消息.

现在,客户端可以接收所有这些消息,并且当它从每个目的地获得一个消息时,做它必须做的任何清理.但是如果客户端(发送者)在确认流中部分崩溃会怎样?为了应对这样的不幸,我需要(重新)实现客户端上已经实现的总线 - 保存传入的确认,直到我得到足够的数量.

我不相信,我们的需求是深奥的 - 您将如何处理发件人(发布者)必须等待来自多个收件人(订阅者)的确认的情况?有点像从每个订户请求(和等待)回收收据到邮件列表...

如果重要的话,我们正在使用RabbitMQ.谢谢!

rabbitmq message-bus

4
推荐指数
1
解决办法
1154
查看次数

如何在 shell 管道中使用不同的文件描述符?

stdout我正在处理一个脚本,它首先调用一个嘈杂的(对和)程序进行大量诊断stderr,然后使用其他工具处理其输出。

该程序的冗长使得不可能简单地将其标准输出发送到管道,因此目前我们使用临时文件——我想结束这种做法。

我们可以/tmp/foo要求程序将数据写入,而不是写入 - 它会,没有问题(例如,/dev/fd/N它不需要文件)。seek

stdout它当前发送到和的噪音stderr可以继续到那里——操作员已经习惯了看到它,并且如果它消失就会感到震惊......

但是我如何安排描述符N存在并发送到下一个程序中stdin

noisy -o /dev/fd/N ?????| filter -i /dev/stdin
Run Code Online (Sandbox Code Playgroud)

如果这需要bash,那就这样吧,但当然,我更喜欢适合整个 sh 系列的解决方案。

unix bash pipeline file-descriptor sh

4
推荐指数
1
解决办法
1834
查看次数

为什么unique_ptr<T> 不能从T* 构造?

举个简单的例子,这段代码有什么“错误”?

unique_ptr<char> meow = strdup("meow");
Run Code Online (Sandbox Code Playgroud)

无论我是否向unique_ptr模板提供“deleter”参数,unique_ptr<T>都不能从T*.

为什么不<memory>提供这种看似直观的快捷方式?这仅仅是一个疏忽,还是出于某种原因,这种可分配性是一个根本坏的主意?

c++ unique-ptr

4
推荐指数
1
解决办法
140
查看次数

如何将整数错误代码转换为人类可读的字符串?

IBM 不遗余力地记录了不同 MQ 相关函数的可能错误代码,但我找不到现有的库函数来将整数代码转换为人类可读的字符串。

像 libcstrerror(3)或 OpenSSL 之类的东西ERR_error_string(3)......

我想,程序员和操作员应该有一本方便的(如果有狗耳朵的话)参考书......

或者这个功能是否存在——只是不容易找到?

c++ ibm-mq

2
推荐指数
1
解决办法
104
查看次数

如何从已编译的ELF可执行文件中提取一些函数(无需反汇编)?

我正在处理一个大型可执行文件,我没有源代码(长篇故事).

我想从中提取几个函数的二进制代码 - 并尝试从我自己的程序中调用它们.我正在寻找的函数都是从相同的源文件(在Linux上使用gcc)编译的,如果重要的话.

我可以使用objdump看到函数的二进制代码.有没有什么方法可以说服工具转储函数的二进制代码 - 没有别的东西,没有拆解?

基本上,如果定义函数的C文件被称为foo.c,我想得到foo.o(我实际上更喜欢foo.So,但这不会存在于可执行文件中).可以用objdump,readelf或其他一些方法完成吗?

如果重要的话,这些功能是独立的.

谢谢!

elf objdump readelf

1
推荐指数
1
解决办法
3460
查看次数

如何在私有类成员上使用decltype?

我有一个班级有一些"毛茸茸的"私人领域.每个都有访问器功能(getter和setter).

private:
    array<double, 9>         foo;
public:
    const array<double, 9> & getFoo() const { return foo; }
    void                     setFoo(const array<double, 9> & _foo) { foo = _foo; }
Run Code Online (Sandbox Code Playgroud)

我真的希望不会有不断重复的array<double, 9>其他地方-用decltype指到外地,不管它可能是类型.

不幸的是,简单地调用decltype(instance.foo)在类之外不起作用,因为它foo是私有的.

幸运的是,decltype(getFoo()) 几乎工作 - getFoo是公开的,必须具有相同的类型.

不幸的是,上面的"差不多"还不够好 - getFoo的类型实际上是一个参考(array<double, 9> &).

如何获取类外部代码中的实际类型,以便我可以调用setter-function:

  SOMETHING values;
  for (auto &i : values)
      i = something();
  instance.setFoo(values);
Run Code Online (Sandbox Code Playgroud)

c++ typeof decltype c++11

0
推荐指数
1
解决办法
245
查看次数