Как установить более новую версию GTK в Ubuntu без замены текущей?

Я пытаюсь скомпилировать файл-ролик из git, но запуск autogen.sh выдает мне эту ошибку

configure: error: Package requirements (gtk+-3.0 >= 2.91.1) were not met:

No package 'gtk+-3.0' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables GTK_CFLAGS
and GTK_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

Я использую Ubuntu Maverick и не хочу полностью заменять мою текущую версию gtk, glib и т. Д.

Я попытался скомпилировать GTK, используя аргумент --prefix файла autogen.sh, но это дает мне похожую ошибку в моей версии glib.

Как я могу успешно скомпилировать файл-ролик, используя эти новые библиотеки, не прерывая мою установку?

1 ответ

У вас есть, как правило, два варианта:

  • Скажите каждый новый пакет программного обеспечения, который нуждается gtk, во время настройки, где искать нужные библиотеки, или

  • Установите новый GTK бок о бок в системном расположении, которое находится в LD_LIBRARY_PATH,

Первый вариант прост и безопасен, если вы хотите собрать (включая компиляцию) всего несколько программ, которые зависят от нового Gtk. Существуют различные способы указания программного обеспечения в определенном месте библиотеки, в зависимости от используемого инструмента конфигурации. Для классических приложений с configure сценария, вам нужно взглянуть на параметры настройки фазы, используя ./configure --help, Искать такие вещи, как --gtk-lib=PATH или же --with-gtk-path=PATH, --with часть (общая для многих опций) обычно упоминается только один раз в начале справки.

Однако упомянутый вами File-ролик, похоже, использует autogen программа для автоматической процедуры настройки. Вставленный фрагмент указывает, какие переменные среды вам нужно установить, чтобы они указывали на конкретный путь GTK+. Похоже на бег GTK_LIBS=/full/path/to/your/custom/lib ./autogen.sh должно быть достаточно.

Общесистемный сценарий немного сложнее, потому что каждый дистрибутив Linux может управлять путями библиотек по-своему, поэтому я не могу дать вам универсальное решение.

Другие вопросы по тегам