在手册中写道:
命令nix-instantiate从(高级)Nix表达式生成存储派生.
但什么是商店派生?
手册中说明了以下关于商店派生的内容:
构建操作的描述.派生的结果是商店对象.通常使用派生原语在Nix表达式中指定派生.这些被转换为低级存储派生(由nix-env和nix-build隐式,或由nix-instantiate显式)
这对于nix-newbee来说有点难以理解,我发现通过谷歌搜索没有更多关于nix-instantiate和store派生的启发.我也问#nixos,我没有回答.
有人可以在一个简单的例子中解释一下商店派生是什么,它用于什么?
为什么要使用nix-instantiate生成商店派生?你能给出一个超级简单易懂的例子吗?
When creating Lambda function through the SAM CLI using template.yaml, I have to pass few environment variables, and they shouldn't be exposed on GitHub. Is there any way I can refer the environment variables in template.yaml through the .env file?
I didnt find any sources for the same.
Sample code snippet from template.yaml:
Properties:
CodeUri: student /
FunctionName: list
Handler: index.listHandler
Runtime: nodejs14.x
Environment:
Variables:
MONGODB_URI: mongodb://username:pwd
Run Code Online (Sandbox Code Playgroud) 我喜欢 Vimium 并最终开始研究它的更多功能,但我根本找不到关于它如何有用的任何信息。例如,可视化模式在Wiki 中有很好的记录,但到目前为止我能找到的关于插入模式的所有内容是如何进入和退出它。尝试使用 Vim 时我知道的随机键,但似乎没有任何效果。
如果我运行pg_dump将表转储到 SQL 文件中,它是否会拍摄表中最后一行的快照,并将所有行转储到该行?
或者它是否继续转储所有行,甚至是pg_dump运行后插入的行?
第二个问题是:在运行之前停止所有插入查询是个好主意吗pg_dump?
已经找到了解决方案(请参阅下面的答案),但我不确定它是否合适;另外,这也可能对其他人有帮助。
尝试按照文档( 18.2创建数据库集群)设置PostgreSQL ,但在Ubuntu 18.04(内核:4.15.0-22-generic)上出现以下错误:
$ initdb -D /usr/local/pgsql/data
(...)
initdb: invalid locale settings; check LANG and LC_* environment variables
Run Code Online (Sandbox Code Playgroud)
在 Stackoverflow ( 1 , 2 )上找到了几个相关的答案,但这些答案并没有解决问题,而Serverfault 上的答案建议重新启动服务,但 PostgreSQL 甚至没有运行。
尝试在系统上发现的每个变体中显式传递区域设置,但这些也失败了,
3617 2018/06/07-08:36 initdb -D ~/Downloads/ --locale=en_US.utf8
3618 2018/06/07-08:36 initdb -D ~/Downloads/ --locale=en_US.UTF8
3621 2018/06/07-08:37 initdb -D ~/Downloads/ --locale=en_US.UTF-8
3622 2018/06/07-08:37 initdb -D ~/Downloads/ --locale="en_US.UTF-8"
3623 2018/06/07-08:37 initdb -D ~/Downloads/ --locale="en_US.utf8"
3645 2018/06/07-09:24 initdb -D ~/Downloads/ --locale="en_US.utf8"
Run Code Online (Sandbox Code Playgroud)
和
initdb: invalid locale name <the_option_value_above>
Run Code Online (Sandbox Code Playgroud)
要调用使用一套解构一个尼克斯的功能,你需要用它传递了一套正是它需要,没有更多的按键也不能少:
nix-repl> ({ a }: a) { a = 4; b = 5; }
error: anonymous function at (string):1:2 called with unexpected argument ‘b’, at (string):1:1
Run Code Online (Sandbox Code Playgroud)
例外情况是函数的参数列表末尾包含省略号:
nix-repl> ({ a, ... }: a) { a = 4; b = 5; }
4
Run Code Online (Sandbox Code Playgroud)
但是,nixpkgs中的大多数包都包含一个default.nix包含未使用此省略号定义的函数的文件.然而,不管怎样,当你使用时callPackage,它设法调用这些函数并仅传递它们所需的参数.这是如何实现的?
我正在从Haskell书中解决以下练习:
-- >>> flipMaybe [Just 1, Just 2, Just 3]
-- Just [1, 2, 3]
-- >>> flipMaybe [Just 1, Nothing, Just 3]
-- Nothing
flipMaybe :: [Maybe a] -> Maybe [a]
flipMaybe = undefined
Run Code Online (Sandbox Code Playgroud)
首先我尝试使用elem,
flipMaybeWithElem :: [Maybe a] -> Maybe [a]
flipMaybeWithElem ms
| Nothing `elem` ms = Nothing
| otherwise = Just (catMaybes ms)
Run Code Online (Sandbox Code Playgroud)
但是我收到了错误消息:
misc.hs:86:5: error:
• No instance for (Eq a) arising from a use of ‘elem’
Possible fix:
add (Eq …Run Code Online (Sandbox Code Playgroud) 我预计它会被记录在 中Module,可能会引用structs,但没有什么乐趣。看到它与单个或一组参数一起使用。到目前为止我能找到的所有变体:
模块名称列表,例如
@derive [MyProtocol, Another]
模块名称 如
@derive Inspect
元组的形式
@derive {Protocol, key1: :val1, key2: val2}
元组列表,例如
@derive [{Prot1, :options}, {Prot2, key: :val}]
我发现唯一提到的地方@derive:
Kernel.defstruct/1宏文档中的“导出”部分InspectProtocol.derive/3宏的文档(在#7019中添加)不确定我是否只是忽略了一些东西,因此没有提出问题或拉取请求。
我正在从了解你一些Erlang中学习Erlang ,我已经[_|_]两次见过这个模式但是找不到任何关于它的信息.这种用法似乎是多余的,因为从(1)中省略它并用_ in(2)中的_舍入它会产生相同的结果,而不会降低可读性.这是我与Erlang的第一周,所以我可能完全错了.
(1)来自bestest_qsort:
bestest_qsort(L=[_|_]) ->
bestest_qsort(L, []).
Run Code Online (Sandbox Code Playgroud)
(2)从这里:
error:{badmatch,[_|_]} -> ok
Run Code Online (Sandbox Code Playgroud) 找到了很多描述callPackage其内部结构的来源,但没有一个提到它的位置。这就像 Nix 保守得最好的秘密,手册甚至似乎都在积极回避这个话题。我可以找到它给定的时间,但它是一个巨大的回购。
资源:
答案实际上指向callPackageWith函数 in customisation.nix,但callPackage它本身是在别处定义的。
nix ×3
nixpkgs ×2
postgresql ×2
aws-lambda ×1
aws-sam-cli ×1
elixir ×1
erlang ×1
haskell ×1
locale ×1
nixos ×1
pg-dump ×1
sam ×1
sql ×1
vimium ×1