feil: redefinering av ap_hack_apr_allocator_create
Apache Web Server-kildekodekompilering er alltid gøy.
Det er svært sjelden at Apache blir kompilert ved første kjøring på en helt ny server.
Faktum er at det krever mange forutsetninger, og hvis noen av dem mangler eller versjonskompatibilitet, må du kanskje bruke mye tid på å fikse dem.
Jeg jobbet på den splitter nye serveren Linux 6.4 for å installere Apache 2.4.6 og fant følgende feil.
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
Hvis du får en lignende feil, kan du fikse den som jeg gjorde ved å følge.
Løsning
Etter å ha sett på forskjellige parametere, la jeg merke til at dette skjer når du har apr-util lavere versjon enn 1.4.1
- Bekreft apr-util-versjonen din. Hvis du finner en lavere versjon, må du installere 1.4.1 eller høyere
- Last ned apr-util kildekode fra http://mirror.nus.edu.sg/apache/apr/
- Pakk ut den nedlastede filen
Kompiler og installer som følger
./configure make make install
Som standard vil den installeres under /usr/local/apr/bin/apu-1-config
Nå kan du komplimentere apache med nyinstallert apr-util, og det burde være greit.
./configure --with-apr-util=/usr/local/apr/bin/apu-1-config
Det hjalp meg, og jeg håper du også.
Likte du å lese artikkelen? Hva med å dele med verden?