gpt4 book ai didi

linux - 在 jail 环境中运行 Haskell 程序需要什么

转载 作者:IT王子 更新时间:2023-10-29 01:26:39 25 4
gpt4 key购买 nike

我想在我自己构建的受限环境中运行一个简单的 Haskell 程序。我要运行以下 Haskell 程序:

import System.IO

main = do
hPutStrLn stderr "test standard error!"
hPutStrLn stdout "test standard out!"

它只是将一个字符串输出到 stderr 和 stdout,在 jail 外工作得很好。代码编译如下:

ghc -O2 --make -static -optc-static -optl-static $MAINHS -optl-pthread -o bin/run_ai

我得到一个运行该程序的 run_ai 可执行文件,正如我所说,它在 jail 外工作正常。下面是放置在 jail 环境中的东西,我认为这里缺少一些东西,因为当我在 jail 中运行程序时,它什么都不做,它甚至不退出,也没有给出任何错误/输出转储。

mkdir -p lib64 lib bin

cp /bin/sh bin/

# Binaries
cp /lib64/ld-linux-x86-64.so.2 lib64/

cp /lib/x86_64-linux-gnu/libpthread.so.0 lib/
cp /lib/x86_64-linux-gnu/libc.so.6 lib/
cp /lib/x86_64-linux-gnu/libdl.so.2 lib/
cp /lib/x86_64-linux-gnu/librt.so.1 lib/
cp /lib/x86_64-linux-gnu/libm.so.6 lib/
cp /lib/x86_64-linux-gnu/libtinfo.so.5 lib/
cp /lib/x86_64-linux-gnu/libutil.so.1 lib/
cp /usr/lib/x86_64-linux-gnu/libffi.so.6 lib/
cp /usr/lib/x86_64-linux-gnu/libgmp.so.10 lib/
cp /usr/lib/libgmp.so.3 lib/

我知道 jail 本身很好用,因为我已经成功地将它用于十几种其他编程语言,但是 Haskell 让我很头疼,因为我对可能出现的问题一无所知。可悲的是,我不是 Haskell 的专家,但我只需要它来编译并在 jail 中运行。我是否遗漏了运行可执行 Haskell 文件实际需要的东西?

所以我的问题是:我错过了什么/做错了什么?

最佳答案

走出 jail ,跑

strace -e 打开你的程序

这将打印您的程序打开的所有文件的名称。

关于linux - 在 jail 环境中运行 Haskell 程序需要什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26117241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com