高性能计算

折腾intel集群工具包-终

2008年11月12日 阅读(234)

一..sh脚本-bash与dash
对于安装过程中出现的问题,尤其是install.sh脚本出现的那些错误,经过查看资料,终于找到了根本原因
以下三篇文章,都又提到
http://blog.chinaunix.net/u2/77682/showart_1153287.html
http://blog.chinaunix.net/u1/34474/showart_1388072.html

在ubuntu下使用crosstool制作交叉编译工具

根本原因是,在ubuntu6.10版以后,系统将/usr/sh指向了dash,而intel提供的那个文件实际上是bash,

在网上搜索了大量资料后发现原来是ubuntu这家伙搞的鬼

In Ubuntu 6.10, the default system shell, /bin/sh, was changed to dash (the Debian Almquist Shell); previously it had been bash (the GNU Bourne-Again Shell). The same change will affect users of Ubuntu 6.06 LTS upgrading directly to Ubuntu 8.04 LTS. This document explains this change and what you should do if you encounter problems.

The default login shell remains bash.

(From UBUNTU WIKI https://wiki.ubuntu.com/DashAsBinSh)

如果把文件里的#!/bin/sh改成#!/bin/bash,这样系统可以知道去使用/bin/bash执行该文件。

但是这样的修改依旧解决不了根本问题,就是我在
折腾intel-续里提到的,安装文件中间过程产生的install.sh仍然需要修改,但是这个过程是我们不可控的,这样就导致安装失败。

所以我们需要考虑,把/bin/sh改成、/bin/bash,经查找,发现/bin/sh只是个link,这样我们只要修改这个link就好了

运行

ls -la /bin/sh

命令我的ubuntu8.04显示:

duanple@duanple-desktop:/bin$ ls -la /bin/sh

lrwxrwxrwx 1 root root 4 2008-11-12 11:06 /bin/sh -> dash

看到/bin/sh其实是一个指向dash的软链接,则运行以下命令,将/bin/sh链接到bash。

修改/bin/sh的链接指向

sudo mv /bin/sh /bin/sh.old
sudo ln -sf bash /bin/sh

这样就完成了sh的替换。

至于ubuntu为什么用dash替换bash原因如下:(zz自第一个链接)

#######################################################################################

GNU/Linux操作系统中的/bin/sh是bash(Bourne-AgainShell)的符号链接,但鉴于bash过于复杂,有人把ash从 NetBSD移植到Linux并更名为dash(DebianAlmquistShell),并建议将/bin/sh指向它,以获得更快的脚本执行速度。 Ubuntu号称自从他们在6.10版里这样做了以后,系统启动速度有了明显的提升。Debian计划在下一个发行版(代号lenny)中也将dash作为默认的/bin/sh。

按照惯例(以及很多写脚本的规范),标记为“#!/bin/sh”的脚本不应使用任何POSIX没有规定的特性(使用bash特性的脚本要使用“#!/bin/bash”),所以在理论上,这样应该没有任何副作用。但是现实中,Linux下的很多(不规范的)脚本有所谓bashism,却在文件头标记为“#!/bin/sh”。有人把脚本失败归咎于Ubuntu而不是自己的脚本,这是不公平的。

刚才在Debian(testing)下尝试用dash作为/bin/sh,并重启了一下系统,好像快了那么一点点(心理作用?)不过我想它节约的那点时间也许比挂载我的两个reiserfs分区用的时间还要少……

遇到的问题:自己的两个脚本挂了,把“#!/bin/sh”改为“#!/bin/bash”;自己的一个带bashism的Makefile挂了,加上SHELL=/bin/bash”。

在Debian下,先安装软件包dash,然后dpkg-reconfiguredash,回答Yes即可。

在Ubuntu下这已经是默认,如果因为某些原因需要改回到bash,也是用dpkg-reconfiguredash。

#######################################################################################

二.问题仍然存在:

虽然把bash链接好了,但是当再次执行./install.sh时又出现了因为rpm产生的问题,
intel官网上说是rpm版本的问题,需要更新到新版本。不过我的版本已经是最新的了,所以暂时选择了这个安装命令

./install.sh -nonroot -nonrpm

这才大体搞定,但是安装过程中提示我filesystem has no enough free space.

吓我一跳!!!。。。

nnd上网找下,把vmware的硬盘配置改大了点,
扩张虚拟机中LINUX的硬盘大小

1.大体就是需要找到vmware安装目录下,用这个工具vmware-vdiskmanager.exe

vmware-vdiskmanager.exe -x 新的大小Gb vmdk文件路径

ps 如果系统存在还原点 需要全部删除才能调整

另在cmd输入路径是 如果目录带有空格 则在整个路径上加上""
vmware-vdiskmanager.exe -x 5Gb "c:Windows XP Professional.vmdk"

2.需要修改分区设置

扩展好以后只不过是第一步,接下来是调整LINUX分区(因为新的空间并未被分出来)
调整的方法可以用fdisk, parted等工具
推荐使用gparted,这是parted的一个GUI前端
但是由于当前硬盘挂载在上面是不可能扩展的,所以要找liveCD启动用liveCD上的gparted完成扩张

You Might Also Like