mozilla-0.9.3-0vl1.src.rpm のインストール
mozilla は Linux Japan のおまけ CD に入っていたのをインストールしていたし、使っていた。
けど、galeon 0.12 に必要とされているのはインストーラーのない
mozilla が必要らしいので rpm package の mozilla をインストールする。

  ftp://ftp.jaist.ac.jp/pub/os/linux/Vine/VineSeed/SRPMS/
から、mozilla-0.9.3-0vl1.src.rpm を落して来た。

VineSeed から持って来ただけあって、依存関係が統一(ってか修正)されていない。
先に書いておくけど egcs を使うことになっている Vine で
gcc-launcher
gcc-c++-launcher
が必要とされていた。



$ mv mozilla-0.9.3-0vl1.src.rpm ~/rpm/SRPMS/
$ cd ~/rpm/SRPMS/
$ rpm -ivh mozilla-0.9.3-0vl1.src.rpm
> mozilla     #################################

~/rpm/SOURCES/migrate-icon.gif
~/rpm/SOURCES/mozicon16.xpm
~/rpm/SOURCES/mozicon50.xpm
~/rpm/SOURCES/mozilla-0.8-D__linux__.patch.gz
~/rpm/SOURCES/mozilla-0.9-embedxim.patch
~/rpm/SOURCES/mozilla-0.9.2-newjamap.tgz
~/rpm/SOURCES/mozilla-alpha-compiler.patch
~/rpm/SOURCES/mozilla-icon.png
~/rpm/SOURCES/mozilla-ns-upgrade.desktop
~/rpm/SOURCES/mozilla-profile.desktop
~/rpm/SOURCES/mozilla-source-0.9.3.tar.bz2
~/rpm/SOURCES/mozilla.desktop
~/rpm/SOURCES/mozilla.sh
~/rpm/SPECS/mozilla.spec
がインストールされる。

$ cd ~/rpm/SPECS/
$ rpm -bb mozilla.spec
> error: failed build dependencies:
> gcc-launcher >= 2.95.2 is needed by mozilla-0.9.3-0vl1
> gcc-c++-launcher >= 2.95.2 is needed by mozilla-0.9.3-0vl1
なんじゃ、こりゃ?

ftp://ftp.ring.gr.jp/pub/linux/Vine/VineSeed/i386/Vine/RPMS/

gcc-launcher-2.95.3-2vl11.i386.rpm
gcc-c++-launcher-2.95.3-2vl11.i386.rpm
が見つかった。
もー、ソースパッケージを持って来てコンパイルするのがめんどくさくなったので、
rpm ファイルですます。
   2001.09.10
   後で調べたら上の2のファイルの src.rpm はなかった。
VineSeed だけど、大丈夫かな。




gcc-launcher-2.95.3-2vl11.i386.rpm のインストール
from:
ftp://ftp.ring.gr.jp/pub/linux/Vine/VineSeed/i386/Vine/RPMS/

$ mv gcc-c-launcher-2.95.3-2vl11.i386.rpm ~/rpm/RPMS/i386/
$ cd ~/rpm/RPMS/i386/
$ su
# rpm -ivh gcc-c-launcher-2.95.3-2vl11.i386.rpm
> file /usr/bin/egcs from install of gcc-launcher-2.95.3-2vl11
  conflicts with file from package egcs-1.1.2-24vl4
> file /usr/bin/gcc from install of gcc-launcher-2.95.3-2vl11
  conflicts with file from package egcs-1.1.2-24vl4

# rpm -Uvh gcc-launcher-2.95.3-2vl11.i386.rpm
> file /usr/bin/egcs from install of gcc-launcher-2.95.3-2vl11
  conflicts with file from package egcs-1.1.2-24vl4
> file /usr/bin/gcc from install of gcc-launcher-2.95.3-2vl11
  conflicts with file from package egcs-1.1.2-24vl4

何ごと? 何が起きているの?
コンフリクトって事は何かと何かがぶつかっているって事だよね?
egcs と gcc-launcher って、別物じゃないの?

中身を確認
$ rpm -qlpv gcc-launcher-2.95.3-2vl11.i386.rpm
lrwxrwxrwx root root 3 Aug 17 01:17 /usr/bin/cc -> gcc
lrwxrwxrwx root root 3 Aug 17 01:17 /usr/bin/egcs -> gcc
lrwxrwxrwx root root 10 Aug 17 01:17 /usr/bin/gcc -> gcc-2.95.3
drwxr-xr-x root root 4096 Aug 17 01:17 /usr/doc/gcc-launcher-2.95.3
-rw-r--r-- root root 18007 Apr 4 1998 /usr/doc/gcc-launcher-2.95.3/COPYING
-rw-r--r-- root root 25283 Apr 4 1998 /usr/doc/gcc-launcher-2.95.3/COPYING.LIB
-rw-r--r-- root root 639 Oct 2 1998 /usr/doc/gcc-launcher-2.95.3/README

$ rpm -qlv egcs
lrwxrwxrwx root root 3 Aug 29 2000 /usr/bin/cc -> gcc
-rwxr-xr-x root root 63376 Aug 29 2000 /usr/bin/egcs
-rwxr-xr-x root root 63376 Aug 29 2000 /usr/bin/gcc
-rwxr-xr-x root root 13348 Aug 29 2000 /usr/bin/gcov
.
.

$ rpm -qlpv gcc-c++-launcher-2.95.3-2vl11.i386.rpm
lrwxrwxrwx root root 3 Aug 17 01:17 /usr/bin/c++ -> g++
lrwxrwxrwx root root 10 Aug 17 01:17 /usr/bin/g++ -> g++-2.95.3
drwxr-xr-x root root 4096 Aug 17 01:17 /usr/doc/gcc-c++-launcher-2.95.3
-rw-r--r-- root root 18007 Apr 4 1998 /usr/doc/gcc-c++-launcher-2.95.3/COPYING
-rw-r--r-- root root 25283 Apr 4 1998 /usr/doc/gcc-c++-launcher-2.95.3/COPYING.LIB
-rw-r--r-- root root 639 Oct 2 1998 /usr/doc/gcc-c++-launcher-2.95.3/README

$ rpm -qlv egcs-c++
-rwxr-xr-x root root 64688 Aug 29 2000 /usr/bin/c++
-rwxr-xr-x root root 24816 Aug 29 2000 /usr/bin/c++filt
-rwxr-xr-x root root 64688 Aug 29 2000 /usr/bin/g++
drwxr-xr-x root root 4096 Aug 29 2000 /usr/include/g++-2
.
.

launcher ってリンクを張るだけじゃん。
しかも cc の方は実体( gcc-2.95.3 )が入っていないし。
ってか、Vine は gcc をやめて、egcs に統一したんじゃかかったっけ?
何でそんなのが Vine の ftp site から持って来たパッケージで必要になるんだ?

それに、このリンクの張り方を見ると、--nodeps とかで強引に入れちゃうと
gcc が無くなっちゃう気がする。

Vine Linux 2.1.5 を入れたおまけ CD には
> /mnt/cdrom/Vine/RPMS/egcs-1.1.2-24vl4.i386.rpm
> /mnt/cdrom/Vine/RPMS/egcs-c++-1.1.2-24vl4.i386.rpm
が入っているから、最悪、この2つを --nodeps で入れ直せば
gcc(egcs) は復活するはず。

ってなことで、
gcc-launcher-2.95.3-2vl11.i386.rpm を依存関係を無視して入れてみる事にした。

# rpm -ivh --replacefiles gcc-launcher-2.95.3-2vl11.i386.rpm
> gcc-launcher     ################################

確認
$ ls -la /usr/bin/gcc
> /usr/bin/gcc -> gcc.2.95.3    -> リンクになっているけど、、、

$ ls -la /usr/bin/gcc-2.95.3   をすると
> ls: /usr/bin/gcc.2.95.3: No such file or directory
案の定、gcc が無くなった

egcs-1.1.2-24vl4.i386.rpm の入れ直し
これも依存関係を無視して入れることになる。
もー、イヤ

$ cp /mnt/cdrom/Vine/RPMS/egcs-1.1.2-24vl4.i386.rpm ~/rpm/RPMS/i386/
$ cd ~/rpm/RPMS/i386/
$ su
# rpm -ivh --replacefiles egcs-1.1.2-24vl4.i386.rpm
> package egcs-1.1.2-24vl4 is already installed
既に入っているってさ。あたりまえか。

# rpm -ivh --replacepkgs egcs-1.1.2-24vl4.i386.rpm
> file /usr/bin/egcs from install of egcs-1.1.2-24vl4 conflicts with file from package gcc-launcher-2.95.3-2vl11
> file /usr/bin/gcc from install of egcs-1.1.2-24vl4 conflicts with file from package gcc-launcher-2.95.3-2vl11
どうどう、めぐり。

必殺の --force を使用。
# rpm -ivh --force egcs-1.1.2-24vl4.i386.rpm
> egcs     ############################
あーあ、やっちゃった。

$ rpm -q egcs
> egcs-1.1.2-24vl4
$ rpm -q gcc-launcher
> gcc-launcher-2.95.3-2vl11
ってな状態になりました。

試しに mozilla のスペックファイルを使ってみると、
$ rpm -bp mozilla.spec
> error: failed build dependencies:
> gcc-c++-launcher >= 2.95.2 is needed by mozilla-0.9.3-0vl1
やっぱり、gcc-c++launcher が必要だって。



gcc-c++-launcher-2.95.3-2vl11.i386.rpm のインストール
from:
ftp://ftp.ring.gr.jp/pub/linux/Vine/VineSeed/i386/Vine/RPMS/

$ cd ~/rpm/RPMS/i386/
$ su
# rpm -ivh gcc-c++-launcher-2.95.3-2vl11.i386.rpm
> error: failed dependencies:
> gcc-c++ = 2.95.3-2vl11 is needed by gcc-c++-launcher-2.95.3-2vl11

また、エラー。
launcher を入れるのに gcc-c++ が必要だって。
Vine って、gcc じゃなくて、egcs を使うんじゃなかったっけ?
$ rpm -ql egcs-c++ すると、
> /usr/bin/c++*
があるし、、、

$ /usr/bin/c++ --version
> egcs-2.91.66
egcs と gcc が混ざって、更に、依存関係がぼろぼろになる。。。
また gcc を入れた後に egcs を強制的に入れる、って事になるんだろうな。

でもしょうがないから gcc-c++-2.95.3-2vl11.i386.rpm を
gcc-c++-launcher-2.95.3-2vl11.i386.rpm を拾って来た所から落しておく。
1.1M もありやがる。

gcc-c++-2.95.3-2vl11.i386.rpm のインストール
$ mv gcc-c++-2.95.3-2vl11.i386.rpm ~/rpm/RPMS/i386/
$ cd ~/rpm/RPMS/i386/

$ su
# rpm -ivh gcc-c++-2.95.3-2vl11.i386.rpm
> error: failed dependencies:
> gcc-cpp = 2.95.3-2vl11 is needed by gcc-c++-2.95.3-2vl11
> libstdc++2_10 = 2.10.0 is needed by gcc-c++-2.95.3-2vl11
cpp と c++用のライブラリが必要だって、怒っているけど無視。

> # rpm -ivh --nodeps gcc-c++-2.95.3-2vl11.i386.rpm
> gcc-c++     ############################

# rpm -ivh gcc-c++-launcher-2.95.3-2vl11.i386.rpm
> file /usr/bin/c++ from install of gcc-c++-launcher-2.95.3-2vl11 conflicts with file from package egcs-c++-1.1.2-24vl4
> file /usr/bin/g++ from install of gcc-c++-launcher-2.95.3-2vl11 conflicts with file from package egcs-c++-1.1.2-24vl4
案の定、egcs と gcc がぶつかりまくり。
ああ、どんどん、深みにはまっていく。

# rpm -ivh --nodeps gcc-c++-launcher-2.95.3-2vl11.i386.rpm
> file /usr/bin/c++ from install of gcc-c++-launcher-2.95.3-2vl11 conflicts with file from package egcs-c++-1.1.2-24vl4
> file /usr/bin/g++ from install of gcc-c++-launcher-2.95.3-2vl11 conflicts with file from package egcs-c++-1.1.2-24vl4
# rpm -ivh --force gcc-c++-launcher-2.95.3-2vl11.i386.rpm
> gcc-c++-launcher     ############################



もう一度 mozilla.spec のコンパイル
$ cd ~/rpm/SPECS/
$ rpm -bp mozilla.spec
とーし。

$ rpm -bc --short-circuit mozilla.spec
> checking for c++... c++
> checking whether the C++ compiler (c++ ) works... no
> configure: error: installation or configuration problem: C++ compiler cannot create executables.
> Bad exit status from /var/tmp/rpm-tmp.39462 (%build)
c++ を egcs に戻すのを忘れていた。

# cd ~/rpm/RPMS/i386/
# rpm -ivh --nodeps egcs-c++-1.1.2-24vl4.i386.rpm
> package egcs-c++-1.1.2-24vl4 is already installed
> file /usr/bin/c++ from install of egcs-c++-1.1.2-24vl4 conflicts with file from package gcc-c++-launcher-2.95.3-2vl11
> file /usr/bin/g++ from install of egcs-c++-1.1.2-24vl4 conflicts with file from package gcc-c++-launcher-2.95.3-2vl11

# rpm -ivh --force egcs-c++-1.1.2-24vl4.i386.rpm
> egcs-c++     ################################

$ cd ~/rpm/SPECS/
$ rpm -bc --short-circuit mozilla.spec
一時間近く待たされたけど、コンパイルできた。

$ cd ~/rpm/SPECS/
$ rpm -bi --short-circuit mozilla.spec
一様、とおったみたい。

後は、rpm -bb をして、rpm を作ってインストールするだけなんだけど、
たぶん、またコンパイルからやるはずだから、今日はもうやめる。

なんか、このページ、すっごく分かりにくくなっている気がする。
あとで見返さなきゃな。
各種ソフトのインストールを別個に作った方がいいのかな。

$ cd ~/rpm/SPECS/
$ rpm -bb mozilla.spec
~/rpm/RPMS/i386/mozilla-0.9.3-0vl1.i386.rpm
~/rpm/RPMS/i386/mozilla-devel-0.9.3-0vl1.i386.rpm
が作られる。

$ cd ~/rpm/RPMS/i386/
$ su
# rpm -ivh mozilla-0.9.3-0vl1.i386.rpm
> mozilla     ################################
> removing mozilla register info...done.
> registering mozilla components...done.

# rpm -ivh mozilla-devel-0.9.3-0vl1.i386.rpm
> mozilla-devel     ################################

これで、mozilla のコンパイル、リンク、rpm 化、rpm package のインストールまで完成。
コンパイルだけで一時間近くかかったぞ。

Vine 謹製の mozilla 0.9.3 をチョコット使ってみて。
だめだめ。
戻ると進むの矢印が変なトコに付いちゃっている。
見た目はカッコよくなったんだけどな。
いろんな、依存関係を無視してゴリゴリ強引にインストールしたからだろうな。

当分は、mozilla を入れるなら パッケージングされていて、インストーラーの付いたやつの方が無難だね。



ここで、mozilla-0.9.3-0vl1.src.rpm を入れるのに必要な依存関係と、その対処は次の通り。

+ mozilla-0.9.3-0vl1.src.rpm
  is need :
-> gcc-launcher-2.95.3-2vl11.i386.rpm
-> gcc-c++-launcher-2.95.3-2vl11.i386.rpm

+ gcc-launcher-2.95.3-2vl11.i386.rpm
  is conflicts :
-> egcs-1.1.2-24vl4

so, gcc-launcher-2.95.3-2vl11.i386.rpm
  over-ride to egsc-1.1.2-24vl4 with --replacefiles
and, egsc-1.1.2-24vl4
  re-over-ride to gcc-launcher-2.95.3-2vl11.i386.rpm with --force

+ gcc-c++-launcher-2.95.3-2vl11.i386.rpm
  is need :
-> gcc-c++-2.95.3-2vl11

gcc-c++-2.95.3-2vl11
  is need :
-> gcc-cpp-2.95.3-2vl11
-> libstdc++2_10

ignore, gcc-cpp and libstdc++.
gcc-c++ over-ride to egcs-c++ with --nodeps
and, gcc-c++-launcher over-ride to egcs-c++ with --nodeps



Uninstall mozilla-0.9.3-0vl1.src.rpm
galeon の為に入れたけど使えないから消す。

$ su
# rpm -e mozilla-devel
# rpm -e mozilla
> removing mozilla register info...done.
> cannot remove /usr/lib/mozilla/components - directory not empty
> cannot remove /usr/lib/mozilla/chrome - directory not empty
> cannot remove /usr/lib/mozilla - directory not empty

# rm -r /usr/lib/mozilla/components
# rm -r /usr/lib/mozilla/chrome
# rm -r /usr/lib/mozilla/






戻る