[Linux] 在 CentOS 7 上安裝 shellcheck 遇到 Cabal 版本過舊的問題?

[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

 

參考資料:ShellCheck-0.4.3 fails to install: requires Cabal library version -any && >=1.8 but no suitable version is installed

 

(本頁面已被瀏覽過 580 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料