繁体   English   中英

将.ghc和.cabal移动到其他用户

[英]Moving .ghc and .cabal to a different user

如何将GHC和cabal安装的软件包移动到其他用户? 我已经复制了目录,但我收到的错误消息如下:

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显示缺少任何包的任何文件。 我该如何解决这个问题?

注意:这个问题故意不显示研究工作,因为它回答了Q&A风格。

首先,你显然需要复制.ghc.cabal 它们包含二进制文件和配置。

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

复制上述目录后,有/home/foo等路径保留在不同的位置。 我们将使用sed来替换那些(运行本作bar ):

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包。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM