这里是我的情况:
我使用的Ubuntu 10.04 (清醒山猫)。 该系统的默认的Python是v2.6.5,但我需要的Python V2.7。 所以,我下载了python.org源,并试图安装它。
我第一次安装了它,我跑:
cd Python2.7.4
./configure --prefix=/usr
make
su root
make install
这将安装Python 2.7版到我的系统。 这将创建一个链接, “巨蟒”,在/usr/bin
链接到python2.7
也是/usr/bin
。 所以,当我键入>python
,系统将启动的Python 2.7.4当我输入我只是想>python2.7
。
但是,当我安装是这样的:
cd Python2.7.4
./configure --prefix=/usr
make
su root
make altinstall
在链接“巨蟒” /usr/bin
仍然存在并链接到python2.6
是默认的系统版本。 当然,我可以将其删除,并创建一个新的软链接链接到python2.7
。
是什么“让安装”和“让altinstall”,除了在链接命令的区别/usr/bin
?
让我们来看看生成的Makefile文件!
首先,安装目标:
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
,它只是创造了“无版本的”链接到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
跳过创建python
链接和手动网页的链接, install
将隐藏的系统二进制文件和手册页。