Что лучше скачивать библиотеки из репозиториев или устанавливать из * .tar.gz - PullRequest
1 голос
/ 28 августа 2010

gcc 4.4.4 c89 Fedora 13

Мне интересно, что лучше. Чтобы дать вам компиляцию примеров: apache runtime portable и log4c .

Версия apr в моем хранилище fedora 1.3.9. Последняя стабильная версия на сайте apr: 1.4.2.

Вопросы

  1. Было бы лучше скачать с сайта и установить или установить с помощью yum?
  2. Когда вы устанавливаете из yum, иногда он может поместить вещи во многие каталоги. При установке из tarball вы можете размещать include и библиотеки там, где вам нужно.
  3. В log4c версии совпадают, так как это старый проект.
  4. Я скачал log4c, используя yum. Я скопировал все включения и библиотеки в каталог моего проекта разработки.

т.е.

project_name/tools/log4c/inc
project_name/tools/log4c/libs

Однако я заметил, что мне пришлось искать некоторые заголовки в каталоге /usr/include.

Большое спасибо за любые предложения,

Ответы [ 4 ]

4 голосов
/ 28 августа 2010

Если версия в репозитории пакетов вашего дистрибутива достаточно свежая, просто используйте ее.

Преимуществами являются автоматическое обновление через ваш дистрибутив, простая и быстрая установка (включая автоматическую загрузку и установку зависимостей!) И простое удаление пакетов.

Если вы устанавливаете материал из .tar.gz самостоятельно, вы должны играть в свой собственный дистрибутив - следите за проблемами безопасности и ошибками.

Используя дистрибутивные пакеты, вы также следите за проблемами безопасности, но дистрибьютор за вас много работает (например, разработка патчей, переупаковка, тестирование и обнаружение серьезных вещей). Конечно, у каждого дистрибьютора есть политика в отношении разных классов проблем для разных репозиториев пакетов. Но с вашими собственными установками .tar.gz у вас ничего этого нет.

2 голосов
/ 28 августа 2010

Думаю, это вековой вопрос.И это одинаково во всех дистрибутивах Linux.

Пакет создан кем-то - у этого человека есть мнение относительно того, куда вещи должны идти.Вы можете не согласиться - но используя пакет, вы избавлены от погони за всеми зависимостями, необходимыми для компиляции и установки программного обеспечения.

Так что для полного контроля: сверните свои собственные - но будьте готовы к возможной работе, иначепакет.

Мой взгляд: используйте пакеты, пока это невозможно сделать (конфликты, необходимые параметры компиляции, ..).Я бы скорее потратил время на то, чтобы заставить программное обеспечение работать на меня, чем потратил время на компиляцию.

1 голос
/ 28 августа 2010

Я обычно использую пакеты, предоставленные моим дистрибутивом, если они достаточно новой версии. Для этого есть две причины:

1) Кто-то позаботится о том, чтобы я получал новые пакеты, если обнаружены уязвимости в старых.

2) Это экономит мое время.

Когда я настраиваю проект разработки, я никогда не создаю свои собственные каталоги include / lib, если сам проект не является авторским источником для соответствующих файлов, которые я там помещаю.

Я использую pkg-config, чтобы указать расположение необходимых библиотек и включить файлы в мой компилятор. pkg-config использует некоторые .pc-файлы в качестве источника информации о том, где что-то должно быть, и они поддерживаются теми же людьми, которые создают пакеты для вашего дистрибутива. Некоторые библиотеки не предоставляют этот файл, но являются альтернативным скриптом -config. Я приведу два примера:

Я не работаю с Fedora 13, но пример для Ubuntu 10.04 будет;

*) Установите liblog4c-dev

*) Команда "log4c-config --libs" возвращает "-L / usr / lib -llog4c" ...

*) Команда "log4c-config --cflags" возвращает "-I / usr / include"

А для примера использования pkg-config (для примера я буду использовать SDL):

*) Установите libsdl1.2-dev

*) Команда "pkg-config sdl --libs" возвращает "-lSDL"

*) Команда "pkg-config sdl --cflags" возвращает "-D_GNU_SOURCE = 1 -D_REENTRANT -I / usr / include / SDL"

... Таким образом, даже если другой дистрибутив решит расставить вещи по-разному, существуют сценарии, которые должны дать вам надежный ответ о том, где что находится - так что вещи можно построить в большинстве дистрибутивов. Автоинструменты (automake, autoconf и т. П.) И cmake весьма полезны для того, чтобы вам не приходилось сталкиваться с этими проблемами.

1 голос
/ 28 августа 2010

Если вы хотите создать что-то, что должно работать с Apache, который включен в Fedora, то, вероятно, лучше всего использовать версию apr в Fedora.Таким образом, вы получаете автоматические обновления безопасности и т. Д. Если вы хотите самостоятельно разработать что-то новое, вместо этого может быть полезно отслеживать восходящий поток.

Также обычно gcc & co находит заголовки, которые предоставляет ваш дистрибутив.без необходимости их копировать, поэтому не имеет значения, где они хранятся в yum / rpm.

...