我有代码来设置依赖于apt-get
.它有很多包,如我们的项目 wiki 上记录的那样,例如:开发环境和红宝石依赖。
然而,我们的生产服务器运行的是 RHEL 5.8,系统管理员要求我使用与生产服务器类似的 CentOS 开发环境(以便部署更容易)。是否有一种简单(自动)的方法可以在 EPEL 存储库中查找等效的包名称?他们不愿意使用非标准存储库。
我必须独立查找每一项吗?我已经开始了,但这似乎并不简单。
不确定它是否有帮助,但这是我们使用的存储库的范围:
git gfortran openmpi-bin libhdf5-openmpi-dev
r-base-core default-jre libdbd-mysql libmysqlclient-dev mysql-server
mysql-client jags r-cran-rjags r-cran-xml r-cran-hdf5 r-cran-mass r-cran-rmysql
liblapack-dev libnetcdf-dev netcdf-bin texlive-latex-base texlive-latex-extra
texlive-fonts-recommended bc libcurl4-openssl-dev texinfo curl apache2 libapache2-mod-
php5 php5 php5-mysql libgdal1-dev libproj-dev ruby1.8 ruby1.8-dev rubygems1.8
librmagick-ruby1.8 libmysql-ruby1.8 libapache2-mod-passenger imagemagick
libmagickwand-dev libmagic-dev libxslt1-dev libmysqlclient-dev libnetcdf-dev libsqlite3-dev
答案1
是的,您需要手动执行此操作。另请注意,某些软件包在 Debian/Ubuntu 与 CentOS/RHEL/Fedora 中具有不同的名称,因此比较它们将很棘手。
rpm 和 apt 命令
这些站点包含漂亮的表格,显示特定的包管理任务以及如何在 CentOS/RHEL/Fedora 和 Debian/Ubuntu 上使用相应的命令执行这些任务。
当尝试比较不同系统上安装的软件包时,这些将很有帮助。
用于比较和索引的 RPM 工具
尽管这些工具是特定于 RPM 的,但它们可能有助于比较各种 RHEL/CentOS/Fedora 系统。
- rpmsnap 和 rpmsnapcmp- 一组简单的脚本,用于比较不同机器上或同一机器上不同时间的 RPM 数据库的内容。
- 转速补偿- 比较多个系统上安装的 RPM,或与之前记录的已安装软件包列表进行比较
RPM/DEB 打包工具
这些工具用于比较实际 .rpm 或 .deb 文件的不同版本。它主要面向软件包维护者,但如果您有任何自定义 .deb 或 .rpm 文件,并且需要跟踪它们之间的增量,则可能会很有用。
- 包差异- Package Changes Analyzer (pkgdiff) 是一个用于分析 Linux 软件包(RPM、DEB、TAR.GZ 等)更改的工具。该工具适用于有兴趣确保新旧版本软件包的兼容性的 Linux 维护人员。
转换工具
这些工具可以帮助将包从一种格式 (.rpm) 转换为另一种格式 (.deb),反之亦然。如果您有一个 .deb 格式的二进制包,并且您丢失了源代码或者不想花时间重建它,那么此类工具会很有帮助。这种类型的工具可能会产生不同的结果,但在紧要关头可能会有所帮助。
- 外星人- Alien 是一个在 rpm、dpkg、stampede slp 和 slackware tgz 文件格式之间进行转换的程序。如果您想使用系统上安装的版本之外的其他发行版的软件包,您可以使用 Alien 将其转换为您首选的软件包格式并安装。
答案2
是的,它的变化太大,以至于没有一种自动的方式来查找它。
查找哪个软件包提供哪个文件的最简单方法是发出 ayum whatprovides
例如,找出必须安装哪个软件包才能获取命令,setcap
您可以发出 ayum whatprovides */setcap
或yum whatprovides /usr/sbin/setcap
这将帮助您解决知道提供的文件之一的问题软件包中的名称是,但不是 RHEL 上的名称。
注意:yum 需要提供您要查找的包的存储库才能找到它。这在 CentOS 上应该不是问题,因为默认情况下有大量可用的软件包。