Люди, которые действительно знают ответ на этот вопрос, - те, кто разрабатывает программы или библиотеки, которые включены в дистрибутивы Linux, и которые зависят от других библиотек, которые включены в дистрибутивы Linux.Они просто рассказывают мне, что они делают с точки зрения среды разработки, которую я описываю, было бы полезно.
Проблема, в основном, заключается в следующем:
В дистрибутивах Linux ядро Linux объединено с типичной системой Linux -glib, dbus, udev и тому подобное.Большинство также включает в себя окружение рабочего стола, такое как KDE или Gnome.
Хотя в дистрибутиве может быть несколько собственных пакетов программ, большинство программ и библиотек происходят из апстрима, то есть из источников, отличных от себя.Такие пакеты, как dbus, являются «восходящими» и передаются в дистрибутивы, такие как Debian, Fedora, Ubuntu и т. П.
Иногда я использую эти программы и чувствую, что их можно улучшить.Некоторые из улучшений - это исправления ошибок, с которыми невозможно поспорить - скажем, небольшой патч, который предотвращает ошибку сегментации из-за ненужного нарушения памяти.
При сборке этих пакетов одна вещь, включаемая в дистрибутивы, - это "зависит"списки, так как многие из этих программ зависят от определенных библиотек (и определенных версий этих библиотек), а некоторые из этих библиотек зависят от других библиотек.Это приводит к некоторым осложнениям, с которыми я сталкиваюсь.
Если я сталкиваюсь с ошибкой в программе или библиотеке и сообщаю о ней в исходном потоке, часто возникает вопрос: «Используете ли вы последнюю версию в системе контроля версий илистарая версия ".Понятно, что разработчики хотят, чтобы я использовал код из последнего коммита, так как они не хотят тратить время на пересмотр уже пройденного пути, особенно если ошибка была исправлена.
Итак, я иду, чтобы получитьпоследний коммит.Но затем я сталкиваюсь с проблемой, потому что последний коммит теперь зависит от библиотеки, которая новее, чем использует моя операционная система.
Примером может быть, если я смотрю PDF-файл с программой чтения по умолчанию в Ubuntu,,Он не отображается должным образом из-за того, что, как представляется, является недостатком в попплеровской библиотеке, от которой зависит.Поэтому я публикую ошибку, но они хотят знать, есть ли у меня последняя версия poppler.Поэтому я загружаю последнюю версию poppler commit, но библиотека poppler зависит от библиотеки cairo, а в моей ОС нет последней библиотеки cairo.Поэтому я должен это получить - но затем Каир жалуется, что у меня нет последних библиотек pixman и x11.
Это один из примеров этого, но он подходит практически для любого пакета.
Итак, мой вопрос: какой хороший дистрибутив Linux использовать для такого рода вещей?Тот, который известен наличием самых современных пакетов или, по крайней мере, возможностью легко их получить?
Или, возможно, дистрибутив Linux, который позволяет мне делать такие вещи проще.Я слышал разговоры о том, как Gentoo собирает из исходного кода через emerge, и я видел, что это решает множество проблем.
Также есть возможность иметь подсистему последних пакетов в среде chroot в другой системе, используятакие инструменты, как pbuilder и debootstrap.
Наконец, я мог бы просто загрузить последние коммиты всех библиотек, собрать один без зависимостей, с которым я имею дело в первую очередь, а затем перейти к следующему и собрать его,указав программе использовать мою скомпилированную локальную библиотеку, а не системную библиотеку, а затем сделайте это снова и так далее.Это то, чего я пытаюсь избежать по ряду причин (слишком много ручного обхода, я могу пропустить важную зависимость и т. Д.)