Linux 安装 libX11-devel
Linux Installation libX11-devel
我正在尝试在 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 位 OS)并尝试使用 "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"
。我是否必须以某种方式找到 "xorg-x11-proto......x86_64.rpm"
因为它是 64 位机器?
2) "yum install"
和pkgconfig "install"
有区别吗? Linux 中是否还有其他安装变体?
3) 对于离线机器,有没有办法一次性获取所有依赖项并安装所有内容?
4) 为什么说 "xcb"
需要两次。如果我只得到 1.1.92 以上的 xcb...rpm
版本,我可以只安装一次吗?
在真正回答问题之前,我会建议您看看是否可以获得最新版本的软件包。安装 DVD 上的软件包可能确实已过时并且包含已知的漏洞和其他错误。您可以使用 yumdownloader
- 在在线环境中 - 将最新版本下载到单独的 DVD 上并将其用作安装源吗?有关详细信息,请参阅 https://access.redhat.com/solutions/10154。
自己回答问题:
Requires: foo
可以引用包 foo
或“功能”foo
。 pkgconfig(kbproto)
是一个“功能”(或虚拟要求)。您可以使用 yum
/rpm
来查看提供此功能的内容。例如,在我的 Fedora box 上,rpm -q --provides xorg-x11-proto-devel
显示该软件包确实提供了 pkgconfig(kbproto)
.
至于x86_64
vs noarch
,无所谓。 noarch
软件包无处不在。其他包仅限于平台。所以 x86_64
只适用于 intel/amd x86 64 位机器。安装 noarch
应该没问题。但是,如果您只有一个 i686
包,那是不够的。您必须找到 x86_64
或 noarch
包。
是的,yum
和pkg-config
有很大的不同。他们做完全不同的事情。一个是安装RPM包的系统工具。另一个是供开发人员使用正确的 headers 和编译器标志的工具。如果您担心 finding/installing 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
然后 copy/install 没有互联网接入的机器上的 RPM。
- 它可能会打印出
xcb
两次,因为这是两个不同的要求。如果您安装 xcb 的任何版本,将满足未版本化的要求。只有安装 1.1.92 才能满足版本要求。如果您安装1.1.92,它将满足这两个要求。
1。
您必须解决对正在构建包的系统的依赖性。这意味着您需要安装这些依赖项,包括 libX11-devel
。为此,请将 RPM 从 EL7 存储库手动下载到本地磁盘,然后 运行 this:
$ 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
和库版本有关。
我正在尝试在 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 位 OS)并尝试使用 "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"
。我是否必须以某种方式找到 "xorg-x11-proto......x86_64.rpm"
因为它是 64 位机器?
2) "yum install"
和pkgconfig "install"
有区别吗? Linux 中是否还有其他安装变体?
3) 对于离线机器,有没有办法一次性获取所有依赖项并安装所有内容?
4) 为什么说 "xcb"
需要两次。如果我只得到 1.1.92 以上的 xcb...rpm
版本,我可以只安装一次吗?
在真正回答问题之前,我会建议您看看是否可以获得最新版本的软件包。安装 DVD 上的软件包可能确实已过时并且包含已知的漏洞和其他错误。您可以使用 yumdownloader
- 在在线环境中 - 将最新版本下载到单独的 DVD 上并将其用作安装源吗?有关详细信息,请参阅 https://access.redhat.com/solutions/10154。
自己回答问题:
Requires: foo
可以引用包foo
或“功能”foo
。pkgconfig(kbproto)
是一个“功能”(或虚拟要求)。您可以使用yum
/rpm
来查看提供此功能的内容。例如,在我的 Fedora box 上,rpm -q --provides xorg-x11-proto-devel
显示该软件包确实提供了pkgconfig(kbproto)
.至于
x86_64
vsnoarch
,无所谓。noarch
软件包无处不在。其他包仅限于平台。所以x86_64
只适用于 intel/amd x86 64 位机器。安装noarch
应该没问题。但是,如果您只有一个i686
包,那是不够的。您必须找到x86_64
或noarch
包。是的,
yum
和pkg-config
有很大的不同。他们做完全不同的事情。一个是安装RPM包的系统工具。另一个是供开发人员使用正确的 headers 和编译器标志的工具。如果您担心 finding/installing 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
然后 copy/install 没有互联网接入的机器上的 RPM。
- 它可能会打印出
xcb
两次,因为这是两个不同的要求。如果您安装 xcb 的任何版本,将满足未版本化的要求。只有安装 1.1.92 才能满足版本要求。如果您安装1.1.92,它将满足这两个要求。
1。
您必须解决对正在构建包的系统的依赖性。这意味着您需要安装这些依赖项,包括 libX11-devel
。为此,请将 RPM 从 EL7 存储库手动下载到本地磁盘,然后 运行 this:
$ 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
和库版本有关。