Linux离线安装anaconda的小插曲

 

想在超算中心的Linux系统上离线安装和配置科学计算的Python环境,最简便的办法就是安装anaconda了。

 

可是运行安装命令

sh Anaconda2-5.2.0-Linux-x86_64.sh

 

报错

: command not foundux-x86_64.sh: line 9: 
': not a valid identifier_64.sh: line 11: unset: `LD_LIBRARY_PATH
'naconda2-5.2.0-Linux-x86_64.sh: line 29: syntax error near unexpected token `in
'naconda2-5.2.0-Linux-x86_64.sh: line 29: `            case "$RUNNING_SHELL" in

 

原因

在linux里查看安装文件,

vi -b Anaconda2-5.2.0-Linux-x86_64.sh

发现文本每行后面都多了个^M,这是windows系统里的换行符号。

 

关于这个换行符是个什么东东,这篇文章提到过

 

long long ago….. 老式的电传打字机使用两个字符来另起新行。一个字符把滑动架移回首位 (称为回车,<CR>,ASCII码为0D),另一个字符把纸上移一行 (称为换行,<LF> ,ASCII码为0A)。当计算机问世以后,存储器曾经非常昂贵。有些人就认定没必要用两个字符来表示行尾。UNIX 开发者决定他们可以用 一个字符来表示行尾,Linux沿袭Unix,也是<LF>。Apple 开发者规定了用<CR>。开发 MS-DOS以及Windows 的那些家伙则决定沿用老式的<CR><LF>

 

可是我明明下载的是linux版本的安装文件啊!

再打开下载到Mac里的安装文件来看,也并没有啊!

马萨卡?!难道是从本地上传到超算过程中出现的问题?

于是放弃使用FTP软件,改用scp命令上传,果然没有了!

一个在Mac下运行的FTP软件,怎么泥煤叛变到加windows的换行符呢?

 

最开始发现linux上的安装文件多了^M符号后,我第一想法是使用vi里强大的查找替换命令来处理掉

:%s/^M//g (其中的^M实际上是按“Ctrl+v”+“Ctrl+m”)

没想到这样做了后,文件大小发生了变化,通不过相应的检查。

于是我注释掉了检查大小发现不符就退出的语句。

没想到这样对安装文件进行修改后,文件的MD5哈希值变了,依然没法安装,意思就是说anaconda不允许对安装文件进行更改。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注