eroare: redefinirea ap_hack_apr_allocator_create

Compilarea codului sursă Apache Web Server este întotdeauna distractivă.

Este foarte rar ca Apache să fie compilat la prima rulare pe un server nou-nouț.

Faptul este că necesită o mulțime de cerințe prealabile și, dacă vreuna dintre ele lipsește sau este compatibilitate cu versiunea, atunci este posibil să trebuiască să petreci mult timp pentru a le remedia.

Lucram la noul server Linux 6.4 pentru a instala Apache 2.4.6 și am întâlnit următoarea eroare.

exports.c:1929:
error: redefinition of 'ap_hack_apr_allocator_create'
exports.c:921: note: previous definition of 'ap_hack_apr_allocator_create' was here exports.c:1930:
error: redefinition of 'ap_hack_apr_allocator_destroy'
exports.c:922: note: previous definition of 'ap_hack_apr_allocator_destroy' was here exports.c:1931:
error: redefinition of 'ap_hack_apr_allocator_alloc' exports.c:923: note: previous definition of 'ap_hack_apr_allocator_alloc' was here exports.c:1932:
error: redefinition of 'ap_hack_apr_allocator_free' exports.c:924: note: previous definition of 'ap_hack_apr_allocator_free' was here exports.c:1933:
error: redefinition of 'ap_hack_apr_allocator_owner_set'
exports.c:925: note: previous definition of 'ap_hack_apr_allocator_owner_set' was here exports.c:1934:
error: redefinition of 'ap_hack_apr_allocator_owner_get' exports.c:926: note: previous definition of 'ap_hack_apr_allocator_owner_get' was here exports.c:1935:
error: redefinition of 'ap_hack_apr_allocator_max_free_set' exports.c:927: note: previous definition of 'ap_hack_apr_allocator_max_free_set' was here exports.c:1937:
error: redefinition of 'ap_hack_apr_allocator_mutex_set' exports.c:929: note: previous definition of 'ap_hack_apr_allocator_mutex_set' was here exports.c:1938:
error: redefinition of 'ap_hack_apr_allocator_mutex_get' exports.c:930: note: previous definition of 'ap_hack_apr_allocator_mutex_get' was here exports.c:1944:
error: redefinition of 'ap_hack_apr_atomic_init' exports.c:936: note: previous definition of 'ap_hack_apr_atomic_init' was here exports.c:1945:
error: redefinition of 'ap_hack_apr_atomic_read32' exports.c:937: note: previous definition of 'ap_hack_apr_atomic_read32' was here exports.c:1946:
error: redefinition of 'ap_hack_apr_atomic_set32' exports.c:938: note: previous definition of 'ap_hack_apr_atomic_set32' was here exports.c:1947:
error: redefinition of 'ap_hack_apr_atomic_add32' exports.c:939: note: previous definition of 'ap_hack_apr_atomic_add32' was here exports.c:1948:
error: redefinition of 'ap_hack_apr_atomic_sub32' exports.c:940: note: previous definition of 'ap_hack_apr_atomic_sub32' was here exports.c:1949:
error: redefinition of 'ap_hack_apr_atomic_inc32' exports.c:941: note: previous definition of 'ap_hack_apr_atomic_inc32' was here exports.c:1950:
error: redefinition of 'ap_hack_apr_atomic_dec32' exports.c:942: note: previous definition of 'ap_hack_apr_atomic_dec32' was here exports.c:1951:
error: redefinition of 'ap_hack_apr_atomic_cas32' exports.c:943: note: previous definition of 'ap_hack_apr_atomic_cas32' was here exports.c:1952:
error: redefinition of 'ap_hack_apr_atomic_xchg32' exports.c:944: note: previous definition of 'ap_hack_apr_atomic_xchg32' was here exports.c:1953:
error: redefinition of 'ap_hack_apr_atomic_casptr' exports.c:945: note: previous definition of 'ap_hack_apr_atomic_casptr' was here exports.c:1954:
error: redefinition of 'ap_hack_apr_atomic_xchgptr' exports.c:946: note: previous definition of 'ap_hack_apr_atomic_xchgptr' was here exports.c:1960:
error: redefinition of 'ap_hack_apr_dso_load' exports.c:1085: note: previous definition of 'ap_hack_apr_dso_load' was here exports.c:1961:
error: redefinition of 'ap_hack_apr_dso_unload' exports.c:1086: note: previous definition of 'ap_hack_apr_dso_unload' was here exports.c:1962:
error: redefinition of 'ap_hack_apr_dso_sym' exports.c:1087: note: previous definition of 'ap_hack_apr_dso_sym' was here exports.c:1963:
error: redefinition of 'ap_hack_apr_dso_error' exports.c:1088: note: previous definition of 'ap_hack_apr_dso_error' was here exports.c:1969:
error: redefinition of 'ap_hack_apr_env_get' exports.c:1094: note: previous definition of 'ap_hack_apr_env_get' was here exports.c:1970:
error: redefinition of 'ap_hack_apr_env_set' exports.c:1095: note: previous definition of 'ap_hack_apr_env_set' was here exports.c:1971:
error: redefinition of 'ap_hack_apr_env_delete' exports.c:1096: note: previous definition of 'ap_hack_apr_env_delete' was here exports.c:1976:
error: redefinition of 'ap_hack_apr_strerror' exports.c:1101: note: previous definition of 'ap_hack_apr_strerror' was here export.c:1981:
error: redefinition of 'ap_hack_apr_stat' exports.c:1106: note: previous definition of 'ap_hack_apr_stat' was here exports.c:1982:
error: redefinition of 'ap_hack_apr_dir_open' exports.c:1107: note: previous definition of 'ap_hack_apr_dir_open' was here exports.c:1983:
error: redefinition of 'ap_hack_apr_dir_close' exports.c:1108: note: previous definition of 'ap_hack_apr_dir_close' was here

Dacă întâmpinați o eroare similară, o puteți remedia așa cum am făcut eu urmând.

  Cum să automatizezi Foi de calcul Google cu macrocomenzi

Soluţie

După ce am analizat diferiți parametri, am observat că acest lucru se întâmplă atunci când aveți apr-util versiune mai mică decât 1.4.1

  • Verificați versiunea apr-util. Dacă găsiți o versiune inferioară, atunci trebuie să instalați versiunea 1.4.1 sau mai mare
  • Descărcați codul sursă apr-util de pe http://mirror.nus.edu.sg/apache/apr/
  • Extrageți fișierul descărcat

Compilați și instalați după cum urmează

./configure 
make 
make install

În mod implicit, se va instala în /usr/local/apr/bin/apu-1-config

Acum poți să complini apache cu apr-util nou instalat și ar trebui să fie în regulă.

./configure --with-apr-util=/usr/local/apr/bin/apu-1-config

M-a ajutat si sper ca si tu.

Ți-a plăcut să citești articolul? Ce zici de împărtășirea cu lumea?