LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 564|回复: 0

tl10-chinese装不了checkinstall,怎么解决

[复制链接]
发表于 2004-4-5 14:09:05 | 显示全部楼层 |阅读模式
刚装的系统,是全部安装。

想安装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さん、わざわざ検証して頂きありがとうございます。
参考にさせて頂きます。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表