MyMiniCity踏んでください!!

ただいま絶賛MyMiniCity参加中です.是非リンクを踏んでください!!(笑
February 28th, 2006

続: includeとlibはワイルドカード指定はよくないのでは?

(Read: 12609)
Add to Hatena Bookmark

参照: ベイエリア情報局 tarballから複数バージョンをインストールしたときのバージョン切り替え
いやPHPに限った話じゃなくて汎用的な話です(苦笑
tarballからインストールしたソフトウェアを簡単に管理するは汎用的な方法で特にPHPに特化した内容ではないです。


いやえとあの汎用的な話をしてまして.

複数バージョンをインストールする場合は /opt/pkgs/hoge-x.x.x にインストールします。
この場合は /opt/pkgs/hoge-x.x.x のディレクトリにはパスには含まれません。
実際にパスが通るのはシンボリックリンクをはってる /opt/hoge 以下になります。


いやなんかパス変わってるし!!

と思ったら後半にあるのね.

./configure --prefix=/opt/pkgs/hoge-1.0.0
make
sudo make install


これなら納得です.
ちなみにうちは

後は/var/www/cgi-binにPHPを入れます.



$ sudo cp -p \
/usr/local/php-/bin/php-cgi \
/var/www/cgi-bin/php-<version>


の後に


$ sudo cp -p \
/var/www/cgi-bin/php-5.x.x
/var/www/cgi-bin/php5
みたいなことをやってます.書き忘れていましたが.
で,.htaccessは


php_flag engine off
AddHandler php-script .php
Action php-script /cgi-bin/php5
みたいにしています.シンボリックリンクにしなかったのはhttpd.confを修正したくなかったから(趣味の問題ですね



ここからは話が若干変わりますが,ABIをまじめに考えるならmasatoさんの方法はおいしくないところがあります.
というのは,バージョンをとっかえひっかえするということはABIのアップブレード・デグレードが発生するということです.
つまり


$ ln -s /opt/pkgs/foo-1.1.1 /opt/foo
(いろいろ設定)
(いろいろびるど)
をした後に


$ ln -s /opt/pkgs/foo-1.0.0 /opt/foo
とし,ABIがデグレードした場合,foo-1.1.1のABIに依存するバイナリはことごとく実行できなくなります.
また,アップグレードの場合でも動作しなくなる場合があります.

#先日うちで紹介したPHPが全滅して全リビルドになって困った.

「いろいろなバージョンを試す」という理由ではこれはあまりおいしくないと思います.
なのでうちはライブラリはバージョン毎にRPMにしています(物によりけりですけど)

複数バージョンのインストールなんかは RPM のようなパッケージ管理システムを使ってもできないので、かなり便利です。


できますよ.
Red Hat 系でベタなところだとcompatシリーズのパッケージ.
これでgcc 4系(ABI的には3.4系も)3.2系,2.96系が共存します.opensslもありますね(openssl-*,openssl097fとか).
私も同様なやり方でいくつかの独自パッケージを共存させています(ABIが変化したときに依存関係を崩さずにアップデートとかでは常套手段)

やり方はそんなに難しくなくて,

・適当にSRPMを用意する(欲しいバージョンのSRPMでいい)
・SPECを取り出して一応リネーム(」foo.spec」を「foo<version>.spec」とか
・Nameタグをいじる(「foo」を「foo<version>」とか)
・マクロ%setupにオプション-nをつける(通常%{name}-%{version}に移動しようとするので,-n foo-%{version}とか)
・%filesから%{_bindir}の実行ファイルなど不必要なファイルを消す(必要ならファイル名を%installあたりで変えるなりして残す)
・一応スクリプト系(%pre,%post,%preun,%postunあたり)を確認する

大体この位の修正でビルド.
ビルドできればインストール.

ライブラリが絡むならこの方法のほうがより安全に保守をすることができます.

トピックの参照元

▼最近のトピック

▼ 人気のトピック


< 過去の記事 [ 11All Categories ] 新しい記事 >
Powered by gsblog (customize)

[ POST ] [ AddLink ] [ CtlPanel ]

Subscribe blog

Bookmark blog

About me

about me

応援しています

我が息子が産まれたアクア・バースハウス(東京都世田谷区にある助産院)を応援しています.

翻訳のお仕事

腕に自信がある方,修行をしたい方はこちらをどうぞ.

2017 calendar

11月
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
| Day | Month | Year |

Powered by RRDTOOL.

Archives

Categories

Links


Mail to admin

人気ブログランキングへ RSS feed meter for http://blog.poyo.jp/ Search Engine Optimization
blogpeople.netに登録!! スカウター : よくきたblog

My Google news

My Google News

Related site

ころんころん♪ べびぽよ フォト蔵Wiki