我目前正在尝试安装一个软件包(遗憾的是,由于各种原因,支持非常无用)。该软件有一个安装脚本,运行良好,但是该脚本在开始在集群节点上部署之前会检查某些工具是否存在。
该脚本使用 gcp(它看起来像一个组副本) - 我无法通过 google 或 rpmfind 找到它。有谁知道这个程序吗?
编辑(第一次尝试时标题不好,抱歉,发帖前我似乎应该多喝点咖啡):操作系统:Red Hat Enterprise Linux 5.3 我正在尝试安装的软件是“FLX 测序仪的仪器外软件”
安装脚本的相关部分如下:
cluster)
echo "INSTALLING TO A CLUSTER"
#
# Install to system RPM location
#
RPMSRC=`find ./ -name gsRunProcessor-openmpi-*.rpm`
if [ "$RPMSRC" != "" ]
then
# Copy to all nodes
gcp $RPMSRC /tmp
if [ $? -ne 0 ]
then
echo "Call to 'gcp' failed"
return 1
fi
# Install to all nodes
gsh rpm -Uvh --force --nocontexts /tmp/$RPMSRC 2>/dev/null
status=$?
if [ $status -ne 0 ]
then
echo "Call to gsh failed"
return 1
fi
# Remove file from every node
gsh rm -f /tmp/$RPMSRC
# Install to head node
rpm -Uvh --force --nocontexts $RPMSRC 2>/dev/null
status=$?
if [ $status -ne 0 ]
then
echo "Call to 'rpm' command for $RPMSRC failed"
return 1
fi
else
echo "Could not find gsRunProcessor-openmpi rpm file"
return 1
fi
rpm -Uvh --force --nocontexts gsRunProcessorManager-*.rpm 2>/dev/null
status=$?
if [ $status -ne 0 ]
then
echo "Call to 'rpm' command for gsRunProcessorManager failed"
return 1
fi
rpm -Uvh --force --nocontexts gsReporter-*.rpm 2>/dev/null
status=$?
if [ $status -ne 0 ]
then
echo "Call to 'rpm' command for gsReporter failed"
return 1
fi
rpm -Uvh --force --nocontexts gsSupportTool-*.rpm 2>/dev/null
status=$?
if [ $status -ne 0 ]
then
echo "Call to 'rpm' command for gsSupportTool failed"
return 1
fi
;;
答案1
该代码片段来自网格FTP.gcp
只需可用且位于您的 PATH 中,但这些特定于您的站点。大多数集群/网格系统都有一个用于网格实用程序的特殊位置。请联系您的集群管理员或您当地的 GridFTP 管理员了解详细信息。
答案2
gcp
是 的 GNU 版本cp
。您可以使用以下方式找到它:
where gcp
您应该能够使用,除非您的脚本使用了中没有的cp
少数功能之一。我不知道有任何这样的功能......gcp
cp
针对你的情况特别说明:
RPMSRC=`find ./ -name gsRunProcessor-openmpi-*.rpm`
if [ "$RPMSRC" != "" ]
then
# Copy to all nodes
gcp $RPMSRC /tmp
$RPMSRC
您正在使用命令设置变量。然后您将复制找到并存储的find
所有文件,使用:find
$RPMSRC
/tmp
gcp $RPMSRC /tmp
rpm
调用的命令使用gsh
这些文件:
gsh rpm -Uvh --force --nocontexts /tmp/$RPMSRC 2>/dev/null
^^^^^^^^^^^^
当处理完毕后,它会将其删除:
# Remove file from every node
gsh rm -f /tmp/$RPMSRC
所有节点的实际安装都是通过rpm
命令完成的。
答案3
您可以在网上找到几个不同的软件包,它们都叫 gsh。例如,有些只是 ssh 的包装器,用于在多个主机上执行命令。您的脚本可能使用了类似的东西(脚本中的注释看起来像是这样);如果是这样,gsh 和 gcp 应该与您的软件一起打包。所以我的猜测是,您在调用脚本时缺少 PATH 中的某些内容,或者从错误的位置调用,或类似情况。- 仅凭脚本的一部分并且不了解您要安装的软件,很难判断。
答案4
“gcp 是 cp 的 GNU 版本”
不它不是。
gcp 中的 g 代表戈菲,全名是Goffi 的复印机。
gcp 的当前英文主页位于Gcp/en源代码可以从Goffi FTP 服务器
复制非常大的文件时,gcp 的一个有用功能是“传输进度指示”。