[opensuse-ja] zypper source-install でソースはどこにインストールされるのでしょうか?
zypper source-install サブコマンドで
教えていただきたいことがあります。
Q. zypper source-install でソースは
どこにインストールされるのでしょうか?
以下の操作をしました。
sudo zypper mr -e repo-debug repo-source
sudo zypper source-install libgcrypt
ところがダウンロードの操作はされてはいるように見えるのですが、
sudo zypper source-install libgcrypt
コマンドが完了した後、カレントディレクトリにも
/usr/src/packages/* 配下にもそれらしいファイルが
ダウンロードされた形跡がありません。
sudo strace -o strace.txt zypper source-install libgcrypt
を実行してstraceの出力を取り
egrep src.rpm strace.txt を見ますと
--------
read(5, ".10.2-1.4.1.src.rpm\0s\205r\t\6oxygen-"..., 4096) = 4096
read(5, "kde4-4.10.2-1.4.5.src.rpm\0s\203\200\"w\3"..., 4096) = 4096
stat("/var/cache/zypp/packages/repo-source/suse/src/libgcrypt-1.5.0-12.1.1.src.rpm",
0x7fff30506470) = -1 ENOENT (No such file or directory)
stat("/var/cache/zypp/packages/repo-source/suse/src/libgcrypt-1.5.0-12.1.1.src.rpm",
0x7fff30506520) = -1 ENOENT (No such file or directory)
open("/var/adm/mount/AP_0xviBWxE/suse/src/libgcrypt-1.5.0-12.1.1.src.rpm.new.zypp.n4A9wX",
O_RDWR|O_CREAT|O_EXCL|O_CLOEXEC, 0600) = 5
stat("/var/adm/mount/AP_0xviBWxE/suse/src/libgcrypt-1.5.0-12.1.1.src.rpm",
0x7fff30505a70) = -1 ENOENT (No such file or directory)
open("/var/adm/mount/AP_0xviBWxE/suse/src/libgcrypt-1.5.0-12.1.1.src.rpm.new.zypp.n4A9wX",
O_RDONLY|O_CLOEXEC) = 5
stat("/var/adm/mount/AP_0xviBWxE/suse/src/libgcrypt-1.5.0-12.1.1.src.rpm.new.zypp.n4A9wX",
{st_mode=S_IFREG|0600, st_size=3344, ...}) = 0
open("/var/adm/mount/AP_0xviBWxE/suse/src/libgcrypt-1.5.0-12.1.1.src.rpm.new.zypp.n4A9wX",
O_RDONLY|O_CLOEXEC) = 16
open("/var/adm/mount/AP_0xviBWxE/suse/src/libgcrypt-1.5.0-12.1.1.src.rpm.new.zypp.n4A9wX",
O_RDWR|O_CREAT|O_TRUNC|O_CLOEXEC, 0666) = 5
stat("/var/adm/mount/AP_0xviBWxE/suse/src/libgcrypt-1.5.0-12.1.1.src.rpm",
0x7fff30505c80) = -1 ENOENT (No such file or directory)
rename("/var/adm/mount/AP_0xviBWxE/suse/src/libgcrypt-1.5.0-12.1.1.src.rpm.new.zypp.n4A9wX",
"/var/adm/mount/AP_0xviBWxE/suse/src/libgcrypt-1.5.0-12.1.1.src.rpm")
= 0
stat("/var/adm/mount/AP_0xviBWxE/suse/src/libgcrypt-1.5.0-12.1.1.src.rpm",
{st_mode=S_IFREG|0644, st_size=1457571, ...}) = 0
lstat("/var/adm/mount/AP_0xviBWxE/suse/src/libgcrypt-1.5.0-12.1.1.src.rpm",
{st_mode=S_IFREG|0644, st_size=1457571, ...}) = 0
lstat("/var/cache/zypp/packages/repo-source/suse/src/libgcrypt-1.5.0-12.1.1.src.rpm",
0x7fff30506540) = -1 ENOENT (No such file or directory)
link("/var/adm/mount/AP_0xviBWxE/suse/src/libgcrypt-1.5.0-12.1.1.src.rpm",
"/var/cache/zypp/packages/repo-source/suse/src/libgcrypt-1.5.0-12.1.1.src.rpm")
= 0
stat("/var/adm/mount/AP_0xviBWxE/suse/src/libgcrypt-1.5.0-12.1.1.src.rpm",
{st_mode=S_IFREG|0644, st_size=1457571, ...}) = 0
unlink("/var/adm/mount/AP_0xviBWxE/suse/src/libgcrypt-1.5.0-12.1.1.src.rpm") = 0
stat("/var/cache/zypp/packages/repo-source/suse/src/libgcrypt-1.5.0-12.1.1.src.rpm",
{st_mode=S_IFREG|0644, st_size=1457571, ...}) = 0
stat("/var/cache/zypp/packages/repo-source/suse/src/libgcrypt-1.5.0-12.1.1.src.rpm",
{st_mode=S_IFREG|0644, st_size=1457571, ...}) = 0
open("/var/cache/zypp/packages/repo-source/suse/src/libgcrypt-1.5.0-12.1.1.src.rpm",
O_RDONLY) = 5
open("/var/cache/zypp/packages/repo-source/suse/src/libgcrypt-1.5.0-12.1.1.src.rpm",
O_RDONLY) = 5
stat("/var/cache/zypp/packages/repo-source/suse/src/libgcrypt-1.5.0-12.1.1.src.rpm",
{st_mode=S_IFREG|0644, st_size=1457571, ...}) = 0
stat("/var/cache/zypp/packages/repo-source/suse/src/libgcrypt-1.5.0-12.1.1.src.rpm",
{st_mode=S_IFREG|0644, st_size=1457571, ...}) = 0
open("/var/cache/zypp/packages/repo-source/suse/src/libgcrypt-1.5.0-12.1.1.src.rpm",
O_RDONLY) = 5
stat("/var/cache/zypp/packages/repo-source/suse/src/libgcrypt-1.5.0-12.1.1.src.rpm",
{st_mode=S_IFREG|0644, st_size=1457571, ...}) = 0
stat("/var/cache/zypp/packages/repo-source/suse/src/libgcrypt-1.5.0-12.1.1.src.rpm",
{st_mode=S_IFREG|0644, st_size=1457571, ...}) = 0
open("/var/cache/zypp/packages/repo-source/suse/src/libgcrypt-1.5.0-12.1.1.src.rpm",
O_RDONLY) = 5
open("/var/cache/zypp/packages/repo-source/suse/src/libgcrypt-1.5.0-12.1.1.src.rpm",
O_RDONLY) = 5
unlink("/var/cache/zypp/packages/repo-source/suse/src/libgcrypt-1.5.0-12.1.1.src.rpm")
= 0
--------
となっており、
私がstraceの出力を読み誤っているのでなければ、
"/var/cache/zypp/packages/repo-source/suse/src/libgcrypt-1.5.0-12.1.1.src.rpm"
にファイルをダウンロードした後、
ファイルをunlink()、つまり消してしまっているかのように見えます。
http://opensuse-man-ja.berlios.de/opensuse-html/cha.sw_cl.html
を読んでみたのですが、zypper source-install の使い方は
よく解りませんでした。
Debian/Ubuntu の apt-get source <package> の様に
カレントディレクトリにパッケージをダウンロード
できればベストなのですが、
ソースパッケージをインストールする正しい方法を教えてください。
念のためにstraceの結果を以下に置いておきます。
https://dl.dropboxusercontent.com/u/86335040/openSUSE/zypper/strace.txt.xz
https://dl.dropboxusercontent.com/u/86335040/openSUSE/zypper/strace.egrep.tx...
--
1xx
鎌田靖彦@翻訳人です。 ご無沙汰しております。
Q. zypper source-install でソースは どこにインストールされるのでしょうか?
もしかして、~/rpmbuild以下にインストールされていませんか? /usr/lib/rpm/macrosに詳細な仕組みが書いてありますが、/usr/src/packages に書き込むことのできない場合、代替として~/rpmbuild以下にインストール されるようになっています。 これはopenSUSE 12.1以降で変更された仕様です(openSUSE 12.1のリリース ノートにもその旨が記されています)。 以上です。 -- Yasuhiko Kamata E-mail: belphegor@belbel.or.jp -- To unsubscribe, e-mail: opensuse-ja+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-ja+owner@opensuse.org
2013年5月27日 7:43 Yasuhiko Kamata
鎌田靖彦@翻訳人です。 ご無沙汰しております。
Q. zypper source-install でソースは どこにインストールされるのでしょうか?
もしかして、~/rpmbuild以下にインストールされていませんか?
zypper source-install libgcrypt したときに ~/rpmbuild/SPEC/ ディレクトリ配下に ibgcrypt.spec ~/rpmbuild/SOURCES/ ディレクトリ配下に baselibs.conf idea.c.gz libgcrypt-1.4.1-rijndael_no_strict_aliasing.patch libgcrypt-1.5.0-idea.patch libgcrypt-1.5.0-idea_codecleanup.patch libgcrypt-1.5.0.tar.bz2 libgcrypt-ppc64.patch libgcrypt-sparcv9.diff libgcrypt-strict-aliasing.patch というファイルができていることを確認しました。 情報有り難うございます。
/usr/lib/rpm/macrosに詳細な仕組みが書いてありますが、/usr/src/packages に書き込むことのできない場合、代替として~/rpmbuild以下にインストール されるようになっています。
多分、この行でしょうか。
%_topdir %{expand:%%global _topdir %{lua:if posix.access(rpm.expa
nd("%{_usrsrc}/packages"), "w") then print "%{_usrsrc}/packages" else print "%{g
etenv:HOME}/rpmbuild" end} \
}%_topdir
rpmのマクロも読めるようになっておかないといけないなと痛感しているところです。
ありがとうございます。
--
1xx
participants (2)
-
1xx
-
Yasuhiko Kamata