Movatterモバイル変換


[0]ホーム

URL:


フタなしカンヅメ

徒然なるままに @happytar0

この広告は、90日以上更新していないブログに表示しています。

tarボールソースからインストールしたソフトを管理する「Graft」を使ってみる

ソースインストールした物を管理するツール「Graft」をインストールして使ってみたので、記録として残しておきます。

インストールと言っても簡単で、配布元サイトのドキュメント通りに実行すれば問題ありません。
配布元サイト
graft.html - peters

$ wget -O graft-2.4.tar.gz "http://peters.gormand.com.au/Home/tools/graft/graft-2.4.tar.gz?attredirects=0"$ tar zxvf graft-2.4.tar.gz$ cd graft-2.4## ここでエラーがでます。$ make -f Makefile.dist    ######################################################    #                                                    #    #       You'll now need to modify the Makefile       #    #      variables to suit your local conditions.      #    #                                                    #    ######################################################     make: *** [Makefile] Error 1## エラーが出るので、Makefileを編集する必要があるようです。

Makefile

このPACKAGEDIRがパッケージ管理用のディレクトリになり、ここにソースからインストールします。PACKAGEDIR= /pkgsTARGETDIRは、通常インストールしたい場所、つまり/usr/localなどを指定します。# TARGETDIR= /pkgsTARGETDIR= /usr/localPerlコマンドの場所を指定します。/pkgs/bin/perl となっていますが、ほとんどの場合、/usr/bin/perl に設置されていると思いますので変更します。# PERL= /pkgs/bin/perlPERL= /usr/bin/perl

あらためてビルドします。

$ make clean$ make# sudo make install## graftがインストール出来ていることを確認。$ ls /pkgsgraft-2.4## graft自身を/usr/local/bin配下にインストール# /pkgs/graft-2.4/bin/graft -i graft-2.4## シンボリックリンクされていることがわかる$ ls -l /usr/local/binlrwxrwxrwx  1 root root 25 7月 30日 09:23 /usr/local/bin/graft -> /pkgs/graft-2.4/bin/graft

これでインストールは無事に完了しましたので、さっそく使ってみます。
今回は、試しにrubyをインストールしてみました。

$ wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p299.tar.gz$ tar zxvf ruby-1.8.7-p299.tar.gz$ cd ruby-1.8.7-p299$ ./configure --prefix=/pkgs/ruby-1.8.7-p299 && make# make install## 無事にインストール出来たことを確認$ ls /pkgsgraft-2.4  ruby-1.8.7-p299## graftコマンドでインストール# graft -i ruby-1.8.7-p299$ ls -l /usr/local/binlrwxrwxrwx  1 root root 30 7月 30日 09:27 /usr/local/bin/ruby -> /pkgs/ruby-1.8.7-p299/bin/ruby

rubyをアンインストールしてみる。

# graft -d ruby-1.8.7-p299EMPTY        /usr/local/lib/ruby/1.8/bigdecimal/ is now empty. Delete manually if necessary.EMPTY        /usr/local/lib/ruby/1.8/cgi/session/ is now empty. Delete manually if necessary....

一部ディレクトリが残ってしまっていますが、-Dオプションで実行することで、空のディレクトリも削除してくれるようです。

アップデートを想定して、ruby1.9系を入れてみることにしました。
アンインストール後に、インストールしても問題ないかと思いますが、今回はPruneという機能を使ってみます。これは既存のファイル群との衝突を回避するために、末尾に.prunedを付けたファイル名にリネームしてくれるものです。

## まず1.8.7をインストール# graft -i ruby-1.8.7-p299$ /usr/local/bin/ruby -vruby 1.8.7 (2010-06-23 patchlevel 299) [i686-linux]## 1.9.1をダウンロード、インストール$ wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.1-p429.tar.gz$ tar zxvf ruby-1.9.1-p429.tar.gz$ cd ruby-1.9.1-p429$ ./configure --prefix=/pkgs/ruby-1.9.1-p429 && make# make install## graftコマンドでrubyを1.8.7から1.9.1にアップデートします## アンインストール前に新しいバージョンの物をインストールしようとすると、衝突としてエラーが表示されます# graft -i ruby-1.9.1-p429CONFLICT     /usr/local/bin/erb is linked to something other than /pkgs/ruby-1.9.1-p429/bin/erb (/usr/local/bin/erb -> /pkgs/ruby-1.8.7-p299/bin/erb)# graftコマンドを-pオプションで実行してみると、ファイル名の後ろに.prunedとリネームされているのがわかる# graft -p ruby-1.8.7-p299$ ls -l /usr/local/binlrwxrwxrwx  1 root root 30 7月 30日 09:39 /usr/local/bin/ruby.pruned -> /pkgs/ruby-1.8.7-p299/bin/ruby# あらためてインストール$ graft -i ruby-1.9.1-p429## 1.9.1がインストールできていることを確認$ ls -l /usr/local/binlrwxrwxrwx  1 root root 30 7月 30日 10:02 /usr/local/bin/ruby -> /pkgs/ruby-1.9.1-p429/bin/ruby

いくつか気になった点がありました。

  • 衝突回避のためにリネームされた.prunedファイルを消せない。

 (-pオプションで実行させる度に、上書きされるようなので問題なし?)

  • 設定ファイルも一緒に上書きされそうなので、.graft-exclude

や.graft-includeなどを使って、必要なものだけインストールするように調整する必要があるかもしれません。(未検証)

非常にシンプルに出来ていて簡単に使うことが出来るので、ごちゃごちゃとした余計な機能はいらない、という人にとってはオススメです。
あとは、ソースからインストールしたものが/pkgsに溜まっていくので、前のバージョンにすぐに切り替えたりといった事もできます。

検索

引用をストックしました

引用するにはまずログインしてください

引用をストックできませんでした。再度お試しください

限定公開記事のため引用できません。

読者です読者をやめる読者になる読者になる

[8]ページ先頭

©2009-2025 Movatter.jp