手动下载和安装这些文件时如何管理依赖项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 的建议,我重新尝试搜索指定centos
为system
和x86_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)创建一个目录~/centosrpm
,cd
进入其中,并下载所需软件包的所有106个依赖rpm:
yumdownloader --rootinstall=$PWD --disablerepo=* --enablerepo=mycentos --resolve wpa_supplicant
将这些 rpm 复制到目标并通过一个命令安装它们:
rpm -Uvh *.rpm
您已经安装了其中的大部分。
如果您没有,请将上述子目录中的所有 rpmrpm
下载(例如使用)到目录中,将它们复制到目标上,然后使用of在目标上重新开始。wget
Packages
baseurl
/tmp/p
my.repo
baseurl=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 + 直接依赖项。