私の場合は次のとおりです。
buntu 10.04 (Lucid Lynx)を使用しています。システムのデフォルトの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
にリンクするリンク "python"を/usr/bin
にも作成します。したがって、>python
と入力すると、>python2.7
と入力したときと同じように、システムはPython 2.7.4を開始します。
しかし、この方法でインストールする場合:
cd Python2.7.4
./configure --prefix=/usr
make
su root
make altinstall
/usr/bin
のリンク「python」はまだ存在し、デフォルトのシステムバージョンであるpython2.6
へのリンクです。もちろん、それを削除して、python2.7
にリンクする新しいソフトリンクを作成できます。
/usr/bin
のリンクを除き、コマンド「make install」と「make altinstall」の違いは何ですか?
生成された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
はシステムバイナリとマニュアルページを非表示にします。