在这里插入图片描述

  这已经是笔者第三篇关于FSL的文章了,足以见其有多么难缠。用官网给的方法,不仅下载慢,而且失败的概率大于99%。所以笔者采用了这篇博客给出的办法,但是这个办法有一个bug,那就是安装完成之后,fsleyes、imcp、immv等缺失,即fsleyes not found,经过反复试验,最终笔者可以非常顺利的修复fsleyes等缺失的问题啦,现记录在此供大家参考。

  操作系统:ubuntu20.04/centos8/centos7
  使用工具:Anaconda3-2020.11-Linux
  待装软件:fsl6.0.3/fsl6.0.4(链接:https://pan.baidu.com/s/17jDl-JeUY5IFviu0eKVsfw 提取码:hcbr )

  FSL简易安装:FSL5.0,安装容易,但版本老旧
  docker下完整安装FSL:FSL 6.0.3,部署容易,便于分享环境,但配置GUI麻烦
  Linux上单独安装FSL:FSL6.0.3/FSL6.0.4,离线安装,修复FSLeyes not found,无法分享环境
  VMware安装FSL等:FSL6.0.3/FSL6.0.4,离线安装,修复FSLeyes not found,并放在虚拟机上,便于分享环境

copyright ©意疏:https://blog.csdn.net/sinat_35907936/article/details/112969857


Anaconda与虚拟环境(所有操作均在root下)


  先切换到root用户,避免后面反复输密码,不过操作要小心,不要误删了东西。

su
 wget -c https://repo.anaconda.com/archive/Anaconda3-2020.11-Linux-x86_64.sh
  • 安装Anaconda3

bash $downloaddir/Anaconda3-2020.11-Linux-x86_64.sh
# $downloaddir 为你的下载路径

  长按enter,直到出现 [yes|no],输入yes

  自定义安装路径,我喜欢放在/opt下:[/root/anaconda3] >>> /opt/anaconda3

  Do you wish the installer to initialize Anaconda3? 输入yes

  source一下使得 initialize生效

source ~/.bashrc
  • 配置所有用户可用

   查看.bashrc文件,将如下所示的conda配置部分复制到/etc/bash.bashrc末尾 (ubuntu)或者 /etc/bashrc 末尾 (centos)。重启一下终端,那样所有用户就可以使用anaconda了。

vim ~/.bashrc

在这里插入图片描述

  • 去掉恼人的base

conda deactivate
conda config --set auto_activate_base false
  • 创建虚拟环境

   从FSL6.0.2之后,FSLeyes就独立于FSL了。如果你有观察过FSL文件中的FSLeyes,你会发现它装在一个miniconda创建的虚拟环境fslpython里。它要用到wxpythonnumpy等我们非常熟悉的包。由于笔者用anaconda比较多,所以就用的它。
  root用户下创建虚拟环境,便于所有用户都可以用,其存于$AnacondaPATH/envs/目录下。

conda create -n fslpython python=3.8

copyright ©意疏:https://blog.csdn.net/sinat_35907936/article/details/112969857


FSL与FSLeyes(所有操作均在root下)


  • 下载FSL

  下载fsl6.0.3或者fsl6.0.4,或者是前者大小的两倍。

  • 安装FSL

  解压下载文件到你想要的安装目录,笔者依旧放在/opt下.

cp $downloaddir/fsl-6.0.3-centos6_64.tar.gz /opt
cd /opt
tar -xzvf /opt/fsl-6.0.3-centos6_64.tar.gz
# $downloaddir 为你的下载路径

  添加环境变量到/etc/bash.bashrc末尾 (ubuntu)或者 /etc/bashrc 末尾 (centos),便于所有用户都可以使用。

  环境变量:

export FSLDIR=/opt/fsl
export PATH=$PATH:$FSLDIR/bin
source $FSLDIR/etc/fslconf/fsl.sh

  重启终端,然后再键入fsl就可以使用fsl了,但是你会发现点击FSLeyes的时候,会出现/fsl/bin/fsleyes: not found的错,因为用上述方法下载的包,不包含fsleyes及其依赖的环境。 现在我们手动安装并修复它。

在这里插入图片描述

  • 安装FSLeyes

  激活上面创建的虚拟环境

conda activate fslpython

  通过conda-forge安装FSLeyes

conda install -c conda-forge fsleyes

  安装完成之后,进入fsleyes所在目录,我的在 opt/anaconda3/envs/fslpython/bin/下,然后./fsleyes运行fsleyes,如果弹出如下界面,说明FSLeyes安装成功了。但GUI上还是不能用。

在这里插入图片描述


修复FSL中的FSLeyes等(所有操作均在root下)


  删除fsl的bin文件的fsleyes链接

rm /opt/fsl/bin/fsleyes

  建立新的软连接

ln -s /opt/anaconda3/envs/fslpython/bin/fsleyes /opt/fsl/bin/fsleyes

  查看软连接

ll /opt/fsl/bin/fsleyes
# lrwxrwxrwx 1 root root 41 1月  21 00:44 /opt/fsl/bin/fsleyes -> /opt/anaconda3/envs/fslpython/bin/fsleyes*

  再一次在终端键入fsl,然后再点击FSLeyes图标,FSLeyes就奇迹般的出现啦。

在这里插入图片描述
  但上述操作之后,还有些只在fslpython虚拟环境中的FSL命令可能也找不到,如imcpimmvdcm2niix等,此时可以直接添加如下环境变量到/etc/bash.bashrc末尾 (ubuntu)或者 /etc/bashrc 末尾 (centos),这样虚拟环境fslpython/bin下所有的命令都可以直接使用,而无需逐一建立软连接。(这种方法废弃了,直接改用下面批量建立软连接的方式

export PATH=$PATH:/opt/anaconda3/envs/fslpython/bin

  注意:虚拟环境里面也有python,如果系统中已经安装过python,要注意区分使用。


填坑——批量建立软连接


  用把fslpython的bin文件直接添加环境变量的粗暴方式,可以解决imcpimmvdcm2niix等命令的直接使用问题,但是在用GUI的时候就会遇到错误,比如/opt/fsl/bin/imcp not found、/opt/fsl/bin/immv not found等,这是因为GUI默认使用这些命令时,前面是加了fsl的bin路径的。解决方法就是用下面的脚本,粗暴的把fslpython/bin下的所有命令都软连接到/fsl/bin下。

touch softlink.sh
#! /bin/bash

for link in $(ls $1)
do
        echo $link
        ln -s $1/$link $2/$link
done
bash softlink.sh /opt/anaconda3/envs/fslpython/bin /opt/fsl/bin

蓝色的就是软连接
在这里插入图片描述
可以去掉与python相关的软连接,避免后面与base虚拟环境里的python冲突。如

rm *python*
rm *jupyter*
rm pip*

copyright ©意疏:https://blog.csdn.net/sinat_35907936/article/details/112969857


参考


https://blog.csdn.net/qq_41763734/article/details/104721471
https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/FSLeyes

GitHub 加速计划 / li / linux-dash
6
1
下载
A beautiful web dashboard for Linux
最近提交(Master分支:3 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐