首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将.ghc和.cabal移动到不同的用户

将.ghc和.cabal移动到不同的用户
EN

Stack Overflow用户
提问于 2014-03-21 00:52:03
回答 1查看 254关注 0票数 3

如何将GHC和阴谋安装的软件包移动到不同的用户?我复制了目录,但收到了如下错误消息:

代码语言:javascript
复制
ConfigParser.hs:15:8:
    Could not find module `Data.ByteString.Char8'
    There are files missing in the `bytestring-0.10.2.0' package,
    try running 'ghc-pkg check'.
    Use -v to see a list of the files searched for.

ghc-pkg check显示任何包的任何文件都丢失了。我怎么解决这个问题?

注意:这个问题故意没有表现出研究的努力,因为它被回答为问答式的.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-21 00:52:03

首先,您显然需要复制.ghc.cabal。这些文件包含二进制文件和配置。

为了简单起见,我们将假设从用户foo迁移到用户bar。请注意,在体系结构之间移动是不可能的,因为GHC生成的二进制文件并不是独立于平台的。

在复制上述目录之后,还有像/home/foo这样的路径保留在不同的位置。我们将使用sed来替换它们(以bar的形式运行它):

代码语言:javascript
复制
sed -i -e "s/foo/bar/g" ~/.cabal/config
sed -i -e "s/foo/bar/g" ~/.ghc/*-*/package.conf.d/*.conf

但是,文件~/.ghc/*-*/package.conf.d/package.cache仍然包含包含用户名的文件引用。但是,我们不能简单地使用sed来替换,因为它是一个二进制文件,它可能破坏包缓存。

您可以使用ghc-pkg recache --user重新缓存所有包。

执行这些步骤之后,您应该能够像预期的那样使用cabal包。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22548162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档