अपने सिस्टम पर "'aclocal-1.15' कैसे गायब है" चेतावनी?


85

Im github पर c ++ प्रोग्राम चलाने की कोशिश कर रहा हूं। (निम्न लिंक https://github.com/mortehu/text-classifier पर उपलब्ध है )

मेरे पास एक मैक है, और मैं इसे टर्मिनल में चलाने की कोशिश कर रहा हूं। मुझे लगता है कि मैंने ऑटोकॉन्फ़ और स्वचालित डाउनलोड किया है लेकिन मुझे यकीन नहीं है। प्रोग्राम को चलाने के लिए मैं टर्मिनल में सही फ़ोल्डर में जा रहा हूं

./configure && make 

लेकिन मुझे त्रुटि मिलती है:

चेतावनी: आपके सिस्टम पर 'aclocal-1.15' गायब है। यदि आपको inc acinclude.m4 ’या ac config.ac’ या m4 फाइलों को। कॉन्फ़िगर .ac ’द्वारा संशोधित किया गया है, तो आपको केवल इसकी आवश्यकता होनी चाहिए। 'Aclocal' कार्यक्रम GNU ऑटोमैटिक पैकेज का हिस्सा है: http://www.gnu.org/software/automake इसे चलाने के लिए GNU ऑटोकॉनफ, GNU m4 और पर्ल की भी आवश्यकता है: http://www.gnu.org / सॉफ्टवेयर / autoconf http://www.gnu.org/software/m4/ http://www.perl.org/ बनाना: *** [aclocal.m4: त्रुटि 127

मेरे पास xcode और g ++ है और c प्रोग्राम को चलाने के लिए आवश्यक सभी चीजें हैं, लेकिन जैसा कि स्पष्ट है, मुझे नहीं पता कि Im क्या कर रहा है।

उपरोक्त लिंक में प्रोग्राम को चलाने का सबसे आसान, सरल तरीका क्या है? मुझे लगता है कि यह एक रीडमी और उदाहरण के उपयोग के साथ आता है लेकिन मुझे वह काम नहीं मिल सकता है।



1
"सब बातों कार्यक्रमों ग चलाने के लिए आवश्यक" - आप के लिए सब बातों की जरूरत संकलन कार्यक्रम है, जो इस मामले में पैकेज शामिल हैं automake, autoconf, m4, और perl, संदेश के रूप में काफी स्पष्ट रूप से कहा गया है ... "मुझे लगता है कि मैं डाउनलोड किया है autoconf और स्वचालित करें लेकिन मुझे यकीन नहीं है "- मुझे पूरा यकीन है कि आपने इसे बहुत कम से कम ठीक से स्थापित नहीं किया है। ;-)
डिस्सोलर

जवाबों:


168

दौड़ने से पहले दौड़ने की ./configureकोशिश करें autoreconf -f -i। ऑटोरैकोनफ कार्यक्रम स्वचालित रूप से आवश्यकतानुसार ऑटोहिडर, एसक्लोकल, ऑटोमेक, ऑटोपॉइंट और लिबटूलाइज चलाता है।

जोड़ने के लिए संपादित करें: यह आमतौर पर एक .zipया .tar.gzसंग्रह से निकालने के बजाय Git से कोड की जाँच करने के कारण होता है । फ़ाइलों को बदलने पर रीइंबर्स को ट्रिगर करने के लिए, Git फ़ाइलों की टाइमस्टैम्प को संरक्षित नहीं करता है, इसलिए configureस्क्रिप्ट पुरानी हो सकती है। जैसा कि दूसरों ने उल्लेख किया है, अगर आपके पास हाल ही में पर्याप्त संस्करण नहीं है, तो इसके आस-पास आने के रास्ते हैं autoreconf

एक अन्य संपादन: यह त्रुटि भी हो सकती है जो किसी संग्रह से निकाले गए स्रोत फ़ोल्डर को scp के साथ किसी अन्य मशीन में कॉपी कर सकती है। टाइमस्टैम्प को अद्यतन किया जा सकता है, यह सुझाव देते हुए कि पुनर्निर्माण आवश्यक है। इससे बचने के लिए, संग्रह को कॉपी करें और इसे जगह पर निकालें।


थैंक्स मोरेहू! लेकिन मुझे तब त्रुटि मिलती है: आधार / कॉलमफाइल.सीसी: 1: .base/columnfile.h:8:10: fatal error: 'kj / debug.h' फाइल में शामिल फाइल में #included <kj / डिबग नहीं मिला। .h> क्या मुझे एक फ़ाइल याद आ रही है?
लियाम फ्लिन

1
हां, आप लिबकज को याद कर रहे हैं, जो कैपन प्रोटो परियोजना का हिस्सा है। आपको libsnappy की भी आवश्यकता होगी।
मोर्टेहू

ठीक है, मेरे पास अंत में सभी neccessary tools को कॉन्फ़िगर करने, बनाने और स्थापित करने के लिए है। यह सभी काम करने लगता है, लेकिन निष्पादन योग्य कहाँ जाता है? यह निश्चित नहीं है कि यह महत्वपूर्ण है या प्रासंगिक है, लेकिन मुझे निम्न संदेश मिलता है (बहुत बड़े संदेश के हिस्से के रूप में) जब मैं स्थापित करता हूं: # नहीं एक लक्ष्य: स्थापित करें: # कमांड-लाइन लक्ष्य। # इंप्लिमेंट रूल सर्च नहीं किया गया है। # संशोधन समय की जाँच कभी नहीं। # फ़ाइल अपडेट नहीं की गई है। क्या इसका मतलब कोई आउटपुट फ़ाइल नहीं बनाई गई है?
लियाम फ्लिन

कार्यक्रम को समाप्त करना चाहिए tools/text-classifier/text-classifier। मुझे नहीं पता कि make installकाम क्यों नहीं करता है।
मोर्टेहू

यदि आप चलाते हैं तो ऐसा हो सकता है। अपने प्रोजेक्ट में कॉन्फ़िगर करें और फिर automakeपैकेज अपडेट करें
एलेक इस्तोमिन

52

अक्सर, आप किसी भी जरूरत नहीं है auto*उपकरण और आसान समाधान बस चलाने के लिए है touch aclocal.m4 configureप्रासंगिक फ़ोल्डर में (और यह भी चलाने touchपर Makefile.amऔर Makefile.inअगर वे मौजूद हैं)। यह टाइमस्टैम्प को अपडेट करेगा aclocal.m4और सिस्टम को याद दिलाएगा जो aclocal.m4अप-टू-डेट है और इसे फिर से बनाने की आवश्यकता नहीं है। ऐसा करने के बाद, यह करने के बाद खरोंच से अपनी buildनिर्देशिका और रेरून को खाली करना सबसे अच्छा है configure। मैं इस समस्या में नियमित रूप से भागता हूं। मेरे लिए, मूल कारण यह है कि मैं एक लाइब्रेरी (जैसे mpfrकोड के लिए gcc) को किसी अन्य फ़ोल्डर से कॉपी करता हूं और टाइमस्टैम्प बदल जाता है।

बेशक, यह ट्रिक मान्य नहीं है अगर आपको वास्तव में उन फ़ाइलों को फिर से बनाने की आवश्यकता है, शायद इसलिए कि आपने उन्हें मैन्युअल रूप से बदल दिया है। लेकिन उम्मीद है कि पैकेज के डेवलपर्स अप-टू-डेट फाइलें वितरित करते हैं।


और हां, यदि आप इंस्टॉल करना चाहते हैं automakeऔर दोस्तों, तो अपने वितरण के लिए उपयुक्त पैकेज-प्रबंधक का उपयोग करें।


एसीलोक स्थापित करें जो स्वचालित के साथ आता है:

brew install automake          # for Mac
apt-get install automake       # for Ubuntu

पुनः प्रयास करें:

./configure && make 

ऐसा करने के बाद मुझे मिलता है: config.ac:25: error: Autoconf संस्करण 2.69 या उच्चतर की आवश्यकता है ... चेतावनी: 'aclocal-1.15' शायद बहुत पुराना है। ... बनाओ: *** [aclocal.m4] त्रुटि 63
लियाम फ्लिन

और फिर autoconf v2.69 को स्थापित करने के बाद मुझे मिलता है: libtool: संस्करण बेमेल त्रुटि। यह libtool 2.4.2 Debian-2.4.2-1.11 है, लेकिन libtool: इस LT_INIT की परिभाषा libtool 2.4.4 से आती है। libtool: आपको aclocal.m4 को libtool 2.4.2 Debian-2.4.2-1.11 libtool से मैक्रोज़ के साथ फिर से बनाना चाहिए: और फिर से ऑटोकैनफ़ चलाना चाहिए।
लियाम फ्लिन

सुनिश्चित करें कि आपने किया है brew install libtool, फिर दौड़ें aclocal, फिर दौड़ें autoconf
इमली

मैंने libtool को अपडेट किया है लेकिन अब मुझे मिलता है: libtool: संस्करण बेमेल त्रुटि। यह libtool 2.4.2 डेबियन-2.4.2-1.11 है, लेकिन libtool: इस LT_INIT की परिभाषा libtool 2.4.6 से आती है। libtool: आपको aclocal.m4 को libtool 2.4.2 Debian-2.4.2-1.11 libtool से मैक्रोज़ के साथ फिर से बनाना चाहिए: और फिर से ऑटोकैनफ़ चलाना चाहिए।
लियाम फ्लिन

इससे समस्या हल हो जाती है। लेकिन यह आवश्यक नहीं है क्योंकि इसके लिए कई अन्य चीजों (रूट विशेषाधिकार, नेटवर्क कनेक्शन, नए सॉफ़्टवेयर के लिए अधिक स्थान आदि) की आवश्यकता होती है। नीचे Droopycon द्वारा समाधान त्रुटि संदेश के रूप में एक उचित उत्तर है (के पास) स्पष्ट रूप से कहता है कि "आपको केवल इसकी आवश्यकता तब होनी चाहिए जब आप 'config.ac' द्वारा शामिल 'acinclude.m4' या 'config.ac' या m4 फ़ाइलों को संशोधित करते हैं।" ।
२।

11

आप जिस संस्करण की आवश्यकता है उसे आसानी से स्थापित कर सकते हैं:

पहले स्रोत प्राप्त करें:

$ wget https://ftp.gnu.org/gnu/automake/automake-1.15.tar.gz

इसे अनपैक करें:

$ tar -xzvf automake-1.15.tar.gz

बनाएँ और स्थापित करें:

$ cd automake-1.15
$ ./configure  --prefix=/opt/aclocal-1.15
$ make
$ sudo mkdir -p /opt
$ sudo make install

इसका इस्तेमाल करें:

$ export PATH=/opt/aclocal-1.15/bin:$PATH
$ aclocal --version

एसलोकल (जीएनयू ऑटोमेट) 1.15

अब जब aclocal कहा जाता है, तो आपको सही संस्करण मिलता है।


इसने मेरे लिए "अक्ल" स्थापित किया। मैंने इसे "ऑटोमेक" की खोज करके और संस्करण 11-1 का चयन करके साइगविन के यूआई इंस्टॉलर के माध्यम से स्थापित किया।
justdan23

8

एक सामान्य उत्तर जो इस विशिष्ट मामले पर लागू हो या न हो:

त्रुटि संदेश संकेत के रूप में, aclocal-1.15 केवल तभी आवश्यक होना चाहिए जब आप उन फ़ाइलों को संशोधित करें जिनका उपयोग aclocal44 उत्पन्न करने के लिए किया गया था

यदि आप उन फ़ाइलों में से किसी को भी संशोधित नहीं करते हैं (जिसमें config.ac भी शामिल है) तो आपको aclocal-1.15 होने की आवश्यकता नहीं है।

मेरे मामले में, समस्या यह नहीं थी कि उन फ़ाइलों में से किसी को भी संशोधित किया गया था, लेकिन किसी भी तरह config.ac पर टाइमस्टैम्प 6 मिनट बाद aclocal.m4 की तुलना में था।

मुझे पता नहीं क्यों, लेकिन मेरे git रेपो के एक साफ क्लोन ने मेरे लिए इस मुद्दे को हल कर दिया। हो सकता है कि git से जुड़ी कोई चीज़ और इसने पहली बार में फाइलें कैसे बनाईं।

पुनरावर्ती ऑटोकैफ़ और दोस्तों के बजाय, मैं बस एक साफ क्लोन प्राप्त करने और फिर से प्रयास करना चाहूंगा ।

यह भी संभव है कि किसी ने कॉन्फ़िगर करने के लिए एक बदलाव किया हो। लेकिन aclocal.m4 को पुन: उत्पन्न नहीं किया, जिस स्थिति में आपको वास्तव में स्वचालित और दोस्तों को पुन: चलाना है।


1
अधिक उपयुक्त उत्तर। मुझे इसी तरह की त्रुटि मिली क्योंकि मैंने टार से स्रोत फाइलें नहीं निकालीं जो स्क्वीड द्वारा प्रदान की गई हैं। इसके बजाय मैंने पहले से ही निकाले गए फ़ोल्डर की प्रतिलिपि बनाई और फ़ाइल को कॉपी करने का मेरा क्रम अलग था जिससे त्रुटि हुई। मैंने बस सीधे टार से फिर से निकाला और यह काम करना शुरू कर दिया। मैं Droopycon द्वारा एक उचित जवाब द्वारा समाधान को चिह्नित करूंगा, एक मौका दिया जाएगा।
२।

प्रतिभाशाली! मैंने rsyncटाइमस्टैम्प को संरक्षित किए बिना पहले से ही निकाली गई फ़ाइलों को एक सर्वर से दूसरे (संपीड़ित स्रोत अभिलेखागार की प्रतिलिपि बनाने के लिए) की प्रतिलिपि बनाने के लिए उपयोग किया था । जब मैंने इसके बजाय स्रोत अभिलेखागार की प्रतिलिपि बनाई, और उन्हें लक्ष्य मशीन पर निकाला, तो समस्या नहीं हुई। धन्यवाद!
बेन जॉनसन

वास्तव में, बहुत बार इसका उत्तर "चेकआउट द रेपो फ्रेश" होता है। शानदार जवाब और भरपूर!
Fattie

6

ऑटोटूलस का पूरा बिंदु एक आर्कान एम 4-मैक्रो-आधारित भाषा प्रदान करना है जो अंततः शेल स्क्रिप्ट को संकलित करता है ./configure। आप स्रोत कोड के साथ इस संकलित शेल स्क्रिप्ट को शिप कर सकते हैं और उस स्क्रिप्ट को पर्यावरण का पता लगाने और बिल्डिंग के लिए कार्यक्रम तैयार करने के लिए सब कुछ करना चाहिए। ऑटोटूलस को केवल उसी व्यक्ति की आवश्यकता होनी चाहिए जो परीक्षणों को मोड़ना चाहता है और उस शेल स्क्रिप्ट को रीफ्रेश करना चाहता है।

यह ऑटोटॉल्स के बिंदु को हरा देता है यदि GNU This और GNU को काम करने के लिए सिस्टम पर स्थापित किया जाना है। मूल रूप से, यह विभिन्न यूनिक्स प्रणालियों के कार्यक्रमों की पोर्टिंग को सरल बनाने के लिए आविष्कार किया गया था, जिनके बारे में कुछ भी नहीं गिना जा सकता था। यहां तक ​​कि उत्पन्न शेल कोड द्वारा उपयोग किए जाने वाले निर्माणों ./configureको यह सुनिश्चित करने के लिए बहुत सावधानी से चुना जाना चाहिए कि वे हर जगह हर टूटे हुए पुराने शेल पर काम करेंगे।

आपके द्वारा चलाए जा रहे समस्या के कारण लोगों द्वारा आविष्कार किए गए कुछ टूटे हुए मेकफाइल चरणों के कारण है जो बस यह नहीं समझते हैं कि ऑटोटूलस क्या है और अंतिम ./configureस्क्रिप्ट की भूमिका क्या है ।

वर्कअराउंड के रूप में, आप मेकफाइल में जा सकते हैं और इसे बाहर निकालने के लिए कुछ बदलाव कर सकते हैं। एक उदाहरण के रूप में, मैं GNU Awk के Git प्रमुख का निर्माण कर रहा हूं और इसी समस्या में चल रहा हूं। Makefile.inहालाँकि, मैंने इस पैच को लागू किया , और मैं लगातार कर सकता हूँ make gawk:

diff --it / a / Makefile.in b / Makefile.in

index 5585046..b8b8588 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -312,12 +312,12 @@ distcleancheck_listfiles = find . -type f -print

 # Directory for gawk's data files. Automake supplies datadir.
 pkgdatadir = $(datadir)/awk
-ACLOCAL = @ACLOCAL@
+ACLOCAL = true
 AMTAR = @AMTAR@
 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
+AUTOCONF = true
+AUTOHEADER = true
+AUTOMAKE = true
 AWK = @AWK@
 CC = @CC@
 CCDEPMODE = @CCDEPMODE@

मूल रूप से, मैंने चीजों को बदल दिया ताकि हानिरहित trueशेल कमांड को सभी ऑटो-सामान कार्यक्रमों के लिए प्रतिस्थापित किया जाए।

Gawk के लिए वास्तविक बिल्ड चरणों को ऑटो-सामान की आवश्यकता नहीं है! यह केवल कुछ नियमों में शामिल है जो ऑटो-सामान के कुछ हिस्सों को बदलने और फिर से संसाधित किए जाने की आवश्यकता होने पर आह्वान किया जाता है। हालाँकि, Makefile को इस तरह संरचित किया जाता है कि यदि उपकरण मौजूद न हों तो यह विफल हो जाता है।

उपरोक्त पैच से पहले:

$ ./configure
[...]
$ make gawk
CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/bash /home/kaz/gawk/missing aclocal-1.15 -I m4
/home/kaz/gawk/missing: line 81: aclocal-1.15: command not found
WARNING: 'aclocal-1.15' is missing on your system.
         You should only need it if you modified 'acinclude.m4' or
         'configure.ac' or m4 files included by 'configure.ac'.
         The 'aclocal' program is part of the GNU Automake package:
         <http://www.gnu.org/software/automake>
         It also requires GNU Autoconf, GNU m4 and Perl in order to run:
         <http://www.gnu.org/software/autoconf>
         <http://www.gnu.org/software/m4/>
         <http://www.perl.org/>
make: *** [aclocal.m4] Error 127

पैच के बाद:

$ ./configure
[...]
$ make gawk
CDPATH="${ZSH_VERSION+.}:" && cd . && true -I m4
CDPATH="${ZSH_VERSION+.}:" && cd . && true
gcc -std=gnu99 -DDEFPATH='".:/usr/local/share/awk"' -DDEFLIBPATH="\"/usr/local/lib/gawk\"" -DSHLIBEXT="\"so"\" -DHAVE_CONFIG_H -DGAWK -DLOCALEDIR='"/usr/local/share/locale"' -I.     -g -O2 -DNDEBUG -MT array.o -MD -MP -MF .deps/array.Tpo -c -o array.o array.c 
[...]
gcc -std=gnu99  -g -O2 -DNDEBUG  -Wl,-export-dynamic -o gawk array.o awkgram.o builtin.o cint_array.o command.o debug.o dfa.o eval.o ext.o field.o floatcomp.o gawkapi.o gawkmisc.o getopt.o getopt1.o int_array.o io.o main.o mpfr.o msg.o node.o profile.o random.o re.o regex.o replace.o str_array.o symbol.o version.o      -ldl -lm
$ ./gawk --version
GNU Awk 4.1.60, API: 1.2
Copyright (C) 1989, 1991-2015 Free Software Foundation.
[...]

हम वहाँ चलें। जैसा कि आप देख सकते हैं, CDPATH=वहां की कमांड लाइन वहां हैं जहां ऑटो-सामान को आमंत्रित किया जा रहा था, जहां आप trueकमांड देखते हैं । ये सफल समापन की रिपोर्ट करते हैं, और इसलिए यह केवल रद्दी किए गए निर्माण को करने के लिए उस कबाड़ के माध्यम से गिरता है, जो पूरी तरह से कॉन्फ़िगर किया गया है।

मैंने किया make gawkक्योंकि कुछ उपनिर्देशिकाएं हैं जो निर्मित होती हैं जो विफल हो जाती हैं; उनके संबंधित मेकफाइल्स के लिए चाल को दोहराया जाना चाहिए।

यदि आप अपने डेवलपर्स से कार्यक्रम के आधिकारिक तारबंदी के साथ इस तरह की बात कर रहे हैं, तो शिकायत करें। यह सिर्फ अनपैक करना चाहिए, ./configureऔर आपके makeबिना कुछ भी पैच करने या किसी भी स्वचालित या ऑटोकॉनफ सामग्री को स्थापित करने के लिए।

आदर्श रूप में, उनके सिर के एक पुल को भी इस तरह से व्यवहार करना चाहिए।


क्यों आप मानते हैं कि मेकफाइल्स टूट गए हैं? जैसा कि एमलाई के जवाब में बताया गया है कि निर्माण प्रणाली यह मानती है कि उत्पन्न फ़ाइलों के लिए निर्भरताएँ पुरानी हैं (जो केवल खराब हो चुके टाइमस्टैम्प का मामला हो सकता है जिसे आप touchआईएनजी द्वारा ठीक कर सकते हैं)। यह कहते हुए कि इस प्रणाली को बनाने वाले लोगों को यह समझ में नहीं आता है कि इसके लिए क्या बनाया गया था (यह सुनिश्चित करना कि आप सभी निर्भरताओं के साथ सही निर्माण करें - जिसमें -पार्ट्स शामिलauto* हैं यदि वे बदले गए हैं) और प्रभावी रूप से मेकफाइल्स को बदलना यह पूरी तरह से नहीं करता है अधिक लगता है ... गलत।
साइमन सोबिश

@SimonSobisch आप इस समस्या है और जवाब का उपयोग करने में सक्षम नहीं हैं?
कज़

पूछने के लिए धन्यवाद। नहीं, मुझे यह समस्या नहीं है लेकिन आपकी पोस्ट पढ़ने से मुझे नीचे की पंक्ति दिखाई देती है "यह त्रुटि इसलिए होती है क्योंकि Makefiles टूट गए हैं और क्या Makefiles नहीं होने चाहिए" - जबकि Makefiles बिल्कुल वही कर रहे हैं जो उन्हें (पुनर्निर्माण फ़ाइलों की आवश्यकता है) एक ही नियम के अनुसार पुनर्निर्माण किया जा करने के लिए एक वस्तु फ़ाइल एक सी स्रोत से पुनर्निर्माण किया जाएगा)। ज्यादातर मामलों में त्रुटि इसलिए होती है क्योंकि लोग आवश्यक उपकरणों के बिना गैर-डिस्टर्ब पैकेज का उपयोग करते हैं या स्रोतों से टाइम-स्टांप टूट जाते हैं "लेखक से शिकायत करें"।
साइमन सोबिश

मैं कभी भी टूल को बदलने की अनुशंसा नहीं करूंगा true। यदि आप वास्तव में "टूटे हुए भागों" को ठीक करना चाहते हैं, तो टाइमस्टैम्प " make --touchविफल लक्ष्यों के खिलाफ बेहतर रन (यदि आप make --keep-goingपहले से टूटे हुए भागों की सूची पाने के लिए उन्हें चलाना चाहते हैं )।
साइमन सोबिस्क

@SimonSobisch महान सुझाव; लगता है कि तुम वहाँ एक अलग जवाब की शुरुआत है। इस मामले में उपकरण को बदलना trueतर्कसंगत रूप से इस तथ्य से उचित है कि उन उपकरणों को प्रोग्राम बनाने के लिए अनावश्यक है, लेकिन केवल configureस्क्रिप्ट को फिर से बनाने के लिए , जो पहले से ही निर्मित रूप में उपलब्ध है। टूल को चलाने के प्रयासों को दबाने के लिए टाइमस्टैम्प को छूने से समान प्रभाव प्राप्त होता है।
कज़

4

मुझे लगता है कि टच कमांड सही उत्तर है जैसे कुछ करना

touch --date="`date`" aclocal.m4 Makefile.am configure Makefile.in

[./configure && बनाने से पहले]।

साइडबार I: अन्यथा, मैं @kaz से सहमत हूं: aclocal.m4 और / या के लिए निर्भरता जोड़ना और / या Makefile.am और / या Makefile.in लक्ष्य प्रणाली के बारे में धारणा बनाता है जो अमान्य हो सकता है। विशेष रूप से, वे धारणाएँ हैं

1) कि सभी लक्ष्य प्रणालियों में ऑटोटूल हैं,

2) कि सभी लक्ष्य प्रणालियों में ऑटोटूल का एक ही संस्करण है (उदाहरण के लिए इस मामले में auto.1.15)।

3) कि अगर या तो (1) या (2) किसी भी उपयोगकर्ता के लिए सही नहीं है, कि उपयोगकर्ता एक अनुरक्षक-निर्मित TAR या ज़िप प्रारूप से पैकेज निकाल रहा है जो प्रासंगिक फाइलों के टाइमस्टैम्प को बनाए रखता है, जिस स्थिति में सभी ऑटोटूल / कॉन्फ़िगर करें /Makefile.am/Makefile.in कॉन्फ़िगर-जनरेटेड मेकफाइल में निर्भरता मेक कमांड जारी होने से पहले संतुष्ट हो जाएगी ।

कई मैक सिस्टम पर दूसरी धारणा विफल हो जाती है क्योंकि ओटोमेक्स.1.14 OSX के लिए "नवीनतम" है (कम से कम जो मैं मैकपोर्ट्स में देख रहा हूं, और जाहिर तौर पर वही काढ़ा के लिए सच है)।

तीसरी धारणा गिथूब के साथ एक दुनिया में शानदार ढंग से विफल हो जाती है। यह विफलता "सभी को लगता है कि वे आदर्शवादी हैं" मानसिकता का एक उदाहरण है; विशेष रूप से, अनुचर, जो केवल उपयोगकर्ताओं के वर्ग हैं जिन्हें Makefile.am को संपादित करने की आवश्यकता है, ने अब सभी को उस वर्ग में डाल दिया है

शायद ऑटोहैटेवर में एक विकल्प है जो इन निर्भरताओं को Makefile.in और / या Makefile में जोड़े जाने से बचाता है।

साइडबार II [Why @kaz is right]: बेशक यह स्पष्ट है, मेरे लिए और अन्य कॉग्नोसेन्ट्री के लिए, पुन: चलने वाले कॉन्फ़िगर और ऑटोटूल से कॉन्फ़िगर-निर्मित मेकफाइल को मूर्ख बनाने के लिए [टच] कमांड के एक क्रम को आज़माने के लिए। लेकिन यह कॉन्फ़िगर की बात नहीं है; कॉन्फ़िगर करने की बात यह है कि जितने संभव हो उतने अलग-अलग सिस्टम पर जितने भी उपयोगकर्ता हैं, बस यह सुनिश्चित करें कि [.configure && make] करें और आगे बढ़ें; अधिकांश उपयोगकर्ता "शेविंग द याक" में रुचि नहीं रखते हैं, जैसे ऑटोटूलर्स डेवलपर्स की दोषपूर्ण मान्यताओं को डीबग करना।

साइडबार III: यह तर्क दिया जा सकता है कि ./configure, अब जब ऑटोटूलस इन निर्भरताओं को जोड़ता है, तो गिथब-वितरित पैकेज के साथ उपयोग करने के लिए गलत बिल्ड टूल है।

साइडबार IV: शायद कॉन्फिग-बेस्ड गितुब रेपो को आवश्यक टच कमांड को उनके रीडमे में रखना चाहिए, जैसे https://github.com/drbitboy/Tycho2_SQLite_RTree


4

2018, अभी तक एक और समाधान ...

https://github.com/apereo/mod_auth_cas/issues/97

में कुछ मामलों बस चल

$ autoreconf -f -i

और कुछ नहीं .... समस्या हल करती है।

आप निर्देशिका में ऐसा करते हैं /pcre2-10.30

कितना बुरा सपना।

(यह आमतौर पर था नहीं 2017 में समस्या का समाधान है, लेकिन अब आम तौर पर करता है समस्या का समाधान करने लगते हैं - वे कुछ तय इसके अलावा, ऐसा लगता है अपने Dockerfile अब आम तौर पर "से ibmcom / तेज-ubuntu" के साथ शुरू करना चाहिए, जैसा कि पहले आप को देने के लिए किया था। एक निश्चित संस्करण / देव-निर्माण यह काम करने के लिए।)


2

समस्या automakeपैकेज नहीं है, रिपॉजिटरी है

sudo apt-get install automake

संस्करण स्थापित करता है aclocal-1.4, यही कारण है कि आप नहीं पा सकते हैं 1.5(Ubuntu 14,15 में)

नवीनतम https://github.com/gp187/nginx-builder/blob/master/fix/aclocal.sh को स्थापित करने के लिए इस स्क्रिप्ट का उपयोग करें


0

2017 - हाई सिएरा

मैक पर काम करते हुए ऑटोकॉन्फ़ 1.15 प्राप्त करना वास्तव में कठिन है। हमने इसे काम करने के लिए एक विशेषज्ञ को काम पर रखा है। सब कुछ खूबसूरती से काम किया।

बाद में मैं मैक को हाई सिएरा में अपग्रेड करने के लिए हुआ।

डॉकर पाइपलाइन ने काम करना बंद कर दिया!

यहां तक कि autoconf 1.15 हालांकि है मैक पर ठीक काम कर रहा।

कैसे ठीक करना है,

संक्षिप्त उत्तर, मैंने बस स्थानीय रेपो को ट्रैश किया, और रेपो को फिर से जांचा।

यह सुझाव इस QA पृष्ठ और अन्य जगहों पर मिश्रण में दिया गया है।

यह तो ठीक काम किया!

यह aclocal.m4 और इसी तरह की फ़ाइलों के साथ कुछ करने की संभावना है । (लेकिन वास्तव में कौन जानता है)। मैंने उन फाइलों की अंतहीन मालिश की ... लेकिन कुछ भी नहीं।

किसी अज्ञात कारण से यदि आप अपने रेपो को खरोंचते हैं और रेपो को फिर से प्राप्त करते हैं: सब कुछ काम करता है!

मैंने घंटों तक हर कॉम्बो को छूने / हटाने आदि के लिए कोशिश की। बस खरोंच से रेपो की जांच करें!


अपने चेकआउट राज्य में एक ऑटोमैटिक रेपो वापस पाने के लिए आप यह कर सकते हैं: "डिस्टक्लेन बनाओ"।
फ्रेडरिक ओलिंगर

तकनीकी रूप से यह एक git कमांड नहीं है। ./Configure के बाद एक रिपॉजिटरी को साफ करना है। तो यह स्वचालित का हिस्सा है। लेकिन यह किसी भी गिट रिपॉजिटरी पर काम करना चाहिए जो ऑटोमेटेक का उपयोग करता है।
फ्रेडरिक ओलिंगर

gotchya, यह एक महान टिप की तरह लगता है।
फेटी

"मैक पर काम करते हुए ऑटोकैन्फ़ 1.15 प्राप्त करना वास्तव में कठिन है। हमने इसे प्राप्त करने के लिए एक अल्ट्रा-एक्सपर्ट को काम पर रखा है ..." - यह बताता है कि यह टूलचिन कितना टूटा हुआ है। और दुख की बात है कि 20+ वर्षों में, यह तय नहीं किया गया है। इसे ठीक नहीं करना वह चीज है जिसके लिए मैं अपवाद लेता हूं। इसे छोड़ने के लिए क्या उद्देश्य है ताकि लोग इसका उपयोग न कर सकें?
jww
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.