
Ubuntu日本語フォーラム
ログインしていません。
松尾(smoochy)です。
たとえばパッケージマネージャにない新しいバージョンのアプリケーションをインストールする必要がでてきた場合の質問です。
通常ソースを落として./configureで適切なオプションを指定したあとmake→make installという手順を踏むと思いますが、それだとアンインストール時にどのファイルを消してよいかわからなくなってしまいます。
皆さんはこのような時どうされているのでしょうか?
1.dh_makeでパッケージを作成する。
2.checkinstallでパッケージを作成する。
3.paco等の監視ツールを使って、通常のmake installを行う。
私はできればパッケージ管理を行いたいと思っており 1 or 2 でなんとかしたいところですが、上手くいかないものあり(ApacheとかApacheとかApacheとか)、どうしたものかと思っています。
皆さんは普段どうされていますか? よろしければお聞かせ下さい。
オフライン
soochyさん
じゃ、続きを:)
4. make installだけでなく、make uninstallをサポートしていればビルドツリーを残しておいて不要時にそれで消す。
5. ベースとなる同じソフトのパッケージソースをとってきて、それを元に俺派生版を作る(1と同じ?)
6. .configure時にprefixを上手くあたえて、他のパッケージに影響をあたえないディレクトリ配下(たとえばホームディレクトリ)に入れ、消すときにはがさっと....
7. 誰かがビルドした奴を野良でもいいから漁って突っ込む
8. あきらめて寝る
1,2,3が困難であったとして、4.が可能ならそれが一番らくでいいですね。
5.は結構大変です。dh_makeで作成されたものがすんなり行けばいいのですが、ちょっとトリックを使っているようなパケージもあって、動いているパッケージソースに手を加えて作った方がいい場合もありました。
6.はたとえば/optほげほげ以下に全部突っ込みます。
7.は安易に見えてパッケージの依存関係その他でハマることもあるし、そもそも品質があてにならないので。以前DebianのTomcatが古いので新しいのをビルドして配布しているところを探してきて入れたんですが、まぁその後が....
8は私の得意技です。個人的には超おすすめです :P
しかし先端版を追いかける目的でなくてもパケージに頼らない方がいい事も割と多いと最近特に感じてます。
smoochyさんから先日blogでアドバイスいただいたおかげで、ようやく私のところではeclipseがまともに動きました。
依存の少ないものは無理してパッケージにするよりユーザのホームディレクトリ以下に展開して動かしちゃった方がいいですね(Zopeなんかも結局それが正解だった)。
オフライン
Stowなんかはどうでしょうか。/optにいれるのと大差ない気もしますが若干便利かと。
http://www.gnu.org/software/stow/
Dapperでnumpy/scipyのバージョンが古すぎたので自分でコンパイルしようとしましたがコンパイラとかLAPACKとか面倒なことが多いので、
8. あきらめて寝る
を採用したところEdgyでは新しくなってました。
オフライン
gmaxさん
>4. make installだけでなく、make uninstallをサポートしていればビルドツリーを残しておいて不要時にそれで消す。
make uninstallをサポートしているパッケージってほとんどみかけないですよねぇ。
>5. ベースとなる同じソフトのパッケージソースをとってきて、それを元に俺派生版を作る(1と同じ?)
手法的にはdh_makeやcheckinstallと同じ手法ですよね。gmaxさんが指摘しているように一筋縄では行かないパッケージには困り者です。
>6. .configure時にprefixを上手くあたえて、他のパッケージに影響をあたえないディレクトリ配下(たとえばホームディレクトリ)に入れ、消すときにはがさっと....
これが現実解かもしれないですね。pacoと併用すればほぼ完璧にアンインストールできそうですし。
>7. 誰かがビルドした奴を野良でもいいから漁って突っ込む
これは正直怖いです。
>8. あきらめて寝る
これ僕もよくやります。
anoirさん
stowちょっとよさげですね。使用を検討してみます。
ご回答ありがとうございました。
オフライン
smoochyさん
ソフトはビルドできて、うまく配置できてもデーモンなど常駐を必要とするタイプのソフトで、システムの標準的な起動手順やらなんやらにうまく作りこむのが私的には結構面倒ですね。結局俺ビルドには俺ルールつくってやるしかない...けどその自分の作法をわりとよく忘れるw
anoirさん
anoir による投稿:
Stowなんかはどうでしょうか。/optにいれるのと大差ない気もしますが若干便利かと。
http://www.gnu.org/software/stow/
これは使えそうですね。私もちょっと引出しにいれておきます。
ところで
anoir による投稿:
8. あきらめて寝る
を採用したところEdgyでは新しくなってました。
...これは次のように改めたほうがいいかもしれませんB)
8. 小人さんに任せる
おあとがよろしいようで。
オフライン
gmax による投稿:
8. 小人さんに任せる
おあとがよろしいようで。
ジョークだとわかってますけど、これは看過できません。
実際にはパッケージメンテナさんが血へど吐き(そうな気分になり)ながらがんばっています。
オフライン
ikuyaさん
ikuya による投稿:
ジョークだとわかってますけど、これは看過できません。
実際にはパッケージメンテナさんが血へど吐き(そうな気分になり)ながらがんばっています。
おっしゃる通りジョークとしては少々無神経な投稿でした。どうもすいません。
メンテナさんがどういう事をしているかまったく知らない訳では無いというのに...
とかいいつつ「小人さんがやってくれた!」とか思ったらそれは自分だったということもたまにある私です。
# 上流に投げたパッチを忘れるなよ...orz
最後の編集者: gmax (2007-03-20 10:10:26)
オフライン
apacheに関しては素直にmake;make installすると/usr/local/apache2以下に全部
出来たと思いますので、下手にディレクトリとかを変えなければ結構管理しやすいです。
# まー変えたくなっちゃうんですが。
思うに、apacheをmakeしてまで入れるということは、本格的なWEBサーバーを
構築するということなので、自力で管理しつづけるのが、やっぱり一番確実なんじゃ
ないでしょうか?
オフライン