2016-06-18 23 views
1

"sudo make install"でインストールされたプログラムをアップデートする方法を教えてください。 私はプログラムをアンインストールしてから "./autogen.sh"を "make" "sudo make install"を実行する必要があるかどうか尋ねています。私がプログラムを削除してからgit pull、私は単に更新されたソースを使用して再インストールすることができます。ソースから構築されたプログラムをアップデートするには

答えて

1

単純にマイナーアップデートすれば、再コンパイルとmake installに行きます。

付属のライブラリファイルやヘッダーファイルに変更が加えられた場合(名前が変更されたなど)、ソフトウェアをまずアンインストールしてファイルシステム上の不要なファイルを取り除くことをお勧めします。

+0

ありがとうございます。ですから、毎回変更をチェックして決定する必要がありますか? – Fabiuz99

+0

@ Fabiuz99あなたはそれを複雑にしています。ちょうど 'make install'より新しいバージョンです。何か問題がある場合は、 'make uninstall'を実行して再インストールしてください。 –

+0

私はgitでインストールされたプログラムを更新するためにスクリプトを使用していますが、単にインクルードするとプログラムをインストールまたは削除してから再インストールする必要がありません。あなたの答えから、私は第二の選択肢がより良いことを理解しています – Fabiuz99

0

(通常)make uninstallはありません。

私はこのようなソフトウェアをソフトウェアとそのバージョン番号にちなんで名付けられた別のディレクトリにインストールするのはこのためです。例えば、ソースからGNU Make 4.1をインストールする場合、それをディレクトリmake-4.1にインストールします。

次に、関連するすべてのファイルを、私が$PATH$MANPATHなどで使用する共通のディレクトリツリーにシンボリックリンクします。私はそれを行うために私自身のスクリプトを使用しますが、それは私がそれを書いたときにstowについて知らなかったためです。

これにより、複数のバージョンを並べてインストールし、問題のシンボリックリンクを削除してスクリプトに追加することで、「現在の」バージョンを選択することができます。ディレクトリツリーを削除するだけで、ソフトウェアをアンインストールできます。

これは、この方法でもインストールする必要がある依存関係を持つソフトウェアでも機能します。最も難しいのは、依存関係をバージョン固有にするかどうかを決めることです。

1

実際には自分でインストールしたプログラムをデフォルトの場所にアンインストールするのは難しいです。非常に運が良ければmakeuninstallまたはdeinstallのターゲットがありますが、ほとんどの時間はありません。同じバージョンのコードをもう一度インストールし直して、実際にどこが終わっているのかを常に把握していない限り、ファイルを手作業で削除して削除するのはおそらく問題です(これは「ハンティング・ダウン」のほうがはるかに簡単です)将来的には

、あなたは違ったことを行うことを選択することがあります。GNU configureスクリプトを使用しています ほとんどのソースディストリビューションは、あなたが--prefix=pathを使用して、インストールのための接頭を指定することができます。これにより、別のサブディレクトリにインストールすることができます。これは削除が簡単です。

$ ./configure --prefix=/usr/local/stow/thepackage-14.4 
$ make && sudo make install 

(私は通常$HOME/local/stowの下にパスを使用)

お知らせそこにstow:たとえば

は、バージョン14.4、のは、私がThePackageと呼ばれるソフトウェアの架空の作品を設置していましょうか!正確にこれと呼ばれる純粋なユーティリティ、available from the GNU peopleがあることは偶然ではありません。例えば、/usr/local/stow/thepackage-14.4/binにおける任意の実行が/usr/local/bin(等で利用可能であるように、上記のようにソフトウェアをインストールした後

は、.../stow/thepackage-14.4下で、それは単に

$ cd /usr/local/stow 
$ sudo stow -v thepackage-14.4 

の問題だこれはシンボリックリンクを/usr/localを移入しますアンインストールするには)

$ cd /usr/local/stow 
$ sudo stow -D -v thepackage-14.4 
$ sudo rm -rf thepackage-14.4 

これもあなたが許しますいくつかのソフトウェアのいくつかのバージョンを/usr/local/stowの下にインストールすること。特定のバージョンを「有効にする」には、使用しているバージョンがstow -Dで、テストするものはstowとなります。要件を満たしていない新しいバージョンの場合は、アクションを元に戻します。

別のビルドシステムを別のプレフィックスの下にインストールすることもできます。例えば、CMakeのは、上記のようにインストールするために、あなたはまた、Perlのパッケージとstowを使用し、それ以外のものは何でもカスタマイズ可能なパスにインストールすることができます

$ cmake -DCMAKE_INSTALL_PREFIX=/usr/local/stow/thepackage-14.4 
$ make && sudo make install 

を使用しています。

関連する問題