Voici mon cas:
J'utilise buntu 10.04 (Lucid Lynx). La valeur par défaut du système Python est v2.6.5, mais j'ai besoin de Python v2.7. J'ai donc téléchargé la source depuis python.org et essayé de l'installer).
La première fois que je l'ai installé, j'ai couru:
cd Python2.7.4
./configure --prefix=/usr
make
su root
make install
Cela installe Python 2.7 sur mon système. Il créera un lien, "python", dans /usr/bin
lien vers python2.7
aussi dans /usr/bin
. Alors quand je tape >python
, le système démarrera Python 2.7.4 pour moi comme lorsque je tape >python2.7
.
Mais quand j'installe de cette façon:
cd Python2.7.4
./configure --prefix=/usr
make
su root
make altinstall
Le lien "python" dans /usr/bin
existe toujours et des liens vers python2.6
qui est la version système par défaut. Bien sûr, je peux le supprimer et créer un nouveau lien logiciel menant à python2.7
.
Quelle est la différence entre la commande "make install" et "make altinstall", à l'exception du lien dans /usr/bin
?
Jetons un coup d'œil au Makefile généré!
Tout d'abord, la cible d'installation:
install: altinstall bininstall maninstall
Il fait tout altinstall
, avec bininstall
et maninstall
Voici bininstall
; il crée simplement le python
et d'autres liens symboliques.
# 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)
Et voici maninstall
, il crée simplement des liens "non versionnés" vers les pages de manuel Python.
# 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)
TLDR: altinstall
ignore la création du lien python
et des liens des pages de manuel, install
masquera les fichiers binaires du système et les pages de manuel.