Анализ проблем с поставкой Java-приложений в Linux-дистрибутивах
27 сентября 2010 года
Терри Каррез (Thierry Carrez), возглавляющий разработку серверной сборки Ubuntu, подытожил в своем блоге проблемы, возникающие при поставке программ на языке Java в составе Linux-дистрибутивов и приводящие к тому, что множество Java-программ не доступны в пакетах для Linux-дистрибутивов или поставляются через сторонние репозитории.
Главная проблема возникает из-за наличия в Java собственных унифицированных инструментов сборки и распространения пакетов, что приводит к тому, что фактически разработчики открытых проектов на Java не выпускают готовый для пересборки релиз в исходных текстах, а занимаются поставкой уже готовых бинарных пакетов, включающих откомпилированный набор классов и связанных внешних Java-библиотек. Преобразовать такой Java-пакет в другой формат пакетов для включения в репозиторий Linux-дистрибутива не так просто, так как каждая Java-программа может требовать для своей работы разные версии Java-библиотек. Привязка к разным версиям библиотек идет в разрез со стремлением Linux-дистрибутивов избежать дублирования кода и затрудняет выпуск обновлений, связанных с безопасностью.
Дистрибутивы стремятся к поставке единой версии библиотеки для всех программ, в то время как Java-приложения проповедуют принцип поставки нужного набора библиотек в составе каждого пакета. Попытка перевести Java-программу на другую, стандартную для дистрибутива версию библиотеки, приводит к возникновению непредвиденных проблем и требует отдельной отладки и исправления кода. Чем сложнее Java-проект, тем больше наблюдается зависимость от библиотек. К сожалению решение проблем так и не найдено и дистрибутивам приходится комбинировать различные подходы: от поставки нескольких версий библиотек или включения всех библиотек в пакет, до отказа от поставки Java-программ и придумывания отдельных надстроек для доустановки библиотек.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.