西村です。 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> 東京大学大学院総合文化研究科広域システム科学系