Linux系OSやcygwinに、自分でソフトウェアのソースコードを入手してきてをビルド・イ
ンストールするときに、/usrや/usr/localへインストールしないようにしている。
-
apt-get/apt-cache等のパッケージ管理用のが使っている領域に自分で手を入れ
て問題が起きたとき、原因の切り分けが面倒になる -
自分ひとり、ユーザアカウントひとつの端末にソフトを導入するために、root所有
の領域を使う不自然さ
などの理由から。
./configure && make && make install でインストールする、といった手順がよく紹
介されているが、ほとんどの場合は make install でroot権限を要求され、 /usr
や /usr/local 配下にコンパイルされたソフトやファイルがコピーされることになる
が、この行き先をホームディレクトリ配下にする。
前提
どこかから入手してビルド・インストールするソフトのインストール先を、
$HOME/usr としておく。
ヘッダファイルは $HOME/usr/include, 共有ライブラリは $HOME/usr/lib, 実行ファ
イルは $HOME/usr/bin に置かれることになる。
ちなみに自分で作ったスクリプトやソフトの置き場は $HOME/bin としている。
準備
bashやzshなどのシェルの設定ファイル (たいていは ~/.bashrc, ~/.bash_profile,
~/.profile というファイル名) を編集する。
次の1行を追加する。
export PATH=$PATH:$HOME/usr/bin
configureスクリプトが用意されたソフトウェアのビルド
ほとんどの場合、 prefix でインストール先を指定できる。
$ ./configure --prefix=$HOME/usr
これで make install によるインストール先を $HOME/usr 配下にできる。
Makefileしかないソフトウェアの場合
どうするのが正解なんでしょうね。Makefileの中身を見なければわからないと思うけど……。
たとえば、youtube-dl という動画サイトの動
画データを抽出するためのソフトの場合、Makefileに次のような設定箇所がある。
PREFIX=/usr/local
BINDIR=$(PREFIX)/bin
MANDIR=$(PREFIX)/man
PYTHON=/usr/bin/env python
この場合、PREFIX=/usr/local を PREFIX=$(HOME)/usr に置き換えてやればよい。