差异的细节之间的“使安装”和“让altinstall”(Difference in details

2019-08-31 06:18发布

这里是我的情况:

我使用的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

Answer 1:

让我们来看看生成的Makefile文件!

首先,安装目标:

install:         altinstall bininstall maninstall

但这一切altinstall确实,随着bininstallmaninstall

这里的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将隐藏的系统二进制文件和手册页。



文章来源: Difference in details between “make install” and “make altinstall”