小编srg*_*hma的帖子

nixops:在具有现有 nixos 的机器上部署时如何使用本地 ssh 密钥(targetEnv 为 none)?

我有 nixos 机器(使用 terraform, config 配置),我想使用deployment.targetHost = ipAddress和连接到它deployment.targetEnv = "none"

但是我不能配置 nixops 来使用/secrets/stage_ssh_keyssh 密钥

这不起作用(实际上这没有记录,我在这里找到了https://github.com/NixOS/nixops/blob/d4e5b779def1fc9e7cf124930d0148e6bd670051/nixops/backends/none.py#L33-L35

{
  stage =
    { pkgs, ... }:
    {
      deployment.targetHost = (import ./nixos-generated/stage.nix).terraform.ip;
      deployment.targetEnv = "none";

      deployment.none.sshPrivateKey        = builtins.readFile ./secrets/stage_ssh_key;
      deployment.none.sshPublicKey         = builtins.readFile ./secrets/stage_ssh_key.pub;
      deployment.none.sshPublicKeyDeployed = true;

      environment.systemPackages = with pkgs; [
        file
      ];
    };
}
Run Code Online (Sandbox Code Playgroud)

nixops ssh stage 结果要求输入密码,预期 - 无需密码登录

nixops ssh stage -i ./secrets/stage_ssh_key 按预期工作,不询问密码

如何重现:

  • 下载仓库
  • rm -rf secrets/*
  • 添加aws键 secrets/aws.nix

    { EC2_ACCESS_KEY="XXXX"; EC2_SECRET_KEY="XXXX"; …

nixops

6
推荐指数
0
解决办法
818
查看次数

如何从最后一行复制到剪贴板3:消息

如果我使用:messagesvim命令,我可以使用vim日志进行寻呼模式,我无法选择没有鼠标的行(在某些程序中,如neovim-qt我甚至无法使用右键菜单(如在gnome终端中)来复制文本)

如何复制3个最后一行?

vim

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

为什么 foldr 可以带三个参数的函数?

我正在查看一些列表操作并遇到了!!

(!!)                    :: [a] -> Int -> a
xs !! n
  | n < 0     = negIndex
  | otherwise = foldr (\x r k -> case k of
                                   0 -> x
                                   _ -> r (k-1)) tooLarge xs n
Run Code Online (Sandbox Code Playgroud)

该函数(\x r k -> ...)具有 type a -> (Int -> a) -> Int -> a,但foldr需要一个只接受两个参数的函数:

foldr            :: (a -> b -> b) -> b -> [a] -> b
foldr k z = go
          where
            go …
Run Code Online (Sandbox Code Playgroud)

haskell types arguments function fold

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

如何使用条纹 api 更新订阅备忘录字段?

有条带允许在仪表板上编辑的备注字段

据说This will appear on any invoices and receipts

这正是我需要的 - 由发票继承并在发票电子邮件中查看的字段

尽管 api 返回的订阅对象上没有备注字段https://stripe.com/docs/api#subscription_object

它在哪里?

stripe-payments

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

如何为仿函数制作点(组合)和美元(应用)标志?

我为仿函数(○)制作了点符号,但是我的应用程序(↯)不起作用,我在test3函数声明中有错误

{-# LANGUAGE TypeOperators #-}

module Main where

import Protolude

-- composition of functors, analog of .
infixr 9 ?
type (?) f g a = f (g a)

-- functor application, analog of $
infixr 0 ?
type (?) f a = f a

test :: [] (Maybe Int)
test = [Just 1]

test2 :: ([] ? Maybe) Int
test2 = [Just 1]

test3 :: ([] ? Maybe) ? Int -- error here
test3 = [Just 1] …
Run Code Online (Sandbox Code Playgroud)

haskell

5
推荐指数
0
解决办法
131
查看次数

如何禁用解包阶段以防止错误“不知道如何解包源存档”?

带推导

let
  pkgs = import <nixpkgs> {};
in

with pkgs;

stdenv.mkDerivation {
  name = "asdfasdf";

  version = "0.1";

  src = /home/srghma/opt/foxitsoftware/foxitreader/FoxitReader; # this is executeable file

  dontUnpack = true; # not fu**** working

  installPhase = ''
    echo "not even executed"
  '';
}
Run Code Online (Sandbox Code Playgroud)

我有一个错误

nix-build tmp.nix
these derivations will be built:
  /nix/store/x75gi70i1i57y8d3k4hhx0r3z5kjn6h6-asdfasdf.drv
building '/nix/store/x75gi70i1i57y8d3k4hhx0r3z5kjn6h6-asdfasdf.drv'...
unpacking sources
unpacking source archive /nix/store/3hnf69pky6mqaxv4jxly9fyywqpq6iml-FoxitReader
do not know how to unpack source archive /nix/store/3hnf69pky6mqaxv4jxly9fyywqpq6iml-FoxitReader
builder for '/nix/store/x75gi70i1i57y8d3k4hhx0r3z5kjn6h6-asdfasdf.drv' failed with exit code 1
error: build of '/nix/store/x75gi70i1i57y8d3k4hhx0r3z5kjn6h6-asdfasdf.drv' …
Run Code Online (Sandbox Code Playgroud)

nix

5
推荐指数
2
解决办法
4769
查看次数

如何在nix文件中创建全局变量(或函数)?

我想声明变量,dotfiles_dir以便所有其他文件都可以看到并使用它。

例如(不工作)

/etc/nixos/configuration.nix(它是根文件,对吧?)

dotfiles_dir="/home/bjorn/.config/dotfiles";

import "${dotfiles_dir}/nixos/root/default.nix"
Run Code Online (Sandbox Code Playgroud)

并在~/.config/nixpkgs/home.nix(使用https://github.com/rycee/home-manager)中使用它

import "${dotfiles_dir}/nixos/home/default.nix"
Run Code Online (Sandbox Code Playgroud)

nixos nix

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

为什么 postgres `CHECK` 约束中不能使用 `IF` 子句?

例如这个查询可能吗?

CREATE TABLE products (
    name text,
    price numeric not null,
    CHECK (IF price > 0 THEN name IS NOT NULL ELSE name IS NULL END IF)
);
Run Code Online (Sandbox Code Playgroud)

更新:

好像没有

这里https://rextester.com/l/postgresql_online_compiler

它抛出错误

Error(s), warning(s):

42601: syntax error at or near "price"
Run Code Online (Sandbox Code Playgroud)

查看文档https://www.postgresql.org/docs/current/sql-createtable.html#SQL-CREATETABLE-EXCLUDE它说

目前,CHECK 表达式不能包含子查询,也不能引用除当前行的列之外的变量。可以引用系统列 tableoid,但不能引用任何其他系统列。

IF不是子查询,不明白为什么它不起作用


更新2:

CREATE TABLE products (
    name text,
    price numeric not null,
    CHECK ((price > 0 AND name IS NOT NULL) OR (price <= 0 AND name IS NULL)) …
Run Code Online (Sandbox Code Playgroud)

postgresql ddl check-constraints

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

Vim方式在多行上划出文本对象

假设我有

- 'autoindent' is set by default
- 'autoread' is set by default
- 'backspace' defaults to "indent,eol,start"
- 'backupdir' defaults to .,~/.local/share/nvim/backup (|xdg|)
- 'complete' doesn't include "i"
- 'directory' defaults to ~/.local/share/nvim/swap// (|xdg|), auto-created
Run Code Online (Sandbox Code Playgroud)

我如何autoindent autoread backspace...用视觉块(系统)将系统注册等词语等等

PS已经尝试过vim-multiple-cursors,但是插件有bug(而不是vim方式)并且如果在其间退出多游标模式,则不允许复制粘贴.


俄语版也有很棒的答案

vim

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

State monad:如何在Haskell中"打印"中间值

我是haskell的新手,我有以下代码

module StateTest where

import Control.Monad.State.Lazy

tick :: State Int Int
tick = do n <- get
          put (n+1)
          return n

plusOne :: Int -> Int
plusOne = execState tick

main = print $ plusOne 1
Run Code Online (Sandbox Code Playgroud)

我想在之后打印状态值put (n+1)并继续这样的计算

tick = do n <- get
          put (n+1)
          print
          return n
Run Code Online (Sandbox Code Playgroud)

整个代码如何看待这个?

haskell

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

Haskell中是否有任何运算符用(>>)折叠动作列表?

我想要一些<?>可以改变它的运算符

test arg1 >>
test arg2 >>
test arg3 >>
test arg4
Run Code Online (Sandbox Code Playgroud)

对此

test <?> [ arg1
         , arg2
         , arg3
         , arg4
         ]
Run Code Online (Sandbox Code Playgroud)

monads haskell

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

Haskell中带&符号的冒号的含义(:&)

Haskell书中实现Stream (作者Anton Kholomiov)(第70页)

data Stream a = a :& Stream a
Run Code Online (Sandbox Code Playgroud)

我明白这意味着什么:&,但却无法找到它的定位

haskell

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

什么意思在Haskell中输入`a - > mb`?

示例 - runKleisli来自Haskell基本模块的函数

newtype Kleisli m a b = Kleisli { runKleisli :: a -> m b }
Run Code Online (Sandbox Code Playgroud)

这意味着runKleisli有1个参数类型a,必须返回函数m,它有1个参数b

haskell

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