Perl cpan2rpm铁路超高统计/tmp文件夹
我正在尝试为RHEL6构建perl堆优先级。奇怪的是当我跑的时候Perl cpan2rpm铁路超高统计/tmp文件夹,perl,cpan,Perl,Cpan,我正在尝试为RHEL6构建perl堆优先级。奇怪的是当我跑的时候 cpan2rpm堆::优先级它显示以下内容 ... Tarball extraction: [/root/rpm/SOURCES/Heap-Priority-0.01.tar.gz] Can't stat /tmp/CldQkErG6r/18:51: No such file or directory at /usr/bin/cpan2rpm line 392 get_meta(): No such file or direct
cpan2rpm堆::优先级
它显示以下内容
...
Tarball extraction: [/root/rpm/SOURCES/Heap-Priority-0.01.tar.gz]
Can't stat /tmp/CldQkErG6r/18:51: No such file or directory
at /usr/bin/cpan2rpm line 392
get_meta(): No such file or directory at /usr/bin/cpan2rpm line 396.
...
实际上,不会创建此临时文件夹。为什么要买?
我的tmp文件夹权限是777
drwxrwxrwt. 3 root root 4096 May 29 16:35 tmp
已知问题,请参阅。问题在于输出的用户列中的空格
$ tar -tzvf $HOME/rpmbuild/SOURCES/Heap-Priority-0.01.tar.gz |head -1
drwxr-xr-x James Freeman/544 0 2002-05-07 14:51 Heap-Priority-0.01/
应用以下修补程序修复此模块的问题。为了获取名称,我们访问的不是第五列,而是最后一列。我不知道这个补丁还可能出现什么问题,但平均来说,它的错误应该比原始代码少
diff --git a/cpan2rpm b/cpan2rpm
index 28e8b01..6a36b68 100755
--- a/cpan2rpm
+++ b/cpan2rpm
@@ -1259,7 +1259,7 @@ sub untar($) {
;
chomp($_ = qx/$cmd/);
- $_ = (split)[5] unless $zip;
+ $_ = (split)[-1] unless $zip;
$dst .= "/$1" if m|^(\S+)/?|;
$dst =~ s|/*$||; # path shouldn't end in / or tardir gets wiped
$dst =~ s|\./||; # paths in tarballs shouldn't be relative
你本可以自己发现的。学会使用这个工具,它是无价的。我认为这可能是一个非常干净的方法:
--- /usr/bin/cpan2rpm.orig 2017-10-20 14:45:57.000000000 -0700
+++ /usr/bin/cpan2rpm 2017-10-23 12:29:07.006118950 -0700
@@ -1258,7 +1258,7 @@
my $cmd = $zip
? "unzip -l $_ | grep -P -o '\\S+/\$' |tail -1"
- : "tar -t${z}vf $_ |head -1"
+ : "tar --numeric-owner -t${z}vf $_ |head -1"
;
chomp($_ = qx/$cmd/);