我有一个最小的 CentOS 服务器,无法访问互联网。我们称它为服务器 A。
我的目标是构建一个 shell 脚本文件来为应用程序安装特定版本的本地 RPM 文件。假设目标应用程序是 Apache。问题是每个 RPM 都有依赖关系。
在可以访问互联网的另一台服务器上,我称之为服务器 B,我下载了包:
wget http://repo.okay.com.mx/centos/7/x86_64/release/httpd-2.4.35-5.el7.x86_64.rpm
然后将其移动到服务器 A 并尝试安装它:
rpm -i httpd-2.4.35-5.el7.x86_64.rpm
yum install 依赖截图:
它有几个要求:
rpm -qpR httpd-2.4.35-5.el7.x86_64.rpm
浏览依赖项截图:
我无法理解一些要求:
1- 是什么/etc/mime.types
?我没有这样的文件。我可以从哪里得到它?
2- 一些包被多次提及,例如
systemd-utils
systemd-utils
systemd-utils
这是什么意思?
3- 一些包有多种变化。我应该安装哪一个? libc.so
4-似乎列表是按字母顺序排序的。安装顺序是什么?
5- 该dnf repoquery
命令还提供了不同的列表。我应该关注哪一个?
dnf repoquery 截图:
6-没有更自动的方式来执行我正在寻找的东西吗?
dnf
提供更大的列表,因为它显示了所有依赖项,不仅缺少。dnf
所需的软件包并安装它们。rpm
你看到依赖包,例如apr15
,下载它,传输它,安装它,然后再次尝试安装主包。当您只看到文件名时,您可以尝试yum provides /etc/mime.types
获取包名。在 docker 内的 centos 7 上测试: