[Linux] 在 CentOS 7 上安裝 shellcheck 遇到 Cabal 版本過舊的問題?
之前在 Mac 上裝過 shellcheck,相當簡單,用 Homebrew 一行指令就搞定了,
不過今天想在 CentOS 7 上安裝,卻遇到了一些小問題,記錄一下~
1. 安裝 Cabal
因為 shellcheck 是用 Haskell 語言寫的,
因此我們得先安裝 Haskell 的套件管理程式 Cabal:
sudo yum install cabal-install
2. 安裝 shellcheck
先將 Cabal 更新後,再來安裝 shellcheck:
cabal update cabal install shellcheck
如果一切順利的話,shellcheck 就安裝好了~
但在我的 CentOS 7 上並沒有這麼順利,說我的 Cabal 版本應該要用 1.8 以上才行:
Resolving dependencies... Failed to install ShellCheck-0.4.5 cabal: Error: some packages failed to install: ShellCheck-0.4.5 failed during the configure step. The exception was: user error (The package requires Cabal library version -any && >=1.8 but no suitable version is installed.)
看一下現在 Cabal 的版本,明明是 1.16,感覺上要比 1.8 新才對:
testuser@localhost ~ $ cabal --version
cabal-install version 1.16.1.0
using version 1.16.0 of the Cabal library
百思不得其解…
上網搜尋一下,有人說用 Cabal 再裝一次 Cabal 看看,
果真就裝了一個更新版本的 Cabal 1.24:
testuser@localhost ~ $ cabal install Cabal
Resolving dependencies...
Downloading Cabal-1.24.1.0...
......
Registering Cabal-1.24.1.0...
Installed Cabal-1.24.1.0
怪的是再看一次 Cabal 版本,還是寫 1.16:
testuser@localhost ~ $ cabal --version
cabal-install version 1.16.1.0
using version 1.16.0 of the Cabal library
但這次安裝 shellcheck 就沒有問題了:
testuser@localhost ~ $ cabal install shellcheck
Resolving dependencies...
......
Registering ShellCheck-0.4.5...
Installed ShellCheck-0.4.5
安裝好的 shellcheck 也可以正常運作:
testuser@localhost ~ $ shellcheck No files specified. Usage: shellcheck [OPTIONS...] FILES... -e CODE1,CODE2.. --exclude=CODE1,CODE2.. exclude types of warnings -f FORMAT --format=FORMAT output format -C[WHEN] --color[=WHEN] Use color (auto, always, never) -s SHELLNAME --shell=SHELLNAME Specify dialect (sh,bash,dash,ksh) -x --external-sources Allow 'source' outside of FILES. -V --version Print version information
(本頁面已被瀏覽過 580 次)