西村です。
T.Okayama wrote:
> その後、/root/rpm/SPECS/ に移って
> # rpm -bb acrobat.spec
> を実行すると、
>
> ファイル 0:Tomoaki Okayama/rpm/SOURCES/linux-506.tar.gz: そのようなファイルやディレクトリはありません
>
> と言われました。おそらく、インストールファイルのどれかで、~/ が
> 0:Tomoaki Okayama/ になぜか変わっているのだと思いますが、それは
> どのファイルでやっているのか、いまいちわかりません(のぞいてみたのは
> acrobat.spec のみですが)。ちなみに Tomoaki Okayama は、okayama という
> ユーザーの名前です(/etc/passwd に書いてある)。普段はこのユーザーで
> 作業しています。
再現しました。
しかも再現条件もわかったようです。
再現するのは root でビルドを行ったときです。
~/rpm/SRPMS% su
Password:
~root/.rpmmacros は標準のままです。
..hi/rpm/SRPMS# cat /root/.rpmmacros
%_topdir ${HOME}/rpm
#%packager Your Name <your mail address>
%_sysconfdir /etc
ここで SRPM をインストールし、取ってきた tarball を置きます。
..hi/rpm/SRPMS# rpm -ivh Acrobat-reader-5.06-0vl2.nosrc.rpm
../rpm/SOURCES# cp -p linux-506.tar.gz jpnfont.tar.gz /root/rpm/SOURCES
ファイルは取ってきたユーザの所有になっています。
~/rpm/SPECS# ls -l ../SOURCES
:
-rw-rw-r-- 1 nishi nishi 5332283 Aug 16 07:41 jpnfont.tar.gz
-rw-rw-r-- 1 nishi nishi 9281557 Jul 24 03:08 linux-506.tar.gz
ここでビルドすると起きました。
~/rpm/SPECS# rpm -bp acrobat.spec
ファイル NISHIMURA Daisuke/rpm/SOURCES/linux-506.tar.gz: そのようなファ
イルやディレクトリはありません
しかし、ファイルを root の所有にすると問題なしです。
~/rpm/SOURCES# chown root:root jpnfont.tar.gz linux-506.tar.gz
~/rpm/SOURCES# ls -l
:
-rw-rw-r-- 1 root root 5332283 Aug 16 07:41 jpnfont.tar.gz
-rw-rw-r-- 1 root root 9281557 Jul 24 03:08 linux-506.tar.gz
~/rpm/SPECS# rpm -bp acrobat.spec
実行中(%prep): /bin/sh -e /var/tmp/rpm-tmp.49301
+ umask 022
+ cd /root/rpm/BUILD
:
root になるやりかたは、 su のほか、 su -m や sudo でも同じでした。
root login は試していません。
ということで、ビルドを実行するユーザとファイルの所有者が
一致しないとき、というのが怪しいです。
root 以外のユーザだとどうなのかというのにも興味がありますが、
アカウントを作らないといけないので試していません。
ソースも見ているのですが、どうも getpwuid() が怪しいです。
pw_dir を取らないといけないのに pw_gecos を取っているようで。
--
西村 大介 <nishi@xxxxxxxxxxxxxxxxxxxxx>
東京大学大学院総合文化研究科広域システム科学系