想在超算中心的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不允许对安装文件进行更改。