如何在 /bin/sh 中强制执行特定版本的命令
How to force specific version of command in /bin/sh
运行wine-1.8.2/configure时报flex版本太旧:
configure: error: Your flex version is too old. Please install flex
version 2.5.33 or newer
wine-1.8.2/配置:
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for Wine 1.8.2.
...
我在本地安装了flex-2.6.0
并在.cshrc
中设置了别名:
alias flex /user/user_name/TOOLS/flex-2.6.0/bin/flex
但是配置还是报同样的错误信息。
我把FLEX=$ac_cv_prog_FLEX
改成FLEX=/user/user_name/TOOLS/flex-2.6.0/bin/flex
后,就不再报flex老版本警告了。
我想知道如何在脚本中强制指定。谢谢!
您应该将安装新版本 flex
命令的目录添加到 PATH
环境变量中。确保此目录出现在包含旧版本的目录之前,以便这是找到的第一个版本。
在 .cshrc
中设置别名仅适用于您的交互式 C shell。它不会对用于解释 configure
脚本的非交互式 Bourne-like shell (/bin/sh
) 产生任何影响。我不使用 C shell 但你可以在你的 .login
启动文件中包含如下内容:
setenv PATH "/user/user_name/TOOLS/flex-2.6.0/bin/flex:$PATH"
如果您的 OS 使用 Bourne 风格 .profile
来自定义您的环境,您需要使用类似 Bourne 的语法更新该文件 shell:
export PATH="/user/user_name/TOOLS/flex-2.6.0/bin/flex:$PATH"
运行wine-1.8.2/configure时报flex版本太旧:
configure: error: Your flex version is too old. Please install flex version 2.5.33 or newer
wine-1.8.2/配置:
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for Wine 1.8.2.
...
我在本地安装了flex-2.6.0
并在.cshrc
中设置了别名:
alias flex /user/user_name/TOOLS/flex-2.6.0/bin/flex
但是配置还是报同样的错误信息。
我把FLEX=$ac_cv_prog_FLEX
改成FLEX=/user/user_name/TOOLS/flex-2.6.0/bin/flex
后,就不再报flex老版本警告了。
我想知道如何在脚本中强制指定。谢谢!
您应该将安装新版本 flex
命令的目录添加到 PATH
环境变量中。确保此目录出现在包含旧版本的目录之前,以便这是找到的第一个版本。
在 .cshrc
中设置别名仅适用于您的交互式 C shell。它不会对用于解释 configure
脚本的非交互式 Bourne-like shell (/bin/sh
) 产生任何影响。我不使用 C shell 但你可以在你的 .login
启动文件中包含如下内容:
setenv PATH "/user/user_name/TOOLS/flex-2.6.0/bin/flex:$PATH"
如果您的 OS 使用 Bourne 风格 .profile
来自定义您的环境,您需要使用类似 Bourne 的语法更新该文件 shell:
export PATH="/user/user_name/TOOLS/flex-2.6.0/bin/flex:$PATH"