2013-04-15 2 views
31

यहाँ मेरी मामला है:अंतर

मैं ubuntu10.04 और सिस्टम का डिफॉल्ट अजगर का उपयोग कर रहा 2.6.5 है। लेकिन मुझे अजगर संस्करण 2.7 की आवश्यकता है। तो मैंने python.org से स्रोत डाउनलोड किया और इसे स्थापित करने का प्रयास किया।

cd Python2.7.4 
./configure --prefix=/usr 
make 
su root 
make install 

यह मेरा प्रणाली में python2.7 स्थापित हो जाएगा, यह एक लिंक "अजगर"/usr/bin में में भी python2.7 को जोड़ने का निर्माण करेगा:

यहाँ पहली बार मैं इसे स्थापित है/usr/bin। तो जब मैं> पायथन टाइप करता हूं, तो सिस्टम मेरे लिए पाइथन 2.7.4 शुरू करेगा जैसे कि मैं टाइप करता हूं> python2.7।

लेकिन अगर मैं इस तरह से स्थापित:

cd Python2.7.4 
./configure --prefix=/usr 
make 
su root 
make altinstall 

लिंक "अजगर" में/usr/bin अभी भी मौजूद है और python2.6 को जोड़ने जो सिस्टम का डिफॉल्ट संस्करण है। बेशक मैं इसे हटा सकता हूं और python2.7 से जोड़ने वाला एक नया सॉफ्ट लिंक बना सकता हूं।

मेरा प्रश्न यह है कि/usr में लिंक को छोड़कर "इंस्टॉल करें" और "alt altinstall" कमांड के बीच क्या अंतर है?

अग्रिम धन्यवाद।

उत्तर

53

चलिए जेनरेट मेकफ़ाइल पर नज़र डालें!

पहले, स्थापित लक्ष्य:

install:   altinstall bininstall maninstall 

यह सब कुछ altinstall, करता bininstall

साथ और maninstall यहाँ bininstall है साथ, यह सिर्फ python और अन्य सांकेतिक लिंक बनाता है।

# Install the interpreter by creating a symlink chain: 
# $(PYTHON) -> python2 -> python$(VERSION)) 
# Also create equivalent chains for other installed files 
bininstall:  altbininstall 
     -if test -f $(DESTDIR)$(BINDIR)/$(PYTHON) -o -h $(DESTDIR)$(BINDIR)/$(PYTHON); \ 
     then rm -f $(DESTDIR)$(BINDIR)/$(PYTHON); \ 
     else true; \ 
     fi 
     (cd $(DESTDIR)$(BINDIR); $(LN) -s python2$(EXE) $(PYTHON)) 
     -rm -f $(DESTDIR)$(BINDIR)/python2$(EXE) 
     (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)$(EXE) python2$(EXE)) 
     ... (More links created) 

और यहाँ maninstall है, यह सिर्फ बनाता है अजगर के मैनुअल पृष्ठों के लिए "unversioned" लिंक।

# Install the unversioned manual pages 
maninstall:  altmaninstall 
     -rm -f $(DESTDIR)$(MANDIR)/man1/python2.1 
     (cd $(DESTDIR)$(MANDIR)/man1; $(LN) -s python$(VERSION).1 python2.1) 
     -rm -f $(DESTDIR)$(MANDIR)/man1/python.1 
     (cd $(DESTDIR)$(MANDIR)/man1; $(LN) -s python2.1 python.1) 

Tl, डॉ: altinstall स्किप के python लिंक बनाने और मैनुअल पृष्ठों लिंक, install प्रणाली बाइनरी और मैनुअल पृष्ठों छुपा देगा।

+0

ठीक है, यह उत्तर अच्छा है और मैं समझता हूं। धन्यवाद। मेरे पास एक और सवाल है कि आपने अभी "मैन्युअल पेज" बनाने के लिए "मुख्य स्थापना" का उपयोग किया है। "मैन्युअल पेज" के लिए आपका क्या मतलब है? "मैन पायथन" कमांड का नतीजा? – qiuhan1989

+2

बिल्कुल, 'मैन' प्रोग्राम स्थापित होने पर स्थापित मैन्युअल पृष्ठों की तलाश करता है। 'Altinstall' चलाने के बाद 2.7 मैन पेजों को देखने के लिए, आपको' मैन पायथन 2.7' – Collin

+0

ठीक, बहुत स्पष्ट उत्तर का उपयोग करना होगा! आपका बहुत बहुत धन्यवाद! – qiuhan1989