Установка Linux libX11-devel - PullRequest
       18

Установка Linux libX11-devel

0 голосов
/ 17 октября 2018

Я пытаюсь собрать QT4 (перенос с Redhat 5 на 7 с обновленным компилятором gcc) в RedHat 7, и я получаю сообщение об ошибке, что X11/Xlib.h не найден.В любом случае, после некоторых исследований большинство людей сказали установить libX11-devel для получения этих библиотек x11.Поскольку я использую автономный компьютер, я не могу выполнять команды типа «apt-get», и мне приходится вручную устанавливать RPM.Итак, я пошел на свой установочный DVD RH-7 и получил "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 только 1013 *.Должен ли я как-то найти "xorg-x11-proto......x86_64.rpm", поскольку это 64-битный компьютер?

2) Есть ли разница между "yum install" и pkgconfig "install"?Существуют ли другие варианты установки в Linux?

3) Для автономного компьютера, могу ли я получить все зависимости и установить все сразу?

4) Почему это говорит "xcb" требуется дважды.Если я получу xcb...rpm версию выше 1.1.92, могу ли я установить ее один раз?

Ответы [ 2 ]

0 голосов
/ 17 октября 2018

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 гарантирует, что требование исходит от конкретной сборки, предоставляющей конкретную версию библиотеки. Здесь - некоторые детали.

3.Получите Все ISO от EL7.

4.Это связано с pkgconfig и версиями библиотеки.

0 голосов
/ 17 октября 2018

Прежде чем ответить на вопросы, я собираюсь предложить посмотреть, сможете ли вы получить последнюю версию пакетов.Пакеты на установочном DVD могут быть действительно устаревшими и содержать известные уязвимости и другие ошибки.Можете ли вы использовать yumdownloader - в онлайн-среде - чтобы загрузить последнюю версию на отдельный DVD и использовать ее в качестве источника установки?См. https://access.redhat.com/solutions/10154 для получения дополнительной информации.

Чтобы ответить на сами вопросы:

  1. Requires: foo можно сослаться на пакет foo или "функцию""foo.pkgconfig(kbproto) - это «функция» (или виртуальная требуется).Вы можете использовать yum / rpm, чтобы увидеть, что обеспечивает это.Например, на моем компьютере Fedora rpm -q --provides xorg-x11-proto-devel показывает, что этот пакет действительно обеспечивает pkgconfig(kbproto).

    Что касается x86_64 против noarch, это не имеет значения.noarch пакеты работают везде.Другие пакеты ограничены платформой.Так что x86_64 работает только на 64-битных компьютерах Intel / AMD x86.Установка noarch должна подойти в вашем случае.Если бы у вас был только пакет i686, этого было бы недостаточно.Вам нужно будет найти пакет x86_64 или noarch.

  2. Да, между yum и pkg-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

Затем скопируйте / установите RPM на машине без доступа в Интернет.

Возможно, он печатает xcb дважды, потому что это два разных требования.Неверсионное требование будет удовлетворено, если вы установите любую версию xcb.Версионное требование будет выполнено только при установке 1.1.92.Если вы установите 1.1.92, он будет удовлетворять обоим требованиям.
...