fbcome 发表于 2004-4-5 15:21:42

turbo10装不了checkinstall,怎么解决

刚装的系统,是全部安装。

想安装checkinstall-1.5.3,下了源码,make的时候过不去,检查某个libc的时候死了。如果用rpm装上checkinstall之后,又用不了,制作出来的rpm里面根本没有所要的文件。

用google搜了一把,只有一片日文文章,看不懂,哪位能指点一下
连接:http://www.turbolinux.co.jp/dcforum/DCForumID11/6420.html

原文:
"TL10Dでcheckinstallを使う方法(長文)"
Posted by JW on 03-19-04, 08:13 PM (JST)

皆さんお久しぶりです。
以前、わたしを含む数名の方々の間で首題の件が話題にあがったことがあります。
そのときは結局、解決に至らず、わたしも放置しておりました。
この度、Slackware-9.1にKernel-2.6.4を導入して動作確認したついでに、Slack環境で
checkinstallを試したところ何の問題もなく動作したのをきっかけにしてもう一度
TL10Dの問題を考えてみました。
以下はその経緯と解決方法です。

(checkinstallを使う必要性のないひとは気にする必要はありません。無視してください。)

=== 当初の問題 ===
1. checkinstall-1.5.3導入時に lgibcのバージョンチェックの過程でインストールが
 進まなくなってしまう。
(これは、checkinstall導入時、glibcのバージョンチェックを ldd /bin/bash
  で行なっているのですが、TL10Dのbash-2.0xは -static オプションでビルド
されているためcheckinstallをmakeするときの glibcチェックで出力が「出ない」
  ことが原因。そのため、その後のスクリプト実行が進まずに、システムが
  フリースしたようになる。)
 
これは次の二つのうちいずれかで解決可能です。

a) bash-2.05を -staticオプションを外してコンパイルし直したところ、
 libcバージョンチェックは問題なく通り、インストール完了しました。

b) または スクリプトcreate-localdeclsをglibcチェックが通るように強引に編集してしまう。

 しかし、それで作成&インストールしたcheckinstallでも次のような不具合
 があります。

2. checkinstallでまともなrpmパッケージが作成されない
 (具体的には、docファイルだけが含まれるrpmが生成され、実行ファイル関係が
  rpmに含まれない)

3. 上記2の現象は checkinstall-1.5.3、 checkinstall-1.6.0beta3でも同じ。

=== おそらくの原因 ===
TL10Dの fileutilsパッケージが提供する実行ファイル群が staticなバイナリであること。

=== 解決方法 ===
fileutils-4.1.10-5 を -staticオプションを外してリビルド&インストールする。

ちなみに、fileutilsは以下の実行ファイルを提供しています。
/bin/chgrp
/bin/chmod
/bin/chown
/bin/cp
/bin/dd
/bin/df
/bin/link
/bin/ln
/bin/ls
/bin/mkdir
/bin/mknod
/bin/mv
/bin/rm
/bin/rmdir
/bin/stat
/bin/sync
/bin/touch
/bin/unlink
/usr/bin/dir

=== 動作確認結果 ===
FToolsFM-1.9.3, gtkdiff-1.8.0 でcheckinstallによりちゃんと実行ファイルを含むRPMパッケージが
作成されることを確認しました。

以上、参考になれば。

# TL10D で bash や fileutils などが -staticオプション付きでビルドされているのには
# TL社なりのポリシーがあるのかもしれません。
# これらを共有ライブラリを使うようにリビルドする場合は、そのことのメリット/デメリット
# を理解して作業してください。


1. "RE: TL10Dでcheckinstallを使う方法(長文)"
Posted by minoru on 03-19-04, 11:15 PM (JST)
おめでとうございます。そしてごくろうさまでした。
# わたしも、以前ちょっと加わった一人ですが・・・
># TL10D で bash や fileutils などが -staticオプション付きでビルドされているのには
># TL社なりのポリシーがあるのかもしれません。

おそらくほかのディストリでは static なのだろうけれど、
TL10Dで static でなければいけなかった理由ってなんなんでしょうね?


削除 編集 | | | |


2. "(補足)RE: TL10Dでcheckinstallを使う方法"
Posted by JW on 03-19-04, 11:36 PM (JST)
> おめでとうございます。そしてごくろうさまでした。
どーも。
ちょっと補足です。
最初の投稿に一部誤植がありました。
(原文) 1. checkinstall-1.5.3導入時に lgibcのバージョンチェックの過程で
(修正) 1. checkinstall-1.5.3導入時に glibcのバージョンチェックの過程で

(原文) FToolsFM-1.9.3, gtkdiff-1.8.0 で
(修正) MToolsFM-1.9.3, gtkdiff-1.8.0 で

なお、checkinstall-1.6.0beta3 では --install=no 付きで実行することで、
RPM作成のみを行なってインストールはしないという動作が可能になっています。
これは、checkinstall-1.5.3には無かった機能です。

>TL10Dで static でなければいけなかった理由ってなんなんでしょうね?
本当のところはわかりませんが、障害発生時のメインテナンス性を考慮したのかもしれませんね。


削除 編集 | | | |

3. "RE: TL10Dでcheckinstallを使う方法(長文)"
Posted by みのむし on 03-20-04, 06:53 AM (JST)
JWさん、ご苦労様です。
私は、/usr/local/lib/checkinstall/checkinstallrc
を修正して対処しました。
ただ、以前の事なのでどこを修正したのか忘れてしまいました。
現在、使用しているもの(1.5.2-1)を以下の通り示します。
サンプル checkinstallrc


削除 編集 | | | |


4. "RE: TL10Dでcheckinstallを使う方法(長文)"
Posted by JW on 03-20-04, 08:09 AM (JST)
みのむしさん、ありがとうございます。
最近、Suzukaで遊ぶ時間がまったくないので詳細チェックできませんが、
diffで差分を見ると関係ありそうな変更箇所は

STRIP_SO_ELF=
の部分かもしれません。オリジナルは =1 みのむしさんのは =0 ですね。
それと、オリジナルに存在する CKUMASK=0022 がみのむしさんのものでは削除されているようです。

Turboのオリジナル環境をできるだけ変えないで checkinstallを利用したいなら
みのむしさんの方法の方がおすすめですね。


削除 編集 | | | |


5. "RE: TL10Dでcheckinstallを使う方法(長文)"
Posted by みのむし on 03-20-04, 08:33 AM (JST)
>STRIP_SO_ELF=
>の部分かもしれません。オリジナルは =1 みのむしさんのは =0 ですね。
>それと、オリジナルに存在する CKUMASK=0022 がみのむしさんのもの
>では削除されているようです。
JWさん、わざわざ検証して頂きありがとうございます。
参考にさせて頂きます。

12543122 发表于 2004-4-5 15:34:14

turbo10的内核源码有点小问题,里面没有配置文件.config
到内核源码文件夹/usr/src/linux-2.6.0~~~
执行make oldconfig
然后再编译checkinstall-1.5.3

fbcome 发表于 2004-4-5 22:55:25

turbo10的内核源码有点小问题,里面没有配置文件.config
到内核源码文件夹/usr/src/linux-2.6.0~~~
执行make oldconfig
然后再编译checkinstall-1.5.3

照着作了,没用。编checkinstall时,还是在make的时候死在checking glibc subversion了。而且另外一台装tl10的,内核升到2.6.4的机器上,也是同样的毛病。

试了一下,应该是checkinstall里的installwatch和tl10不配合,因为单独装installwatch也是同样的毛病。

可惜俺不懂日文,有哪位高手能帮我看看上面的文章。
页: [1]
查看完整版本: turbo10装不了checkinstall,怎么解决