σφάλμα: επαναπροσδιορισμός του ap_hack_apr_allocator_create

Η συλλογή πηγαίου κώδικα του διακομιστή Web Apache είναι πάντα διασκεδαστική.

Είναι πολύ σπάνιο το Apache να μεταγλωττιστεί κατά την πρώτη εκτέλεση σε έναν ολοκαίνουργιο διακομιστή.

Το γεγονός είναι ότι απαιτεί πολλά προαπαιτούμενα και αν λείπει κάποιο από αυτά ή συμβατότητα έκδοσης, τότε ίσως χρειαστεί να αφιερώσετε πολύ χρόνο για να τα διορθώσετε.

Δούλευα στον ολοκαίνουργιο διακομιστή Linux 6.4 για να εγκαταστήσω το Apache 2.4.6 και αντιμετώπισα το ακόλουθο σφάλμα.

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

Εάν λαμβάνετε ένα παρόμοιο σφάλμα, μπορείτε να το διορθώσετε όπως έκανα ακολουθώντας.

  5 Καλύτερες VAPT που βασίζονται σε Cloud για ιστότοπους μικρών και μεσαίων επιχειρήσεων

Λύση

Αφού εξέτασα διάφορες παραμέτρους, παρατήρησα ότι αυτό συμβαίνει όταν έχετε έκδοση apr-util χαμηλότερη από την 1.4.1

  • Επαληθεύστε την έκδοση apr-util. Εάν βρείτε μια χαμηλότερη έκδοση, τότε πρέπει να εγκαταστήσετε την 1.4.1 ή νεότερη έκδοση
  • Κατεβάστε τον πηγαίο κώδικα apr-util από http://mirror.nus.edu.sg/apache/apr/
  • Εξαγάγετε το ληφθέν αρχείο

Μεταγλώττιση και εγκατάσταση ως εξής

./configure 
make 
make install

Από προεπιλογή, θα εγκατασταθεί στο /usr/local/apr/bin/apu-1-config

Τώρα μπορείτε να συμμορφώσετε το apache με το πρόσφατα εγκατεστημένο apr-util και θα πρέπει να είναι εντάξει.

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

Με βοήθησε και ελπίζω και εσένα.

Σας άρεσε να διαβάζετε το άρθρο; Τι θα λέγατε να μοιράζεστε με τον κόσμο;

  Πώς να αλλάξετε το φόντο Google σε ένα Chromebook