ローカル環境向けディレクトリ /usr/local にインストールすれば、全てのユーザーがソフトウェアを使用できます。
または、ユーザのホームディレクトリなどを使いましょう。
通常は、下の項目の手順で実行できます。が、異なる場合もあります。
事前にソフト付属のドキュメント (README, INSTALL など) やオンラインドキュメントを見て実行しましょう。
ホームディレクトリとかでアーカイブを展開。
tar zxvf [圧縮されたファイル]
tar jxvf [圧縮されたファイル]
configure スクリプトがある場合は、
./configure --help
と入力してオプションを確認して、オプションを設定する。
./configure [オプション]
/usr/local にインストールするなら --prefix=/usr/local、ホームディレクトリなら --prefix=$HOME という感じでオプションをつける。
システムを一通り調査したあとでMakefileができます。
Makefile のみの場合は、Makefile の中を確認して必要なら編集する。
ビルドは README などで指示がなければ、make と入力するだけです。ソフトの規模(とマシンの速度)によって数分〜数時間と時間にバラつきがあるので気長に待ちましょう。
ビルドが終了するとシェルに戻ります。シェルに戻っていても、直前に *** Error *** など表示されていれば、途中でエラーが出て中断しているので、README を読み直したり、ソースや Makefile などを見て原因を探ってみてください。
/usr/local に保存するなら root で作業する必要があるので、su で root になって make install でインストール。
ホームディレクトリならそのまま make install と入力します。
以下のようなエラーが出る場合。
hoge: error while loading shared libraries: libfuga.so.0 : cannot open shared object file: No such file or directory
依存関係や設定問題を自動で解決できるパッケージシステムではこういった問題はあまり発生しませんが、ソースからコンパイルしてライブラリを入れた場合に起きることがたまにあります。
/etc/ld.so.conf にライブラリの存在するディレクトリ (ソースから入れた場合は /usr/local/lib) が記述されていますか? Red Hat系のディストリビューションでは記述がない場合があります。
記述がない場合は追加して、root で ldconfig と入力しましょう。ライブラリのキャッシュが再構築されて /usr/local/lib にある共有ライブラリも見つけられるようになります。
まあ、以下の内容が書いてあれば大抵の場合は大丈夫でしょう。
/lib /usr/lib /usr/X11R6/lib /usr/local/lib
ソースを展開したディレクトリで patch -p1 < パッチのファイル名 と入力。これでだいたいok。
gzipやbzip2で圧縮されていたら
zcat パッチ | patch -p1 #拡張子*.gz bzcat パッチ | patch -p1 #拡張子*.bz
で、たぶん大丈夫。
ソースから入れたソフトはインストールしたファイルを一つ一つ手で消すのがキホソ。 がんがれ。;)
楽するための Tips
paco を使うと、make install でインストールしたソフトを削除できます。
参考: paco——インストールの監視
参考: paco
make に -n オプションをつけて make -n install と入力するとインストールで何が実行されるかがわかる。
ソースの Makefile に uninstall という行があれば、make uninstall が使えるかもしれない。
ITmedia の解説 を参考に Makefile を読んでみてください。
./configure のときに --prefix=/usr/local/ソフト名 と指定して、ソフト毎のディレクトリを作っておく。ディレクトリごと消してアンインストール。
/opt/[ソフト名] とかでもよし。
rpm / deb アーカイブ化し、パッケージシステムを使ってインストールする。
RPMファイルの作り方など参照。
簡単にパッケージ化してくれる CheckInstall というのもあります。
やり方は場合による。
そのまま新バージョンを上書きインストールすれば問題なく動作する場合も多いが、旧バージョンと新バージョンの変更点が大きい場合は旧バージョンのアンインストールが必要かもしれない。