我试图在RedHat 7中构建QT4(使用升级的gcc编译器从Redhat 5移植到7),但出现错误,提示找不到X11/Xlib.h
。无论如何,在进行了一些研究之后,大多数人都说要安装libX11-devel
以获得那些x11库。由于我使用的是脱机计算机,因此无法执行“ apt-get”类型的命令,而必须手动安装RPM。因此,我去了RH-7安装DVD,得到了"libX11-devel-1.6.3-3.el7.x86-64"
(我有64位操作系统),并尝试使用"yum install libX11-devel-1.6.3-3.el7.x86_64"
进行安装,但出现了依赖项错误。就是说
...Requires: pkgconfig(kbproto)
...Required: pkgconfig(xcb)
...Requires: pkgconfig(xproto)
...Requires: pkgconfig(xcb) >= 1.1.92
所以,这是我的问题。
1)说"pkgconfig(kbproto)"
时,是说找到"kbproto....RPM"
并执行"yum install"
。在我的DVD中,我只有"xorg-x11-proto-devel-7.7.13.el7.noarch.rpm"
。由于它是64位计算机,我是否必须以某种方式找到它{1>}?
2)"xorg-x11-proto......x86_64.rpm"
和"yum install"
之间有区别吗? Linux中还有其他安装变体吗?
3)对于脱机计算机,是否还能获得所有依赖项并立即安装所有内容?
4)为什么说pkgconfig "install"
需要两次。如果我刚刚获得了{。{1}}高于1.1.92的版本,我可以只安装一次吗?
答案 0 :(得分:1)
在实际回答问题之前,我将建议您看看是否可以获取软件包的最新版本。安装DVD上的软件包可能实际上已经过时,并且包含已知的漏洞和其他错误。您可以在在线环境中使用yumdownloader
来将最新版本下载到单独的DVD上并将其用作安装源吗?有关更多信息,请参见https://access.redhat.com/solutions/10154。
要自己回答问题:
Requires: foo
可以引用包foo
或“功能” foo
。 pkgconfig(kbproto)
是“功能”(或虚拟要求)。您可以使用yum
/ rpm
来查看提供此功能的内容。例如,在我的Fedora框上,rpm -q --provides xorg-x11-proto-devel
显示此软件包确实提供了pkgconfig(kbproto)
。
对于x86_64
与noarch
而言,没关系。 noarch
包可在任何地方使用。其他软件包仅限于平台。因此x86_64
仅适用于Intel / amd x86 64位计算机。安装noarch
就可以了。但是,如果您只有i686
软件包,那还不够。您将必须找到一个x86_64
或noarch
软件包。
是的,yum
和pkg-config
之间有很大的不同。他们完全做到了不同的事情。一种是用于安装RPM软件包的系统工具。另一个是开发人员使用正确的标头和编译器标志的工具。如果您要查找/安装RPM,请不要直接使用pkg-config
。
您是否有权访问可以访问RHEL 7 yum存储库的联机计算机?在那台机器上,执行以下操作:
mkdir rhel7-packages cd rhel7-packages yum provides '*/X11/Xlib.h' # make a note of the package that provides this file. it's libX11-devel on Fedora here yumdownloader --resolve libX11-devel # download libX11-devel and all dependencies not installed on the system
然后在没有Internet访问的情况下在计算机上复制/安装RPM。
xcb
,因为这是两个不同的要求。如果安装任何版本的xcb,将满足未版本化的要求。仅当您安装1.1.92时,版本要求才能得到满足。如果安装1.1.92,则可以满足这两个要求。答案 1 :(得分:1)
1。
您必须解决对构建软件包的系统的依赖性。这意味着您需要安装那些依赖项,包括libX11-devel
。为此,请手动将RPM从EL7存储库下载到本地磁盘,然后运行以下命令:
$ mkdir -p /tmp/libX11_dep_rpms && cd /tmp/libX11_dep_rpms
# Download all dependencies from here. All your packages should be available here:
# http://mirror.centos.org/centos-7/7/os/x86_64/Packages/
# Then install
$ yum localinstall *.rpm
# After this you should be able to build your qt4 package, provided all dependencies are resolved. Otherwise, repeat the procedure for all dependencies
# If you can't download packages, then you need to create a FULL DVD ISO that will contain all packages.
2。
pkgconfig
确保需求来自提供特定版本库的特定内部版本。 Here是一些细节。
3。 从EL7获取Everything ISO。
4。
这与pkgconfig
和库版本有关。