我需要在Red Hat 6上安装netcdf-openmpi-devel。问题是我没有提供这个存储库:redhat和epel。我已经尝试过下载几个fedora rpms,但对于几乎所有这些,它都无法验证它们的密钥(执行rpm -K包)。我能够为其中一个rpms获得一个密钥,但随后它显示我没有所需的依赖项,如:
netcdf-openmpi,这是我想要安装的东西。
还有其他方法可以安装吗?
感谢您的帮助!
答案 0 :(得分:0)
最干净的方法是针对RHEL6包集构建RPM包。这将确保满足所有依赖项。为此,利用已有的软件包,您可以从[1]克隆Fedora netcdf软件包文件,然后使用rpmbuild
构建软件包(参见[2]),或者实际上更好,{{ 1}}(见[3])。
您可能会遇到rhel或epel repos中无法使用构建依赖项的情况。然后,您可以再次从Fedora git存储库中克隆相应的包文件,然后再构建该包。
所以,结束你的步骤可能看起来像这样:
mock
您需要注意的一件事是,epel中有一个$ git clone git://pkgs.fedoraproject.org/netcdf.git
$ cd netcdf
## Look at netcdf.spec, make changes if necessary
## To build using rpmbuild (probably easier than mock)
# yum install rpmdevtools
$ rpmdev-setuptree
$ mv netcdf.spec $HOME/rpmbuild/SPEC
$ mv * $HOME/rpmbuild/SOURCES
$ cd $HOME/rpmbuild/SPEC
$ rpmbuild -ba netcdf.spec
## rpmbuild might complain about unsatisfied build dependencies. Install these as necessary, some build dependencies might not be available in the repos, you will need to build then following the same procedure.
包,但是在没有openmpi支持的情况下构建(见[4])。如果您安装自制的rpm,您可能希望确保epel存储库中的可能更新不会覆盖您的自制版本(如果存储库中的包的netcfd
更新,则会发生这种情况而不是你建造的那个)。你可以:
将epoch:version-release
添加到netcdf*
中的epel repo文件中,从epel中排除exclude=netcdf*
。