[解決済み] make installとmake altinstallの違いについて
質問
以下は私の場合です。
私は Ubuntu 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をインストールします。Python"というリンクが
/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
の中のリンク "python"をクリックします。
/usr/bin
はまだ存在し
python2.6
にリンクしています。もちろん、これを削除し、新しいソフトリンクを作成して
python2.7
.
のリンクを除けば、"make install" と "make 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 マニュアルページへの "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)
TLDR
altinstall
を作成するのをスキップします。
python
リンクとマニュアルページのリンクの作成を省略します。
install
はシステムバイナリとマニュアルページを隠します。
関連
-
[解決済み】コマンドラインからmakeに追加の変数を渡す場合
-
[解決済み] Windowsにpipをインストールするにはどうしたらいいですか?
-
[解決済み] GNU Makefile の変数割り当て =, ?=, :=, += の違いは何ですか?
-
[解決済み] makefilesに複数行のコメントを追加する方法
-
[解決済み] makeファイルによるディレクトリの作成
-
[解決済み] mkdir を使っているときに makefile で "directory already exists error" を防ぐには?
-
[解決済み] GNU makeで再帰的ワイルドカード?
-
[解決済み] GNU make: ジョブの数はシステムの CPU コアの数と同じであるべきか?
-
[解決済み] GNU make で、複数の拡張子を持つリストの各ファイルの拡張子を変更するには?
-
[解決済み] Makefile - セパレータがない [重複].
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] makefilesに複数行のコメントを追加する方法
-
[解決済み] 1つのソースファイルからいくつかのターゲットを生成するGNU Makefileルール
-
[解決済み] mkdir を使っているときに makefile で "directory already exists error" を防ぐには?
-
[解決済み] メイクファイル ifeq 論理的または
-
[解決済み] GNU makeで再帰的ワイルドカード?
-
[解決済み] GNU makeのゴール/ターゲットのうち、定義に変数を含むものをリストアップする
-
[解決済み] GNU make で、複数の拡張子を持つリストの各ファイルの拡張子を変更するには?
-
[解決済み] 別ファイルの内容を読み込んでmakefileに変数を作成する
-
[解決済み] ifeq の Make エラー: 予期しないトークン付近のシンタックスエラー
-
[解決済み] Makefile - セパレータがない [重複].