Linux安装libX11-devel

Linux安装libX11-devel,linux,offline,yum,pkg-config,Linux,Offline,Yum,Pkg Config,我正试图在Redhat7中构建QT4(使用升级的gcc编译器从Redhat5移植到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-dev

我正试图在Redhat7中构建QT4(使用升级的gcc编译器从Redhat5移植到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安装”
。在我的dvd中,我只有
“xorg-x11-proto-devel-7.7.13.el7.noarch.rpm”
。既然它是一台64位机器,我是否必须找到
“xorg-x11-proto……x86_64.rpm”

2)
“yum install”
pkgconfig“install”
之间有区别吗?Linux中还有其他安装变体吗

3) 对于离线机器,我是否可以获得所有依赖项并立即安装所有内容


4) 为什么说“xcb”
需要两次。如果我刚刚获得了1.1.92以上的
xcb…rpm
版本,我可以只安装一次吗?

在实际回答问题之前,我建议您看看是否可以获得最新版本的软件包。安装DVD上的软件包可能已经过时,并且包含已知的漏洞和其他bug。您能否在联机环境中使用
yumdownloader
,将最新版本下载到单独的DVD上,并将其用作安装源?有关更多信息,请参阅

要回答问题本身:

  • 要求:foo
    可以指包
    foo
    或“功能”
    foo
    pkgconfig(kbproto)
    是一项“功能”(或虚拟需求)。您可以使用
    yum
    /
    rpm
    查看是什么提供了此功能。例如,在我的Fedora盒上,
    rpm-q--provides xorg-x11-proto-devel
    表明这个包确实提供了
    pkgconfig(kbproto)

    至于
    x86\u 64
    vs
    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包 cd rhel7软件包 yum提供“*/X11/Xlib.h”#记下提供此文件的包。我是Fedora上的libX11 devel yumdownloader—解析libX11-devel#下载libX11-devel和系统上未安装的所有依赖项 然后在没有internet访问的机器上复制/安装RPM

  • 它可能会打印出
    xcb
    两次,因为这是两种不同的需求。如果您安装xcb的任何verison,则将满足未版本化要求。只有安装1.1.92,才能满足版本要求。如果安装1.1.92,它将满足这两个要求

  • 在实际回答这些问题之前,我建议您看看是否可以获得最新版本的软件包。安装DVD上的软件包可能已经过时,并且包含已知的漏洞和其他bug。您能否在联机环境中使用
    yumdownloader
    ,将最新版本下载到单独的DVD上,并将其用作安装源?有关更多信息,请参阅

    要回答问题本身:

  • 要求:foo
    可以指包
    foo
    或“功能”
    foo
    pkgconfig(kbproto)
    是一项“功能”(或虚拟需求)。您可以使用
    yum
    /
    rpm
    查看是什么提供了此功能。例如,在我的Fedora盒上,
    rpm-q--provides xorg-x11-proto-devel
    表明这个包确实提供了
    pkgconfig(kbproto)

    至于
    x86\u 64
    vs
    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包 cd rhel7软件包 yum提供“*/X11/Xlib.h”#记下提供此文件的包。我是Fedora上的libX11 devel 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
    $ 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.