FSL で imglob: command not found と出た時の対処方法

FSLをきちんとインストールしたつもりなのに、imglob, imcp, immv のいずれかを実行したり、eddy などのコマンドを実行すると、

imglob: command not found

というエラーが出ることがあります。

これは、FSLのインストールがうまくいっていないサインです。

FSLのサイトにも記載があります。

しかし、もうひと工夫必要なので記載します。

これは、fslpython が正しくセットアップされていなかったことに起因します。

以下の方法をとります。

  1. fslpythonの削除
  2. /usr/local/fsl の下にある fslpython ディレクトリがあるようだったら削除します。

    cd /usr/local/fsl
    ls
    sudo rm -r fslpython
    
  3. fslpython_install.sh の実行
  4. 次に、 $FSLDIR/etc/fslconf/fslpython_install.sh を実行します。
    しかし、ここにトリックがひとつあります。

    理解するために以下を試してみていただければと思います。

    • ユーザー権限でスクリプトを実行しようとする
    • $FSLDIR/etc/fslconf/fslpython_install.sh
      

      これは、以下のエラーとなります。

      Error - cannot write to /usr/local/fsl!
      

      ルート権限が必要ですね。

    • ルート権限でスクリプトを実行しようとする
    • それでは、 sudo をつけて実行します。

      sudo $FSLDIR/etc/fslconf/fslpython_install.sh
      

      そうすると、以下のエラーとなります。

      Error - FSLDIR not given as an argument and $FSLDIR not set!
      

      $FSLDIRなんて知らん!と怒られているわけです。

      どうして?と思いましたが、はたと気づきました。
      コマンドに $FSLDIR と入っています。
      $FSLDIR は、ユーザーには設定されていますが、ルートには設定されていません。
      ならば解決方法は2つです。

    • 解決法1: ユーザ環境をひきつぐ、 sudo -E オプションを用いる
    • sudo -E はユーザー環境を保持します。
      -E, –preserve-env
      Indicates to the security policy that the user wishes to preserve their existing environment variables.

      従って、以下でやれば $FSLDIR が理解されるので解決です。

      sudo -E $FSLDIR/etc/fslconf/fslpython_install.sh
      
    • 解決法2: $FSLDIRを使わない
    • 考えてみれば最初から $FSLDIR を展開しておけばいいわけですね。

      echo $FSLDIR
      /usr/local/fsl
      sudo /usr/local/fsl/etc/fslconf/fslpython_install.sh
      

      これで、fslpythonのインストールが行われます。
      インストールにはそれなりの時間がかかります。
      これが終わると、もう使えるようになります。

  5. imglobの確認
  6. 最後にきちんとインストールされたか確認します。

    $ imglob
    Usage: imglob [-extension/extensions] <list of names>
           -extension for one image with full extension
           -extensions for image list with full extensions
    

これでFSLが正しくインストールされました。

Print Friendly, PDF & Email

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください