如何管理此手动安装的 rpm 文件的依赖关系?

如何管理此手动安装的 rpm 文件的依赖关系?

手动下载和安装这些文件时如何管理依赖项rpm?谷歌搜索文件名rpm会产生不同名称的rpm文件。我无法使用,yum install因为这是一个尚未直接连接到互联网的开发服务器。

如何管理依赖项才能WPA_supplicant在 CentOS 7 开发服务器上成功安装?

第一次尝试:

作为第一次尝试,我下载wpa_supplicant-2.4-4.2.x86_64.rpm到了 devbox从这个链接我将 rpm 文件复制到开发服务器,该服务器未连接到任何其他计算机或网络。然后在开发服务器上,我尝试了以下操作:

[root@localhost wpa_supplicant_rpm_files]# rpm -Uvh wpa_supplicant-2.4-4.2.x86_64.rpm
warning: wpa_supplicant-2.4-4.2.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 3dbdc284: NOKEY
error: Failed dependencies:
    libcrypto.so.1.0.0()(64bit) is needed by wpa_supplicant-2.4-4.2.x86_64
    libnl-3.so.200(libnl_3)(64bit) is needed by wpa_supplicant-2.4-4.2.x86_64
    libnl-genl-3.so.200(libnl_3)(64bit) is needed by wpa_supplicant-2.4-4.2.x86_64
    libssl.so.1.0.0()(64bit) is needed by wpa_supplicant-2.4-4.2.x86_64
    wpa_supplicant >= 1:1.1 is needed by (installed) NetworkManager-1:1.0.0-14.git20150121.b4ea599c.el7.x86_64

第二次尝试:

然后我用谷歌搜索了四个 rpm 文件并下载了它似乎在引导我的 rpm 文件,但我仍然遇到相同的错误。这是我尝试过的:

我用谷歌搜索libcrypto.so.1.0.0()(64bit),结果是: 这个链接,我从中下载了lib64openssl1.0.0-1.0.2d-2.mga6.x86_64.rpm.

接下来,我用谷歌搜索libnl-3.so.200(libnl_3)(64bit),这让我这个链接。,我从中下载了lib64nl-nf3_200-3.2.25-4.mga6.x86_64.rpm.

然后我谷歌了一下libnl-genl-3.so.200(libnl_3)(64bit),找到了这个链接,我从中下载了lib64nl-genl3_200-3.2.25-4.mga6.x86_64.rpm.

我用谷歌搜索libssl.so.1.0.0()(64bit),这让我找到了这个链接,我再次从中下载lib64openssl1.0.0-1.0.2d-2.mga6.x86_64.rpm(见上文)。

我将rpm文件从 devbox 复制到开发服务器上,并确认它们的存在,如下所示:

[root@localhost ~]# cd /root/wpa_supplicant_rpm_files
[root@localhost wpa_supplicant_rpm_files]# ls -al
total 2000
drwxr-xr-x. 2 root root    4096 Sep 15 14:18 .
dr-xr-x---. 3 root root    4096 Sep 15 13:25 ..
-rw-r--r--. 1 root root   18332 Sep 15 14:18 lib64nl-genl3_200-3.2.25-4.mga6.x86_64.rpm
-rw-r--r--. 1 root root   37160 Sep 15 14:15 lib64nl-nf3_200-3.2.25-4.mga6.x86_64.rpm
-rw-r--r--. 1 root root 1111752 Sep 15 14:22 lib64openssl1.0.0-1.0.2d-2.mga6.x86_64.rpm
-rw-r--r--. 1 root root  861734 Sep 15 13:28 wpa_supplicant-2.4-4.2.x86_64.rpm

最后,我尝试再次安装wpa_supplicant,但收到以下错误消息:

[root@localhost wpa_supplicant_rpm_files]# rpm -Uvh wpa_supplicant-2.4-4.2.x86_64.rpm
warning: wpa_supplicant-2.4-4.2.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 3dbdc284: NOKEY
error: Failed dependencies:
    libcrypto.so.1.0.0()(64bit) is needed by wpa_supplicant-2.4-4.2.x86_64
    libnl-3.so.200(libnl_3)(64bit) is needed by wpa_supplicant-2.4-4.2.x86_64
    libnl-genl-3.so.200(libnl_3)(64bit) is needed by wpa_supplicant-2.4-4.2.x86_64
    libssl.so.1.0.0()(64bit) is needed by wpa_supplicant-2.4-4.2.x86_64
    wpa_supplicant >= 1:1.1 is needed by (installed) NetworkManager-1:1.0.0-14.git20150121.b4ea599c.el7.x86_64

第三次尝试:

根据 @TimS. 的想法,我yum localinstall wpa_supplicant-2.4-4.2.x86_64.rpm,但终端回复了

Loaded plugins: fastestmirror.  
Cannot open: wpa_supplicant-2.4-4.2.x86_64.rpm.  
Skipping. Nothing to do.

我认为问题是我不知道要下载哪些 rpm 文件,或者从哪里下载它们。另外,我没有设置本地存储库,因此我必须知道如何使用从正确位置下载的正确 rpm 文件来设置本地存储库。

第四次尝试:

根据 @meuh 的建议,我重新尝试搜索指定centossystemx86_64架构的 rpm 文件,这导致了以下结果:

wpa_supplicant-2.0-13.el7_0.x86_64.rpm我下载了WPA_SUPPLICANT 的不同版本这个链接

我将其他三个 rpm 文件保留原样,以便包含的文件夹具有以下内容:

[root@localhost wpa_supplicant_rpm_files]# ls -al
total 1960
drwxr-xr-x. 2 root root    4096 Sep 16 16:33 .
dr-xr-x---. 3 root root    4096 Sep 15 13:25 ..
-rw-r--r--. 1 root root   18332 Sep 15 14:18 lib64nl-genl3_200-3.2.25-4.mga6.x86_64.rpm
-rw-r--r--. 1 root root   37160 Sep 15 14:15 lib64nl-nf3_200-3.2.25-4.mga6.x86_64.rpm
-rw-r--r--. 1 root root 1111752 Sep 15 14:22 lib64openssl1.0.0-1.0.2d-2.mga6.x86_64.rpm
-rw-r--r--. 1 root root  820636 Sep 16 10:05 wpa_supplicant-2.0-13.el7_0.x86_64.rpm

然后我运行rpm -Uvh *.rpm,得到以下结果:

[root@localhost wpa_supplicant_rpm_files]# rpm -Uvh *rpm
warning: lib64nl-genl3_200-3.2.25-4.mga6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID 80420f66: NOKEY
warning: wpa_supplicant-2.0-13.el7_0.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
error: Failed dependencies:
    libnl-3.so.200(libnl_3)(64bit) is needed by lib64nl-genl3_200-3.2.25-4.mga6.x86_64
    libnl-3.so.200(libnl_3)(64bit) is needed by lib64nl-nf3_200-3.2.25-4.mga6.x86_64
    libnl-route-3.so.200(libnl_3)(64bit) is needed by lib64nl-nf3_200-3.2.25-4.mga6.x86_64
    lib64openssl-engines1.0.0 >= 1.0.2d-2.mga6 is needed by lib64openssl1.0.0-1.0.2d-2.mga6.x86_64
[root@localhost wpa_supplicant_rpm_files]# 

我尝试下载libnl-3.so.200(libnl_3)(64bit),但无法获得任何结果在这个链接

我尝试下载libnl-route-3.so.200(libnl_3)(64bit)但找不到合适的下载在这个链接

我尝试下载lib64openssl-engines1.0.0但是这个链接把我带到一个下载网站,在那里并不清楚要下载哪个文件来获取 rpm。

那么我还需要做什么才能让 WPA_supplicant 在开发服务器上正常运行呢?

我打算跟随这些其他说明rpm文件成功安装到开发服务器上 后,即可建立 wifi 连接。

答案1

rpmfind很难匹配某些依赖项,但所有文件都来自同一个 CentOS 7 存储库。

如果您的系统可以访问具有该rpm命令的互联网,那么您可以从 CentOS 存储库复制所有依赖的 rpm,然后将这些 rpm 移动到您的目标并全部安装,尽管大多数已经安装。

创建一个包含以下内容的文件/etc/yum.repos.d/my.repo(以 root 身份):

[mycentos]
name=my centos
enabled=0
baseurl=http://mirror.centos.org/centos/7.1.1503/os/x86_64/

这假设该baseurl值是您已经安装的 CentOS 版本。然后(不再是root)创建一个目录~/centosrpmcd进入其中,并下载所需软件包的所有106个依赖rpm:

yumdownloader --rootinstall=$PWD  --disablerepo=* --enablerepo=mycentos --resolve wpa_supplicant

将这些 rpm 复制到目标并通过一个命令安装它们:

rpm -Uvh *.rpm

您已经安装了其中的大部分。


如果您没有,请将上述子目录中的所有 rpmrpm下载(例如使用)到目录中,将它们复制到目标上,然后使用of在目标上重新开始。wgetPackagesbaseurl/tmp/pmy.repobaseurl=file:///tmp/p

答案2

您必须使用可访问互联网的服务器上的 yum-plugin-downloadonly 软件包:

yum install yum-plugin-downloadonly
yum install --downloadonly --downloaddir=/root/wpa_supplicant/ wpa_supplicant

我不知道您是否需要先创建目录 /root/wpa_supplicant

它将下载 wpa_supplicant + 直接依赖项。

相关内容