LPM: Local Package Manager

Want to install software without root?

お知らせ

スクリプトの投稿は受付停止中です。GitHub にスクリプトリポジトリを移動しています。

Home

Linux を使っていて、root は持っていないけど新規にソフトをインストールしたいと思ったことはありませんか? ちゃんとパッケージ化されていないソフトをインストールするのが面倒だと思ったことはありませんか? あなたの環境でコンパイラエラーを回避するために何度も同じパッチを当てなければならなかったことはありませんか? そんな貴方に LPM は手をさしのべます。

yum や apt とは何が違うの?

LPM では root 権限が無い場合に特化し、全てのソフトウェアはホームディレクトリ以下にインストールします。 通常は /etc に置かれる設定ファイルなども全てホームディレクトリ以下に設置することを意図しています。

また、インストールするソフトウェアをグループに分け、一括で on/off を切り替えることができるのも特徴です。 例えばライブラリ A ver 1.11 が動作時に必要なソフト B と、ライブラリ A ver 2.22 が動作時に必要なソフト C が通常は共存できない場合に、A-1.11 と B をインストールしたディレクトリと A-2.22 と C をインストールしたディレクトリの2つに分け、片方だけスイッチ on して使うことができます。

tar ball が GNU スタイルのインストール手段をサポートしていない場合でもパッケージ化できます。ログイン時に設定する環境変数等も記述可能です。

tar ball から自分でインストールするのと何が違う?

たしかに、tar ball を自分でダウンロードして、./configure --prefix=$HOME/local && make && make install すれば問題はだいたい解決するんですが、 実際にこの方法でたくさんソフトウェアをインストールしてみるといろいろと面倒なことが分かってきます。 ソフト名で google 検索して最新版のホームページを探し、tar ball をダウンロードしてくる作業がまず面倒です。 私はあちこちでマシンを借りているのですが、5台も6台もマシンを使っていると URL をメモして一発で呼び出したくなります。 tar ball をダウンロードし保存する先のディレクトリもたいてい決まっているので、ブラウザのダイアログでいちいち保存するディレクトリ指定するのも面倒です。 LPM なら一度(誰かが)メモした URL からのダウンロードはソフト名のキーワードを入れるだけで済みます。 自前の管理だと configure するときに --prefix をたまに付け忘れ、 make まで終わったのに configure からやり直すことがあるのが面倒ですが、LPM なら configure の prefix オプションは自動で設定します。 システムに ライブラリ A の ver X が入っているんだけど、これから入れたいソフト B はライブラリ A の ver Y 以上じゃないと動かない。 逆に、ソフト C はライブラリ A の ver X でないと動かない、というときに切り替えが面倒ですが、LPM なら簡単に切り替えができます。 make install した後に PATH とか MAN_PATH とか LD_LIBRARY_PATH とか設定し忘れて、絶対PATH指定しないと動かなかったり man が出てこなかったりいろいろ面倒ですが、これも LPM なら簡単。 .bash_profile に記述したら tcsh を使ったときに読み込まれなくて残念。或いは .zshrc に記述したら、一時的に bash を使ったときに読み込まれなくて残念な思いをするので面倒ですが、LPM なら bash/tcsh/zsh の3種類を自動で設定。exportとsetenvも自動dで変換しますので、bash用のスクリプトだけ用意すればOK。 アンインストールしたいときに面倒です。GNU automake で作ったパッケージなら make uninstall で大体は消せますが、.bash_profile の PATH の指定とか MAN_PATH の指定とかまでは消えません。 GNU式の configure を使っていない場合にはソフト自体のアンインストールも面倒。 porg とか使えばいいんですけど、porg のインストールも面倒だし、使い方を思い出すのも面倒です。porg では環境変数は消してくれません。 この点もLPMは解決しています。 Perl とか Python のモジュールをホームディレクトリ以下にインストールしたい時に、tar ball だとインストールからかなり面倒で、環境変数の設定等も面倒。 こんなに面倒なんですが、LPMを使うと大体楽になります。