Skip to content
Advertisement

Linux Installation libX11-devel

I am trying to build QT4 (porting from Redhat 5 to 7 with an upgraded gcc compiler) in RedHat 7 and I was getting an error saying X11/Xlib.h can’t be found. Anyways, after doing some research most people said to install libX11-devel to get those x11 libraries. Since I am using an offline machine I can’t do “apt-get” type commands and have to manually install RPMs. So, I went to my RH-7 installation DVD and got "libX11-devel-1.6.3-3.el7.x86-64" (I have 64 bit OS) and tried to install using "yum install libX11-devel-1.6.3-3.el7.x86_64" and I am getting dependencies errors. It’s saying

...Requires: pkgconfig(kbproto)
...Required: pkgconfig(xcb)
...Requires: pkgconfig(xproto)
...Requires: pkgconfig(xcb) >= 1.1.92

So, here are my questions.

1) when it says "pkgconfig(kbproto)", is it saying find the "kbproto....RPM" and do a "yum install". In my dvd I only have "xorg-x11-proto-devel-7.7.13.el7.noarch.rpm". Do I have to somehow find "xorg-x11-proto......x86_64.rpm" since it’s a 64 bit machine?

2) Is there a difference between "yum install" and pkgconfig "install"? Are there any other installation variants in Linux?

3)For an offline machine, Is there anyway I can get all the dependencies and install everything at once ?

4) Why is it saying "xcb" requires twice. If I just get a xcb...rpm version above 1.1.92 can I just install it once?

Advertisement

Answer

Before actually answering the questions, I am going to suggest to see if you can get the latest version of the packages. The packages on the installation DVD may be really out of date and contain known vulernabilities, and other bugs. Can you use yumdownloader – in an online environment – to download the latest version onto a separate DVD and use that as the installation source? See https://access.redhat.com/solutions/10154 for more information.

To answer the questions themselves:

  1. Requires: foo can refer to a package foo or a “feature” foo. pkgconfig(kbproto) is a “feature” (or virtual requires). You can use yum/rpm to see what provides this. On my Fedora box, for example, rpm -q --provides xorg-x11-proto-devel shows that this package indeed provides pkgconfig(kbproto).

    As for x86_64 vs noarch, it doesn’t matter. noarch packages work everywhere. Other packages are restricted to the platform. So x86_64 only works on intel/amd x86 64-bit machines. Installing noarch should be fine in your case. If you only had a i686 package, though, that wouldn’t be sufficient. You would have to find a x86_64 or noarch package.

  2. Yes, there’s a big difference between yum and pkg-config. They do completely different things. One is a system tool for installing RPM packages. The other is a tool for developers for using the right headers and compiler flags. If your concern is finding/installing RPMs, do not use pkg-config directly.

  3. Do you have access to an online machine that can access the RHEL 7 yum repositories? On that machine, do something like this:

    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

Then copy/install the RPMs on the machine without internet access.

  1. It’s probably printing out xcb twice because it’s two different requirements. The unversioned requirement will be satisfied if you install any verison of xcb. The versioned requirement will only be satisfied if you install 1.1.92. If you install 1.1.92, it will satisified both the requirements.
User contributions licensed under: CC BY-SA
1 People found this is helpful
Advertisement