Vine 3.1(9)librpmio の作り直し(4)alternative ?


浦島さんに「glibcのパッケージに変更を加えてみてはいかがでしょうか?」 と助言いただいているのだが、 rpm がコンパイルできないままでほったらかしにするのは納得がいかないので、 もう少し「あらぬ方向」を継続する。

alternative ?

先日 cpp の存在を確認したときには なんとも思わなかったのだが、 cpp は alternatives に入っている。
[root@junk root]# ls -l /usr/bin/cpp
lrwxrwxrwx    1 root     root           21 Nov 30  2003 /usr/bin/cpp -> /etc/alternatives/cpp*
[root@junk root]# ls -l /etc/alternatives/cpp
lrwxrwxrwx    1 root     root           18 Dec 15 10:00 /etc/alternatives/cpp -> /usr/bin/cpp-3.3.2*
[root@junk root]# ls -l /usr/bin/cpp-3.3.2
-rwxr-xr-x    1 root     root        93802 May 27  2004 /usr/bin/cpp-3.3.2*
[root@junk root]#
ということは、代わりの cpp があるということか?

apt-cache で見てみた。

[root@junk root]# apt-cache search cpp
gc - C++ Garbage Collector
gcc-cpp - The C Preprocessor.
gcc-docs - Documents (info, man) of GNU Compiler Collection
libstdc++3 - GNU Standard C++ Library
cppunit - C++ Port of JUnit Testing Framework
gcc295 - GNU Compiler Collection - Core package including C compiler
gcc295-cpp - GNU Compiler Collection - The C Preprocessor.
kdesdk - The KDE Software Development Kit (SDK)
kdevelop - Integrated Development Environment for C++/C
openoffice.org-libs - OpenOffice.org shared libraries
qt-designer - Interface designer (IDE) for the Qt toolkit
[root@junk root]#
gcc295-cpp というパッケージがあるではないか。
これならいける?

gcc295-cpp のインストール

[root@junk root]# apt-get install gcc295-cpp
Reading Package Lists... Done
Building Dependency Tree... Done
The following NEW packages will be installed:
  gcc295-cpp
0 upgraded, 1 newly installed, 0 removed and 1 not upgraded.
Need to get 143kB of archives.
After unpacking 398kB of additional disk space will be used.
Get:1 http://updates.vinelinux.org 3.1/i386/plus gcc295-cpp 2.95.3-2vl24 [143kB]
Fetched 143kB in 0s (200kB/s)
Committing changes...
Preparing...                ########################################### [100%]
   1:gcc295-cpp             ########################################### [100%]
error: cannot open Installtid index using db3 - No such file or directory (2)
error: cannot open Sigmd5 index using db3 - No such file or directory (2)
error: cannot open Sha1header index using db3 - No such file or directory (2)
Done.

cpp-2.95.3 を使えるようにする

[root@junk root]# /sbin/update-alternatives --list cpp
/usr/bin/cpp-2.95.3
/usr/bin/cpp-3.3.2
[root@junk root]# /sbin/update-alternatives --set cpp /usr/bin/cpp-2.95.3
Using `/usr/bin/cpp-2.95.3' to provide `cpp'.
[root@junk root]# /sbin/update-alternatives --display cpp
cpp - status is manual.
 link currently points to /usr/bin/cpp-2.95.3
/usr/bin/cpp-2.95.3 - priority 15
 slave libcpp: /usr/bin/cpp-2.95.3
/usr/bin/cpp-3.3.2 - priority 30
 slave libcpp: /usr/bin/cpp-3.3.2
Current `best' version is /usr/bin/cpp-3.3.2.
[root@junk root]#
cpp だけの入れ換えでいいんだろうか???

rpm の rebuild

[yasunari@junk yasunari]$ rpm --rebuild rpm-4.0.5-1vl8.src.rpm
Installing rpm-4.0.5-1vl8.src.rpm
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.80114
+ umask 022
+ cd /home/yamasita/yasunari/rpm/BUILD
+ cd /home/yamasita/yasunari/rpm/BUILD
	:
	:
checking how to run the C++ preprocessor... /lib/cpp
checking for g77... no
無事通過
	:
	:
Executing(--clean): /bin/sh -e /var/tmp/rpm-tmp.53039
+ umask 022
+ cd /home/yamasita/yasunari/rpm/BUILD
+ rm -rf rpm-4.0.5
+ exit 0
[yasunari@junk yasunari]$
できた!

Celeron 500MHz で約25分。玄箱だとどのぐらいかかるやら。

念のため、確認

[root@junk i386]# rpm -ivh --force rpm-4.0.5-1vl8.i386.rpm
Preparing...                ########################################### [100%]
   1:rpm                    ########################################### [100%]
[root@junk i386]#
[root@junk i386]# rpm
RPM version 4.0.5
Copyright (C) 1998-2000 - Red Hat, Inc.
This program may be freely redistributed under the terms of the GNU GPL

Usage: rpm {--help}
       rpm {--version}
[root@junk i386]# rpm -q rpm
rpm-4.0.5-1vl8
動いてるみたい。

ハックの記録 → Vine 3.1(10)librpmio の作り直し(5)Back to the 玄箱
LinkStation/玄箱 をハックしよう

Copyright (C) 2004 Yasunari Yamashita. All Rights Reserved.
yasunari @ yamasita.jp 山下康成@京都府向日市