我经常安装一个依赖于外部库的软件包,并设法将这些外部库移动到其他位置,以便编译后的程序以加载程序错误退出.
在这些情况下,我只想要堆栈来重建已经安装的软件包,但我不知道这是怎么回事.stack install --force-dirty
似乎没有用,因为它只是尝试在当前工作目录中重建项目.
最近的例子:
我想看看是否regex-pcre
需要在Windows系统上不存在C库,所以我点击了stack install regex-pcre
.这很好,但后来我意识到我在此之前mingw-w64-x86_64-pcre
通过stack
s 安装了pacman
.我再次删除它pacman -R
并尝试stack install regex-pcre
再次运行,但没有重建它.由于--force-dirty
上述原因,也没有添加工作.
在尝试调试另一个问题时,我安装了一个似乎与我其他安装的一些软件包冲突的软件包。
\n\n我跑了
\n\n$ stack install regex-pcre-text\nregex-pcre-builtin-0.94.4.8.8.35: configure\nregex-tdfa-1.2.3.1: download\nregex-pcre-builtin-0.94.4.8.8.35: build\nregex-tdfa-1.2.3.1: configure\nregex-tdfa-1.2.3.1: build\nregex-pcre-builtin-0.94.4.8.8.35: copy/register\nregex-tdfa-1.2.3.1: copy/register\nregex-tdfa-text-1.0.0.3: download \nregex-tdfa-text-1.0.0.3: configure \nregex-tdfa-text-1.0.0.3: build \nregex-tdfa-text-1.0.0.3: copy/register\nregex-pcre-text-0.94.0.1: download \nregex-pcre-text-0.94.0.1: configure \nregex-pcre-text-0.94.0.1: build \nregex-pcre-text-0.94.0.1: copy/register\nCompleted 4 action(s). \n
Run Code Online (Sandbox Code Playgroud)\n\n我不能再简单地导入
\n\nText.Regex.PCRE\n
Run Code Online (Sandbox Code Playgroud)\n\n当我尝试时,我现在看到:
\n\n$ stack ghci\nPrelude> :set -XOverloadedStrings\nPrelude> import Text.Regex.PCRE\n
Run Code Online (Sandbox Code Playgroud)\n\n产量
\n\n<no location info>: error:\n Ambiguous module name \xe2\x80\x98Text.Regex.PCRE\xe2\x80\x99:\n it was found in multiple packages:\n regex-pcre-0.94.4 regex-pcre-builtin-0.94.4.8.8.35\n
Run Code Online (Sandbox Code Playgroud)\n\n我想将我的安装恢复到早期状态,以便我的计算机上Text.Regex.PCRE
未经限定导入的代码继续像以前一样工作。
然而,看起来堆栈没有明确的卸载:
\n\n$ stack uninstall regex-pcre-text\n\nError: stack does …
Run Code Online (Sandbox Code Playgroud)