Rpm-maven-plugin与shebang兼容性报错
# Ambari 编译——rpm-maven-plugin参数与 shebang 兼容性报错解决
在 Ambari 2.8.0 源码编译与 RPM 包构建过程中,常常会遇到 rpm-maven-plugin 插件相关的 shebang 检查、依赖检测、debuginfo
包等干扰性报错,尤其在 Python 版本多样化或脚本混杂的场景下,极易触发 ambiguous python shebang
及无关
WARNING/ERROR。本文结合实际日志,详细梳理插件参数的调优方法及典型用法。
# 一、典型报错与构建日志解析
在执行 rpm 构建时,你可能会遇到如下大量 WARNING 和 ERROR 信息,尤其涉及到脚本的 shebang 检查,以及各种 rpm-maven-plugin 自动检测环节。报错示例
[INFO] *** WARNING: ./var/lib/ambari-server/resources/upgrade/dml/Ambari-DML-Oracle-INSERT_METAINFO.sql is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/upgrade/dml/Ambari-DML-Oracle-UPGRADE_STACK.sql is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/upgrade/dml/Ambari-DML-Postgres-INSERT_METAINFO.sql is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/upgrade/dml/Ambari-DML-Postgres-UPGRADE_STACK.sql is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/configuration/ams-env.xml is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/configuration/ams-grafana-env.xml is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/configuration/ams-grafana-ini.xml is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/configuration/ams-hbase-env.xml is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/configuration/ams-hbase-log4j.xml is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/configuration/ams-hbase-policy.xml is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/configuration/ams-hbase-security-site.xml is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/configuration/ams-hbase-site.xml is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/configuration/ams-log4j.xml is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/configuration/ams-site.xml is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/configuration/ams-ssl-client.xml is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/configuration/ams-ssl-server.xml is executable but has no shebang, removing executable bit
[INFO] *** ERROR: ambiguous python shebang in /var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/alerts/alert_ambari_metrics_monitor.py: #!/usr/bin/env python. Cha nge it to python3 (or python2) explicitly.
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/files/grafana-dashboards/default/grafana-ambari-server-database.json is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/files/grafana-dashboards/default/grafana-ambari-server-topn.json is executable but has no s hebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/files/grafana-dashboards/default/grafana-ambari-server.json is executable but has no sheban g, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/files/grafana-dashboards/default/grafana-ams-hbase-home.json is executable but has no sheba ng, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/files/grafana-dashboards/default/grafana-ams-hbase-misc.json is executable but has no sheba ng, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/files/grafana-dashboards/default/grafana-ams-hbase-regionservers.json is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/files/grafana-dashboards/default/grafana-system-home.json is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/files/grafana-dashboards/default/grafana-system-servers.json is executable but has no sheba ng, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/files/service-metrics/AMBARI_METRICS.txt is executable but has no shebang, removing executa ble bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/files/service-metrics/HBASE.txt is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/files/service-metrics/HDFS.txt is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/files/service-metrics/HIVE.txt is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/files/service-metrics/HOST.txt is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/files/service-metrics/KAFKA.txt is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/files/service-metrics/YARN.txt is executable but has no shebang, removing executable bit
[INFO] mangling shebang in /var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/files/hbaseSmokeVerify.sh from /usr/bin/env bash to #!/usr/bin/bash
[INFO] *** ERROR: ambiguous python shebang in /var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/scripts/__init__.py: #!/usr/bin/env python. Change it to python3 ( or python2) explicitly.
[INFO] *** ERROR: ambiguous python shebang in /var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/scripts/ams.py: #!/usr/bin/env python. Change it to python3 (or py thon2) explicitly.
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/scripts/ams_service.py is executable but has no shebang, removing executable bit
[INFO] *** ERROR: ambiguous python shebang in /var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/scripts/functions.py: #!/usr/bin/env python. Change it to python3 (or python2) explicitly.
[INFO] *** ERROR: ambiguous python shebang in /var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/scripts/hbase.py: #!/usr/bin/env python. Change it to python3 (or python2) explicitly.
[INFO] *** ERROR: ambiguous python shebang in /var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/scripts/hbase_master.py: #!/usr/bin/env python. Change it to pytho n3 (or python2) explicitly.
[INFO] *** ERROR: ambiguous python shebang in /var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/scripts/hbase_regionserver.py: #!/usr/bin/env python. Change it to python3 (or python2) explicitly.
[INFO] *** ERROR: ambiguous python shebang in /var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/scripts/hbase_service.py: #!/usr/bin/env python. Change it to pyth on3 (or python2) explicitly.
[INFO] *** ERROR: ambiguous python shebang in /var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/scripts/metrics_collector.py: #!/usr/bin/env python. Change it to python3 (or python2) explicitly.
[INFO] *** ERROR: ambiguous python shebang in /var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/scripts/metrics_grafana.py: #!/usr/bin/env python. Change it to py thon3 (or python2) explicitly.
[INFO] *** ERROR: ambiguous python shebang in /var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/scripts/metrics_grafana_util.py: #!/usr/bin/env python. Change it to python3 (or python2) explicitly.
[INFO] *** ERROR: ambiguous python shebang in /var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/scripts/metrics_monitor.py: #!/usr/bin/env python. Change it to py thon3 (or python2) explicitly.
[INFO] *** ERROR: ambiguous python shebang in /var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/scripts/params.py: #!/usr/bin/env python. Change it to python3 (or python2) explicitly.
[INFO] *** ERROR: ambiguous python shebang in /var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/scripts/params_linux.py: #!/usr/bin/env python. Change it to pytho n3 (or python2) explicitly.
[INFO] *** ERROR: ambiguous python shebang in /var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/scripts/params_windows.py: #!/usr/bin/env python. Change it to pyt hon3 (or python2) explicitly.
[INFO] *** ERROR: ambiguous python shebang in /var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/scripts/service_check.py: #!/usr/bin/env python. Change it to pyth on3 (or python2) explicitly.
[INFO] *** ERROR: ambiguous python shebang in /var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/scripts/service_mapping.py: #!/usr/bin/env python. Change it to py thon3 (or python2) explicitly.
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/scripts/split_points.py is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/scripts/status.py is executable but has no shebang, removing executable bit
[INFO] *** ERROR: ambiguous python shebang in /var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/scripts/status_params.py: #!/usr/bin/env python. Change it to pyth on3 (or python2) explicitly.
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/templates/ams.conf.j2 is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/templates/ams_collector_jaas.conf.j2 is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/templates/ams_zookeeper_jaas.conf.j2 is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/templates/hadoop-metrics2-hbase.properties.j2 is executable but has no shebang, removing ex ecutable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/templates/hbase_client_jaas.conf.j2 is executable but has no shebang, removing executable b it
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/templates/hbase_grant_permissions.j2 is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/templates/hbase_master_jaas.conf.j2 is executable but has no shebang, removing executable b it
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/templates/hbase_regionserver_jaas.conf.j2 is executable but has no shebang, removing execut able bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/templates/metric_groups.conf.j2 is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/templates/metric_monitor.ini.j2 is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/templates/metrics_grafana_datasource.json.j2 is executable but has no shebang, removing exe cutable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/templates/regionservers.j2 is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/package/templates/smoketest_metrics.json.j2 is executable but has no shebang, removing executable b it
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/quicklinks/quicklinks.json is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/themes/credentials.json is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/themes/directories.json is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/themes/theme.json is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/alerts.json is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/kerberos.json is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/metainfo.xml is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/metrics.json is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/role_command_order.json is executable but has no shebang, removing executable bit
[INFO] mangling shebang in /var/lib/ambari-server/resources/common-services/AMBARI_METRICS/3.0.0/service_advisor.py from /usr/bin/env ambari-python-wrap to #!/usr/bin/ambari-python-wrap
[INFO] *** WARNING: ./var/lib/ambari-server/resources/common-services/README.txt is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/stack-hooks/after-INSTALL/scripts/hook.py is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/stack-hooks/after-INSTALL/scripts/params.py is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/stack-hooks/after-INSTALL/scripts/shared_initialization.py is executable but has no shebang, removing executable bit
[INFO] mangling shebang in /var/lib/ambari-server/resources/stack-hooks/before-ANY/files/changeToSecureUid.sh from /usr/bin/env bash to #!/usr/bin/bash
[INFO] *** WARNING: ./var/lib/ambari-server/resources/stack-hooks/before-ANY/scripts/hook.py is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/stack-hooks/before-ANY/scripts/params.py is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/stack-hooks/before-ANY/scripts/shared_initialization.py is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/stack-hooks/before-INSTALL/scripts/hook.py is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/stack-hooks/before-INSTALL/scripts/params.py is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/stack-hooks/before-INSTALL/scripts/repo_initialization.py is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/stack-hooks/before-INSTALL/scripts/shared_initialization.py is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/stack-hooks/before-RESTART/scripts/hook.py is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/stack-hooks/before-SET_KEYTAB/scripts/hook.py is executable but has no shebang, removing executable bit
[INFO] mangling shebang in /var/lib/ambari-server/resources/stack-hooks/before-START/files/checkForFormat.sh from /usr/bin/env bash to #!/usr/bin/bash
[INFO] *** WARNING: ./var/lib/ambari-server/resources/stack-hooks/before-START/files/task-log4j.properties is executable but has no shebang, removing executable bit
[INFO] *** ERROR: ambiguous python shebang in /var/lib/ambari-server/resources/stack-hooks/before-START/files/topology_script.py: #!/usr/bin/env python. Change it to python3 (or python2) exp licitly.
[INFO] *** WARNING: ./var/lib/ambari-server/resources/stack-hooks/before-START/scripts/custom_extensions.py is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/stack-hooks/before-START/scripts/hook.py is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/stack-hooks/before-START/scripts/params.py is executable but has no shebang, removing executable bit
[INFO] *** ERROR: ambiguous python shebang in /var/lib/ambari-server/resources/stack-hooks/before-START/scripts/rack_awareness.py: #!/usr/bin/env python. Change it to python3 (or python2) ex plicitly.
[INFO] *** WARNING: ./var/lib/ambari-server/resources/stack-hooks/before-START/scripts/shared_initialization.py is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/stack-hooks/before-START/templates/commons-logging.properties.j2 is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/stack-hooks/before-START/templates/exclude_hosts_list.j2 is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/stack-hooks/before-START/templates/hadoop-metrics2.properties.j2 is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/stack-hooks/before-START/templates/health_check.j2 is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/stack-hooks/before-START/templates/include_hosts_list.j2 is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/stack-hooks/before-START/templates/topology_mappings.data.j2 is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/custom_action_definitions/system_action_definitions.xml is executable but has no shebang, removing executable bit
[INFO] *** ERROR: ambiguous python shebang in /var/lib/ambari-server/resources/custom_actions/scripts/check_host.py: #!/usr/bin/env python. Change it to python3 (or python2) explicitly.
[INFO] *** ERROR: ambiguous python shebang in /var/lib/ambari-server/resources/custom_actions/scripts/clear_repocache.py: #!/usr/bin/env python. Change it to python3 (or python2) explicitly.
[INFO] *** ERROR: ambiguous python shebang in /var/lib/ambari-server/resources/custom_actions/scripts/install_packages.py: #!/usr/bin/env python. Change it to python3 (or python2) explicitly .
[INFO] *** ERROR: ambiguous python shebang in /var/lib/ambari-server/resources/custom_actions/scripts/remove_bits.py: #!/usr/bin/env python. Change it to python3 (or python2) explicitly.
[INFO] *** ERROR: ambiguous python shebang in /var/lib/ambari-server/resources/custom_actions/scripts/remove_previous_stacks.py: #!/usr/bin/env python. Change it to python3 (or python2) expl icitly.
[INFO] *** ERROR: ambiguous python shebang in /var/lib/ambari-server/resources/custom_actions/scripts/ru_execute_tasks.py: #!/usr/bin/env python. Change it to python3 (or python2) explicitly .
[INFO] *** ERROR: ambiguous python shebang in /var/lib/ambari-server/resources/custom_actions/scripts/stack_select_set_all.py: #!/usr/bin/env python. Change it to python3 (or python2) explic itly.
[INFO] *** ERROR: ambiguous python shebang in /var/lib/ambari-server/resources/custom_actions/scripts/update_repo.py: #!/usr/bin/env python. Change it to python3 (or python2) explicitly.
[INFO] *** ERROR: ambiguous python shebang in /var/lib/ambari-server/resources/custom_actions/scripts/validate_configs.py: #!/usr/bin/env python. Change it to python3 (or python2) explicitly .
[INFO] *** ERROR: ambiguous python shebang in /var/lib/ambari-server/resources/host_scripts/alert_disk_space.py: #!/usr/bin/env python. Change it to python3 (or python2) explicitly.
[INFO] *** ERROR: ambiguous python shebang in /var/lib/ambari-server/resources/host_scripts/alert_ulimit.py: #!/usr/bin/env python. Change it to python3 (or python2) explicitly.
[INFO] *** ERROR: ambiguous python shebang in /var/lib/ambari-server/resources/host_scripts/alert_version_select.py: #!/usr/bin/env python. Change it to python3 (or python2) explicitly.
[INFO] *** WARNING: ./var/lib/ambari-server/resources/Ambari-DDL-Postgres-CREATE.sql is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/Ambari-DDL-Postgres-DROP.sql is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/Ambari-DDL-Postgres-EMBEDDED-CREATE.sql is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/Ambari-DDL-Postgres-EMBEDDED-DROP.sql is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/Ambari-DDL-Oracle-CREATE.sql is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/Ambari-DDL-Oracle-DROP.sql is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/Ambari-DDL-MySQL-DROP.sql is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/Ambari-DDL-AzureDB-CREATE.sql is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/Ambari-DDL-SQLServer-CREATE.sql is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/Ambari-DDL-SQLServer-CREATELOCAL.sql is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/Ambari-DDL-SQLServer-DROP.sql is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/Ambari-DDL-SQLAnywhere-CREATE.sql is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/APACHE-AMBARI-MIB.txt is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/kerberos.json is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/widgets.json is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/resources/version is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/ambari-env.sh is executable but has no shebang, removing executable bit
[INFO] *** WARNING: ./var/lib/ambari-server/install-helper.sh is executable but has no shebang, removing executable bit
[INFO] error: Bad exit status from /var/tmp/rpm-tmp.3USxmR (%install)
[INFO] Bad exit status from /var/tmp/rpm-tmp.3USxmR (%install)
[INFO]
[INFO]
[INFO] RPM build errors:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
大部分警告可以无视,但只要遇到 Bad exit status from ... (%install)
,表明 rpm 构建脚本在 install 阶段发生了致命错误,需要关注上方的
python shebang 以及 rpm-maven-plugin 的参数配置。
提示
该类报错主要由 rpm-maven-plugin 在对构建文件做 shebang 合规性校验、权限属性自动识别时产生。Ambari 脚本众多,尤其是 Python2/3 兼容与无 shebang 的配置、模板文件极易引发冗余告警甚至构建中断。
# 二、rpm-maven-plugin参数解读与屏蔽方式
# 1. 常用 defineStatements 说明
为了解决自动依赖检测、debuginfo 包和 shebang 后处理等问题,需要在 pom.xml 的 rpm-maven-plugin
插件配置中,结合 defineStatements
关键字做精准屏蔽。常用参数表如下:
defineStatement | 作用描述 |
---|---|
__requires_exclude .* | 禁用自动依赖检测,防止误报 |
__provides_exclude .* | 禁用自动 provides 检测 |
debug_package %{nil} | 禁止生成 debuginfo 包,避免无用 debug rpm |
__os_install_post %{nil} | 禁用安装后自动处理脚本,跳过符号链接检查等 |
__jar_repack %{nil} | 跳过 jar 包二次 repack 环节 |
__spec_install_post %{nil} | 禁用 rpm 安装后处理逻辑 |
笔记
defineStatements
区块可直接插入到 rpm-maven-plugin 的 <configuration>
段落内部,作为解决上述 rpm 构建报错的核心方案。
在 ambari-server
和 ambari-agent
的 pom.xml 插件配置中,示例如下:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>rpm-maven-plugin</artifactId>
<version>2.1.4</version>
<!-- ...省略... -->
<configuration>
<!-- ...省略... -->
<requires>
<require>${rpm.dependency.list}</require>
</requires>
<defineStatements>
<defineStatement>__requires_exclude .*</defineStatement>
<defineStatement>__provides_exclude .*</defineStatement>
<defineStatement>debug_package %{nil}</defineStatement>
<defineStatement>__os_install_post %{nil}</defineStatement>
<defineStatement>__jar_repack %{nil}</defineStatement>
<defineStatement>__spec_install_post %{nil}</defineStatement>
</defineStatements>
<!-- ...省略... -->
</configuration>
</plugin>
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 2. 参数生效验证
通过上述配置后,再次编译,可以在调试日志中看到 defineStatements 被正确注入:
该参数块的引入可以有效消除大多数冗余警告,提升 RPM 构建的成功率和规范性。
提示
遇到 rpm-maven-plugin 报错建议开启调试日志(加 -X
),可清晰定位插件各阶段参数注入及文件检查的详细过程。
# 附录:参考文档与调试手册
- rpm-maven-plugin 官方参数文档:
https://www.mojohaus.org/rpm-maven-plugin/rpm-mojo.html (opens new window)