Это обсуждение поучительно.
По крайней мере, даже если не идеальный, необходимо смочь сделать:
xmllint --xpath "//*[local-name()='product_version']/*[local-name()='name']/text()" file.xml
Или используйте xmlstarlet вместо этого:
xmlstarlet sel -t -v //swid:product_version/swid:name file.xml
Основные причины являются устойчивостью и совместимостью. Помните с выпуском, таким как RHEL и косвенно затем через CentOS (который происходит из RHEL), основное требование пользователей этих 2 дистрибутивов - то, что платформа поддерживается в течение 7-10 лет. Чтобы сделать это, определенные версии программного обеспечения по существу заблокированы в течение очень долгих промежутков времени.
Также многие люди делают ошибку размышления, что версия Python, Perl, и т.д. это поставляется с дистрибутивом, там для их использования. Когда в действительности, эти пакеты будут действительно предназначены для программного обеспечения, которое будет работать на этих дистрибутивах.
Например, вся системная конфигурация -* инструменты, которые обеспечиваются для управления системой CentOS, использует Python. Чтобы быть конкретными, они все используют версию Python, это включено как пакет в системе.
Если Вы - разработчик приложений, и у Вас есть дополнительные требования как часть Вашего приложения, которые предусматривают, что Вам нужна версия X Python, Perl или что бы то ни было. Затем необходимо не торопиться, чтобы управлять этим как собственным требованием, вместо того, чтобы зависеть от ОС для обеспечения его для Вас.
Существуют инструменты для управления Вашими собственными версиями этих интерпретаторов. Смотрите на это названные Вопросы и ответы U&L: Рекомендуемый дистрибутив Linux для статистики? где я покрываю различные инструменты для управления Вашими собственными версиями интерпретаторов Python, Perl, & Ruby.