https://github.com/koalaman/shellcheck我可以使用cabal install安装上面的包。但是我想运行原始的ghc命令来编译二进制文件,而不需要安装。我该怎么做呢?
cabal install
ghc
f4t66c6m1#
下面是通常的方法。第一步是获得代码的副本。下面两个步骤中的一个将完成此操作:
% git clone https://github.com/koalaman/shellcheck % cabal unpack shellcheck
一旦进入包含代码的目录,就可以使用build命令(而不是install命令)要求cabal构建代码,而不安装代码。
build
install
cabal
% cabal build
如果您想查看cabal为此任务调用的子命令序列,可以通过增加详细程度来要求它显示这些子命令。
% cabal build -v3
zzwlnbp82#
首先你需要安装所有的依赖项,你可以用cabal install --dependencies-only来完成。然后你需要创建一个文件Paths_ShellCheck.hs,其内容如下:
cabal install --dependencies-only
Paths_ShellCheck.hs
module Paths_ShellCheck where import Data.Version version = Version [0,7,2] []
然后,您可以使用以下GHC命令:
ghc \ --make \ -O \ -package-db ~/.cabal/store/ghc-8.10.4/package.db \ -hide-all-packages \ -package regex-tdfa \ -package parsec \ -package containers \ -package base \ -package deepseq \ -package mtl \ -package QuickCheck \ -package array \ -package aeson \ -package bytestring \ -package Diff \ -package filepath \ -package directory \ src/ShellCheck/*.hs \ src/ShellCheck/*/*.hs \ Paths_ShellCheck.hs \ shellcheck.hs
这将构建可执行文件shellcheck。注意,这是专为GHC 8.10.4,如果你想使用另一个GHC版本,你可以改变它。如果你甚至不想运行cabal install --dependencies-only,那么最简单的方法可能是复制所有依赖项的所有 *.hs源文件,将它们添加到最后的globs中,并删除相应的-package ...参数。即base、deepseq、mtl、containers、array、bytestring、filepath、parsec和directory。因此,剩下Diff、aeson、QuickCheck和regex-tdfa以及它们的可传递依赖项。
shellcheck
-package ...
2条答案
按热度按时间f4t66c6m1#
下面是通常的方法。第一步是获得代码的副本。下面两个步骤中的一个将完成此操作:
一旦进入包含代码的目录,就可以使用
build
命令(而不是install
命令)要求cabal
构建代码,而不安装代码。如果您想查看
cabal
为此任务调用的子命令序列,可以通过增加详细程度来要求它显示这些子命令。zzwlnbp82#
首先你需要安装所有的依赖项,你可以用
cabal install --dependencies-only
来完成。然后你需要创建一个文件Paths_ShellCheck.hs
,其内容如下:然后,您可以使用以下GHC命令:
这将构建可执行文件
shellcheck
。注意,这是专为GHC 8.10.4,如果你想使用另一个GHC版本,你可以改变它。如果你甚至不想运行
cabal install --dependencies-only
,那么最简单的方法可能是复制所有依赖项的所有 *.hs源文件,将它们添加到最后的globs中,并删除相应的-package ...
参数。即base、deepseq、mtl、containers、array、bytestring、filepath、parsec和directory。因此,剩下Diff、aeson、QuickCheck和regex-tdfa以及它们的可传递依赖项。