我在旧的 Red Hat Enterprise Linux AS 4 版系统上安装了 Mathematica 9。安装后,我尝试启动 Mathematica,但出现以下消息:
/home/wcbao/M/Wolfram/Mathematica/9.0/SystemFiles/FrontEnd/Binaries/Linux-x86-64/Mathematica:/lib64/tls/libc.so.6:找不到版本`GLIBC_2.4'(需要/家/wcbao/M/Wolfram/Mathematica/9.0/SystemFiles/Libraries/Linux-x86-64/libML64i3.so)
/home/wcbao/M/Wolfram/Mathematica/9.0/SystemFiles/FrontEnd/Binaries/Linux-x86-64/Mathematica:/lib64/tls/libc.so.6:找不到版本`GLIBC_2.4'(需要/家/wcbao/M/Wolfram/Mathematica/9.0/SystemFiles/Libraries/Linux-x86-64/libQtCore.so.4)
我不想更新系统 glibc,因为它有风险,而且管理员不允许我这样做。
有人建议可以在其他地方安装新版本的 glibc,然后将程序运行为
LD_LIBRARY_PATH=/lib/new your_application
Run Code Online (Sandbox Code Playgroud)
这不会影响系统。
所以我在这里问这个方法是否真的有效。如果可行,我想知道如何一步一步地进行(我现在缺乏Linux经验,想尽快在Linux上使用Mathematica)。
编辑:
我注意到有一个叫做“Ermine”的软件。它似乎可以将软件部署为不依赖外部环境的独立包。不幸的是,它是一个共享软件。所以我想既然“Ermine”能做到,那么老系统上一定有新软件的办法。
我看到很多地方都介绍screen了稳定运行后台作业甚至注销。他们使用
screen -dmS name
Run Code Online (Sandbox Code Playgroud)
根据screen -h,这个选项意味着
-dmS name 作为守护进程启动:分离模式下的屏幕会话。
什么是守护进程?我不明白。
我发现只要输入screen,就可以自动进入屏幕。在我运行一些命令后,按Ctrl+a d,然后注销。工作仍然运行良好。那么这个简单的方法可以吗?我真的需要-dmS让后台工作稳定吗?
让我试着做一个总结:
任何在 screen 中运行的东西都可以安全地注销(但你应该分离屏幕,而不是在你注销时退出屏幕),无论你为 screen 设置了什么选项。
-dmS只是在后台非迭代地提交作业的一个方便的选项。那是
screen -dmS nameOfScreen command
Run Code Online (Sandbox Code Playgroud) According to this post, [ is a builtin and [[ is a keyword. Since they can be regarded as command, everything after [ and [[ is regarded as command arguments and should be separated by spaces, until they meet final argument ] and ]]
But what is the type of (( ?
type ((
Run Code Online (Sandbox Code Playgroud)
will give an error:
bash: syntax error near unexpected token `('.
Run Code Online (Sandbox Code Playgroud)
I found that spaces is not relevant inside (( )).
echo $((1+1))
echo …Run Code Online (Sandbox Code Playgroud) 如果我跑
grep "!" test.txt
Run Code Online (Sandbox Code Playgroud)
它会显示错误
bash: !: 事件未找到
好吧,我知道我实际上应该使用grep '!'. 但是如何理解上面的错误呢?
我知道!是 bash 特殊字符。根据http://mywiki.wooledge.org/Quotes。
双引号:"..." 阻止某些替换,但允许其他替换。执行每个以美元符号 $ 开头的替换,以及遗留
...(反引号)命令替换。还执行反斜杠转义。不执行分词或文件名扩展。
它没有提到双引号会影响 !。有人可以解释一下 bash 或 grep 是如何解释的grep "!"吗?什么是“事件”?
我在 Linux 服务器上工作,我在不同的节点上运行不同的作业。
但是,在编译我的程序时,我没有设置它们的具体名称,所以它们都是 a.out
现在我发现其中一个正在运行a.out,可能不对,想终止。但该Top命令不显示可执行文件的路径。
怎么做?
我从这里下载 xcrysden 源包http://www.xcrysden.org/download/xcrysden-1.5.60.tar.gz
然后我使用
tar zxvf xcrysden-1.5.60.tar.gz
Run Code Online (Sandbox Code Playgroud)
但是,如图tar zxvf xcrysden-1.5.60.tar.gz|grep tar:所示,我遇到了几个错误
tar: xcrysden-1.5.60/examples/XSF_Files/c2h4\:Ag001.xsf: Cannot open: Invalid argument
tar: xcrysden-1.5.60/otherLICENSES/TclTk\:LICENSE: Cannot open: Invalid argument
tar: xcrysden-1.5.60/otherLICENSES/Togl\:LICENSE: Cannot open: Invalid argument
tar: xcrysden-1.5.60/otherLICENSES/Mesa\:LICENSE: Cannot open: Invalid argument
tar: xcrysden-1.5.60/otherLICENSES/Meschach\:LICENSE: Cannot open: Invalid argument
tar: xcrysden-1.5.60/otherLICENSES/LGPL\:LICENSE: Cannot open: Invalid argument
tar: xcrysden-1.5.60/otherLICENSES/GL2PS\:LICENSE: Cannot open: Invalid argument
tar: xcrysden-1.5.60/otherLICENSES/FFTW3\:LICENCE: Cannot open: Invalid argument
tar: xcrysden-1.5.60/otherLICENSES/BWidget\:LICENSE: Cannot open: Invalid argument
tar: Exiting with failure status due to previous errors
Run Code Online (Sandbox Code Playgroud)
这些消息是什么意思?为什么提取没有完成?
我正在使用 LSF 作业系统开发 HPC。
screen在登录节点和大多数我可以通过 ssh 连接到它们的计算节点上工作正常。which命令显示screen位于/usr/bin. 但是,我发现了一些节点上,打坏只是找不到屏幕,神秘,我无法找到screen下/usr/bin该节点上。但我必须使用它。
所以我想也许我可以安装一个本地版本的screen,所以我下载了这个screen-4.5.1.tar.gz包。但是,./configure因错误而终止
配置:检查tgetent...配置:检查libcurses...配置:检查libtermcap...配置:检查libtermlib...配置:检查libncursesw...配置:检查libtinfow...配置:检查libncurses...配置:检查 libtinfo... 配置:错误:!!!没有 tgetent - 没有屏幕
谷歌显示,我们需要或者sudo apt-get install libncurses-dev或sudo apt-get install ncurses-dev。但是,我不是管理员,而且我在 HPC 上没有互联网连接。所以我认为手动安装ncurses应该没问题。我下载了ncurses-6.0.tar.gz。配置、制作、安装,最后我在我的自定义文件夹中得到了 4 个文件夹myInstall_ncurses:bin、lib、include、shared。
但是我screen现在应该如何安装?我试过这个
./configure --bindir="/home/myInstall_ncurses/bin" --includedir="/home/myInstall_ncurses/include" --libdir="/home/myInstall_ncurses/lib"
Run Code Online (Sandbox Code Playgroud)
但错误是一样的。怎么了?
根据gnu 文档,
反斜杠仅在后跟以下字符之一时保留其特殊含义:'$'、'`'、'"'、'\' 或换行符。在双引号内,后跟这些字符之一的反斜杠将被删除.
我试过
p="a\$b";echo $p # a$b
p="a\`b";echo $p # a`b
p="a\"b";echo $p # a"b
p="a\\b";echo $p # a\b
Run Code Online (Sandbox Code Playgroud)
一切正常。但是换行??
p="a\newlineb";echo $p # a\newlineb
Run Code Online (Sandbox Code Playgroud)
文档中的换行符是什么意思?
我 cd 到我的主目录并输入
ls *bash*
Run Code Online (Sandbox Code Playgroud)
期望它会显示包含“bash”的文件列表。然而事实并非如此。
同时,键入
ls .bash*
Run Code Online (Sandbox Code Playgroud)
作品。
根据文档,*代表任何字符,对吗?但.在这种情况下,它似乎并不代表。怎么了?
在 bash 中,如果我进行分配
a=
Run Code Online (Sandbox Code Playgroud)
a现在是什么?我确定 a 不是''字符串,而不是0.
我发现只有下面的测试是真的
if [ $a = ];then echo 'good';fi
Run Code Online (Sandbox Code Playgroud)