LPM: Local Package Manager
Want to install software without root?
インストール方法
wget なりブラウザなりでファイルをダウンロードして実行権限を立て、lpm initlocaldir と実行すれば全て自動でインストール作業が走ります。以下、実行例です:
$ wget https://lpm.bio/lpm
$ chmod +x ./lpm
$ ./lpm initlocaldir
インストールが終わると ~/lcl/bin/lpm に lpm 本体がコピーされますので、ダウンロードした lpm は消してしまっても大丈夫です。
$ rm lpm
インストールすると何が走るか
この項目は内部動作を知りたい人向けで、単なるユーザーはスキップしても問題ありません。以下、LPM のインストール時の動作を解説します。
LPM は ~/lcl というディレクトリに下にほとんど全てのソフトをインストールし、設定を書き込みます。このディレクトリをローカルディレクトリと呼びます。ローカルディレクトリは --local オプションで変更することもできます。
Sourceforge に porg というとても秀逸なパッケージ管理ソフトがあるのですが、LPM はインストール作業中に porg の最新版をダウンロードしてローカルディレクトリ 以下にインストールします。 porg を使うとたいていのソフトのアンインストールが自動化できますが、 lpm は porg の機能を使うことでアンインストールを実現しています。
その次に、.bash_profile や .bashrc (tcsh や zsh を使っている人は同等のファイル) に ~/lcl/.bash_profile や ~/lcl/.bashrc も参照するように source 命令を書き加えます。bash/csh/tcsh/zsh 以外のシェルのことは考えていません。ファイルを分離した理由は、~/.bashrc 等に頻繁に書き込むと壊れたときが怖いのと、複数のローカルディレクトリを持って on/off するケースに対応したかったからです。例えば私用のソフトは ~/lcl に入れ、開発用は ~/dev 以下に入れることで、開発中には ~/lcl 以下のソフトを参照しないようにすることが簡単にできます。
次に、~/lcl 以下の .bashrc などのスタートアップファイルに、 ~/lcl/bin に PATH を通したり /lcl/lib に LD_LIBRARY_PATH を通したり、 ~/lcl/man に MAN_PATH を通したりする設定を書き込みます。 次回ログイン時にはこのへんの設定が(シェルによって)読み込まれ、ローカルディレクトリにインストールしたソフトやマニュアルが使えるようになります。
最後に LPM は porg と lpm 自身をローカルディレクトリにインストールします。このため、最初にダウンロードした lpm は不要になります。