Linux安装libX11-devel

时间:2018-10-17 15:30:06

标签: linux offline yum pkg-config

我试图在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位计算机,我是否必须以某种方式找到它{}?

2)"xorg-x11-proto......x86_64.rpm""yum install"之间有区别吗? Linux中还有其他安装变体吗?

3)对于脱机计算机,是否还能获得所有依赖项并立即安装所有内容?

4)为什么说pkgconfig "install"需要两次。如果我刚刚获得了{。{1}}高于1.1.92的版本,我可以只安装一次吗?

2 个答案:

答案 0 :(得分:1)

在实际回答问题之前,我将建议您看看是否可以获取软件包的最新版本。安装DVD上的软件包可能实际上已经过时,并且包含已知的漏洞和其他错误。您可以在在线环境中使用yumdownloader来将最新版本下载到单独的DVD上并将其用作安装源吗?有关更多信息,请参见https://access.redhat.com/solutions/10154

要自己回答问题:

  1. Requires: foo可以引用包foo或“功能” foopkgconfig(kbproto)是“功能”(或虚拟要求)。您可以使用yum / rpm来查看提供此功能的内容。例如,在我的Fedora框上,rpm -q --provides xorg-x11-proto-devel显示此软件包确实提供了pkgconfig(kbproto)

    对于x86_64noarch而言,没关系。 noarch包可在任何地方使用。其他软件包仅限于平台。因此x86_64仅适用于Intel / amd x86 64位计算机。安装noarch就可以了。但是,如果您只有i686软件包,那还不够。您将必须找到一个x86_64noarch软件包。

  2. 是的,yumpkg-config之间有很大的不同。他们完全做到了不同的事情。一种是用于安装RPM软件包的系统工具。另一个是开发人员使用正确的标头和编译器标志的工具。如果您要查找/安装RPM,请不要直接使用pkg-config

  3. 您是否有权访问可以访问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。

  1. 它可能两次打印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和库版本有关。