vine-users ML アーカイブ



[vine-users:054380] Re: Vine Plus で! (rpm で /etc/passwd の第 5 フィ ールドが表示される)

  • From: Fujita Yoshihiko <starfish@xxxxxxxxxxxxxxxx>
  • Subject: [vine-users:054380] Re: Vine Plus で! (rpm で /etc/passwd の第 5 フィ ールドが表示される)
  • Date: Sun, 20 Oct 2002 18:46:11 +0900 (JST)
藤田と言います。

From: Satoshi MACHINO <machino@xxxxxxxxxxxxx>
Subject: [vine-users:054370] Re: Vine Plus で!
Date: Sun, 20 Oct 2002 16:09:30 +0900
Message-ID: <20021020160930.07be9433.machino@xxxxxxxxxxxxx>

> まちの です。
> 
> On Sun, 20 Oct 2002 10:08:53 +0900
> "T.Okayama" <okayama@xxxxxxxxxxxxxxxxxxxxxxx> wrote:
> 
> > ファイル 0:Tomoaki Okayama/rpm/SOURCES/linux-506.tar.gz: そのようなファイルやディレクトリはありません
> > 
> > というエラーが出るのです(現在も)。そのあと、メールで書いた方法も試して
> > みて、同じエラーが出るので、お聞きした次第です。

私も自作のスクリプトを RPM パッケージ化するときに同じようなエ
ラーを経験しました。どうやら、${HOME}の所に、/etc/passwd の第
5フィールドが入るようです。実際、/etc/passwd の第5フィールド
を書き換えるとエラーの
> > ファイル 0:Tomoaki Okayama/rpm/SOURCES/linux-506.tar.gz
> >            ^^^^^^^^^^^^^^^
ここが変わりました。root での作業なのに、いつも使う一般ユーザの
/etc/passwd の第5フィールドが表示されていたので、一般ユーザの
ドットファイル(.rpmmacros 等)をコピーしたのが原因かも知れないと
疑って、.rpmmacros をいろいろ変えてみましたが解決しませんでした。
パッケージによってこのエラーが出る時と出ないときがあったよう
な気がします(ここは、はっきりと覚えていません、すいません)。
再現性が取れなかったので、報告しませんでした。
で、この記事を読みまして、再度挑戦すると再現しました。

以下に、詳細を述べます。
自作のスクリプト群を圧縮する際に圧縮されるファイルの所有者によって
エラーが出るかどうかが決まりました。
1, エラーの出る場合
一般ユーザ(yoshi) を圧縮されるファイル群の所有者にして
# chown -R yoshi:privilege myscript/
# tar cfvz myscript/ netcmd.tar.gz; mv netcmd.tar.gz ~/rpm/SOURCES
として、ソースファイル(といっても、スクリプトを圧縮しただけで
すが)を作成します。
その後、netcmd.tar.gz をソースファイルとして
# cd ~/rpm/SPECS; rpm -ba netcmd.spec
とすると、最後に、

Requires: perl >= 5.005 perlroutine >= 1.0 ld-linux.so.2 libc.so.6 /bin/bash /bin/sh /usr/bin/perl libc.so.6(GLIBC_2.0)
Fujita_Yoshihiko/rpm/SRPMS/netcmd-1.0-1.src.rpm のオープンに失敗しました: そのようなファイルやディレクトリはありません

となります。/etc/passwd の第5フィールドの
 <Fujita_Yoshihiko> が何故か表示されています。

2, エラーが出ない場合
root を所有者にして同じようにソースファイルを
# chown -R root:root myscript/
として、以下同様に行いますと、
# rpm -ba netcmd.spec
Requires: perl >= 5.005 perlroutine >= 1.0 ld-linux.so.2 libc.so.6 /bin/bash /bin/sh /usr/bin/perl libc.so.6(GLIBC_2.0)
書き込み中: /root/rpm/SRPMS/netcmd-1.0-1.src.rpm
書き込み中: /root/rpm/RPMS/i386/netcmd-1.0-1.i386.rpm
実行中(%clean): /bin/sh -e /var/tmp/rpm-tmp.53542
+ umask 022
+ cd /root/rpm/BUILD
+ /bin/rm -fR /root/rpm/BUILD/netcmd-1.0
+ /bin/rm -fR /var/tmp/netcmd-1.0-buildroot
+ exit 0

と、正常にパッケージングできます。原因は不明です。

> ・/rootに.rpmmacrosという名前のファイルはありますか?
>   あれば、その中に%_topdirはどう設定されていますか?
> ・rootの環境変数で$HOMEを指定していますか?

# cat /root/.rpmmacros
%_topdir ${HOME}/rpm
#%packager Your Name    <your mail address>

%_sysconfdir /etc
です。.rpmmacros の設定は良く分かっていないのであまり変更した
覚えはありません。

> なにも初期設定を変更していないのであれば
> おそらくそういう動作はしません。
   (中略)
> 初めから言われているような動作をしているのであれば
> 他のひとにも同様の現象が起こるはずですが、
> 特に同様の問題は報告はない様に思います。

いろいろ設定を変更したので、そのいずれかが影響を与えているの
かも知れません。他の人に、同様の現象が出ていないところを見る
と、こちらの設定のどこかが影響している可能性大です。
改善しましたら、また投稿させて頂きます。