Консорциум The Linux Foundation представил обновленную версию (4.1.8) инструмента Linux Application Checker (AppChecker), предназначенного для анализа совместимости приложений с различными дистрибутивами Linux, а также для их тестирования на соответствие стандарту Linux Standard Base (LSB). В настоящее время в базе данных AppChecker’а для платформы x86 содержатся сведения о 84 дистрибутивах, среди которых теперь есть и ROSA 2012 Marathon. Мы планируем и в дальнейшем сотрудничать с инженерами Linux Foundation, предоставляя им необходимую информацию о релизах ROSA.

AppChecker проверяет совместимость приложения с конкретным дистрибутивом, сопоставляя набор требуемых ему разделяемых библиотек и бинарных символов с наборами библиотек и символов, предоставляемых ОС. Удовлетворение таких зависимостей является необходимым условием успешного запуска программы в ОС — если какая-то библиотека или символ отсутствуют, то запуск приложения в дистрибутиве невозможен. Список необходимых приложению библиотек и бинарных символов получается на основе анализа исполнимых бинарных файлов приложения (в формате ELF) и разделяемых библиотек. Естественно, учитываются только те зависимости, которые не удовлетворяются библиотеками самого приложения. Фактически, AppChecker эмулирует работу загрузчика при старте приложения; если в системе нет необходимых библиотек или функций, приложение просто не запустится (либо упадет, если используется «ленивое» связывание).

Стоит отметить, что AppChecker содержит данные не обо всех библиотеках, имеющихся в репозиториях системы, а только о достаточно распространенных. Более точно — гарантируется точность информации о библиотеках из этого списка — http://linuxbase.org/navigator/browse/rawlib.php?cmd=display-approved, насчитывающего чуть менее полутора тысяч библиотек, в то время как репозитории большинства дистрибутивов, в том числе и ROSA, содержат несколько тысяч библиотек. Если приложение использует библиотеку не из этого списка, то AppChecker честно сообщит, что не располагает сведениями о ее присутствии в различных дистрибутивах.

В качестве примера использования, можно проверить, что распространяемая с сайта http://mozilla.org сборка браузера Firefox (на момент написания этой заметки — версии 19.0.2) не может быть использована в устаревших системах, таких как Fedora 10 или Ubuntu 9.04.

LinuxAppChecker for firefox.png