मैंने हमेशा सोचा था कि $HOME
और ~
बिल्कुल वही थे और इस प्रकार एक दूसरे के लिए उपयोग किया जा सकता था। आज, जब मैं अपने साझा सर्वर पर pylibmc, एक अजगर memcached के लिए बाध्य, स्थापित करने के लिए करने की कोशिश की ~
के उपयोग मुझे त्रुटि दिया था, लेकिन नहीं $HOME
। मैं तर्क देना चाहता हूं क्यों।
libmemcachedpylibmc के लिए एक आवश्यकता है। मेरे पास libmemcached स्थापित है मेरी होम निर्देशिका के तहत क्योंकि मेरे पास सर्वर पर कोई रूट नहीं है। नतीजतन, pylibmc इंस्टॉल करें, मुझे यह सुनिश्चित करना होगा कि इंस्टॉलेशन स्क्रिप्ट जानता है कि libmemcached खोजें।
जब python setup.py install --with-libmemcached=~
को क्रियान्वित करने, स्थापना स्क्रिप्ट
gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall \ -Wstrict-prototypes -fPIC -DUSE_ZLIB -I~/include \ -I/usr/local/include/python2.7 -c _pylibmcmodule.c \ -o build/temp.linux-i686-2.7/_pylibmcmodule.o -fno-strict-aliasing
जो त्रुटियों libmemcached कि नहीं पाया जा सकता है देता है चलाता है।
अगर मैं --with-libmemcached=$HOME
को बदलने के लिए, स्क्रिप्ट
gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall \ -Wstrict-prototypes -fPIC -DUSE_ZLIB -I/home/waterbotte/include \ -I/usr/local/include/python2.7 -c _pylibmcmodule.c \ -o build/temp.linux-i686-2.7/_pylibmcmodule.o -fno-strict-aliasing
चलाता है किसी भी समस्या के बिना। ऐसा लगता है कि समस्या यह है कि टिल्डे को हल नहीं किया जाता है। पर क्यों?
मैं टिल्ड को कमांड लाइन सुविधा मानता हूं। स्क्रिप्ट में, '$ HOME' का हमेशा उपयोग किया जाना चाहिए। –