无法在特定路径中安装 rpm(cpio:mkdir 失败 - 没有此文件或目录)

无法在特定路径中安装 rpm(cpio:mkdir 失败 - 没有此文件或目录)

我的 .rpm 文件如下..

$> rpm2cpio bq1510-15.10.01.06-1.i386.rpm | cpio -it
./opt
./opt/td
./opt/td/client
./opt/td/client/15.10
./opt/td/client/15.10/bin
./opt/td/client/15.10/bin/bq
./opt/td/client/15.10/bin/tdclientdir
./opt/td/client/15.10/include
./opt/td/client/15.10/include/btnfyext.h
./opt/td/client/15.10/sample
./opt/td/client/15.10/sample/btnfyext.c
./opt/td/client/15.10/sample/mkbtnfyext.linux
34 blocks

当我使用以下命令安装此包时,我成功安装..

$> rpm -ivvh --nodeps --prefix /opt/tel/client/usd1510 bq1510-15.10.01.06-1.i386.rpm

D: ============== bq1510-15.10.01.06-1.i386.rpm
D: Expected size:        16765 = lead(96)+sigs(180)+pad(4)+data(16485)
D:   Actual size:        16765
D: bq1510-15.10.01.06-1.i386.rpm: Header SHA1 digest: OK (6f5bb3656070541d65c7ec9b9f336d355c3cad8d)
D: ========== relocations
D:     0 relocate /opt -> /opt/tel/client/usd1510
D: relocating /opt to /opt/tel/client/usd1510
D: relocating directory /opt/tel/client/ to /opt/tel/client/usd1510/tel/client/
D: relocating directory /opt/td/client/15.10/sample/ to /opt/tel/client/usd1510/td/client/15.10/sample/
D: relocating directory /opt/td/client/15.10/include/ to /opt/tel/client/usd1510/td/client/15.10/include/
D: relocating directory /opt/td/client/15.10/bin/ to /opt/tel/client/usd1510/td/client/15.10/bin/
D: relocating directory /opt/td/client/15.10/ to /opt/tel/client/usd1510/td/client/15.10/
D: relocating directory /opt/td/client/ to /opt/tel/client/usd1510/td/client/
D: relocating directory /opt/td/ to /opt/tel/client/usd1510/td/
D: relocating directory /opt/ to /opt/tel/client/usd1510/
D:      added binary package [0]
D: found 0 source and 1 binary packages
D: opening  db environment /var/lib/rpm/Packages create:cdb:mpool:private
D: opening  db index       /var/lib/rpm/Packages rdonly mode=0x0
D: locked   db index       /var/lib/rpm/Packages
D: closed   db index       /var/lib/rpm/Packages
D: closed   db environment /var/lib/rpm/Packages
D: ========== recording tsort relations
D: ========== tsorting packages (order, #predecessors, #succesors, tree, depth, breadth)
D:     0    0    0    0    1    0   +bq1510-15.10.01.06-1.i386
D: installing binary packages
D: opening  db environment /var/lib/rpm/Packages create:cdb:mpool:private
D: opening  db index       /var/lib/rpm/Packages create mode=0x42
D: locked   db index       /var/lib/rpm/Packages
D: sanity checking 1 elements
D: opening  db index       /var/lib/rpm/Name create:nofsync mode=0x42
D: running pre-transaction scripts
D: computing 12 file fingerprints
Preparing...                D: computing file dispositions
D: opening  db index       /var/lib/rpm/Basenames create:nofsync mode=0x42
########################################### [100%]
D: ========== +++ bq1510-15.10.01.06-1 i386-linux 0x0
D: Expected size:        16765 = lead(96)+sigs(180)+pad(4)+data(16485)
D:   Actual size:        16765
D: bq1510-15.10.01.06-1: Header SHA1 digest: OK (6f5bb3656070541d65c7ec9b9f336d355c3cad8d)
D: relocating /opt to /opt/tel/client/usd1510
D: relocating directory /opt/tel/client/ to /opt/tel/client/usd1510/tel/client/
D: relocating directory /opt/td/client/15.10/sample/ to /opt/tel/client/usd1510/td/client/15.10/sample/
D: relocating directory /opt/td/client/15.10/include/ to /opt/tel/client/usd1510/td/client/15.10/include/
D: relocating directory /opt/td/client/15.10/bin/ to /opt/tel/client/usd1510/td/client/15.10/bin/
D: relocating directory /opt/td/client/15.10/ to /opt/tel/client/usd1510/td/client/15.10/
D: relocating directory /opt/td/client/ to /opt/tel/client/usd1510/td/client/
D: relocating directory /opt/td/ to /opt/tel/client/usd1510/td/
D: relocating directory /opt/ to /opt/tel/client/usd1510/
D:   install: bq1510-15.10.01.06-1 has 12 files, test = 0
D: opening  db index       /var/lib/rpm/Triggername create:nofsync mode=0x42
D:   install: %pre(bq1510-15.10.01.06-1.i386) asynchronous scriptlet start
D:   install: %pre(bq1510-15.10.01.06-1.i386) execv(/bin/sh) pid 9584
++ uname -p
+ ARCH=x86_64
+ '[' x86_64 = s390x ']'
+ '[' x86_64 = s390 ']'
+ CURR_SHRTVER=15.10
+ '[' 15.10 = 15.10 ']'
+ CURR_SHRTVER=15.10.01
+ PKGINST=bq1510-15.10.01.06-1
+ SHRTVERNODOT=1510
++ grep bq-15.10
++ rpm -qa
+ installed_bq=
+ '[' -n '' ']'
++ egrep '(bq|ftld|arc)1510'
++ rpm -qa
+ installed_pkgs=
+ '[' -z '' ']'
+ echo ''

+ echo '   WARNING: This bq1510-15.10.01.06-1 package requires'
   WARNING: This bq1510-15.10.01.06-1 package requires
+ echo '   tgs1510, tiu1510 and pm1510.'
   tgs1510, tiu1510 and pm1510.
+ echo '   Please install the latest dependent packages'
   Please install the latest dependent packages
+ echo '   before installing bq1510-15.10.01.06-1'
   before installing bq1510-15.10.01.06-1
+ echo ''

++ cut '-d ' -f1
++ echo
+ installed_pkg=
+ '[' -n '' ']'
+ exit 0
D:   install: waitpid(9584) rc 9584 status 0 secs 0.832
   1:bq1510               D: ========== Directories not explicitly included in package:
D:          1 /opt/tel/client/usd1510/
D:          8 /opt/tel/client/usd1510/tel/client/
D: ==========
D: /opt/tel directory created with perms 0755, no context.
D: /opt/tel/client directory created with perms 0755, no context.
D: /opt/tel/client/usd1510 directory created with perms 0755, no context.
D: /opt/tel/client/usd1510/tel directory created with perms 0755, no context.
D: /opt/tel/client/usd1510/tel/client directory created with perms 0755, no context.
D: fini      040755  3 (   0,   0)         0 /opt/tel/client/usd1510/tel/client/usd1510
D: fini      040755  3 (   0,   0)         0 /opt/tel/client/usd1510/td
D: fini      040755  3 (   0,   0)         0 /opt/tel/client/usd1510/td/client
D: fini      040755  5 (   0,   0)         0 /opt/tel/client/usd1510/td/client/15.10
D: fini      040755  2 (   0,   0)         0 /opt/tel/client/usd1510/td/client/15.10/bin
D: fini      100755  1 (   0,   0)         0 /opt/tel/client/usd1510/td/client/15.10/bin/bq;56f24612
D: fini      100755  1 (   0,   0)         5 /opt/tel/client/usd1510/td/client/15.10/bin/tdclientdir;56f24612
D: fini      040755  2 (   0,   0)         0 /opt/tel/client/usd1510/td/client/15.10/include
D: fini      100755  1 (   0,   0)      5624 /opt/tel/client/usd1510/td/client/15.10/include/btnfyext.h;56f24612
D: fini      040755  2 (   0,   0)         0 /opt/tel/client/usd1510/td/client/15.10/sample
D: fini      100755  1 (   0,   0)      7798 /opt/tel/client/usd1510/td/client/15.10/sample/btnfyext.c;56f24612
########################################### [100%]
D: fini      100755  1 (   0,   0)      1847 /opt/tel/client/usd1510/td/client/15.10/sample/mkbtnfyext.linux;56f24612
BZDIO:       3 reads,    17068 total bytes in 0.000450 secs
D:   +++ h#    4040 Header SHA1 digest: OK (6f5bb3656070541d65c7ec9b9f336d355c3cad8d)
D: adding "bq1510" to Name index.
D: adding 12 entries to Basenames index.
D: opening  db index       /var/lib/rpm/Group create:nofsync mode=0x42
D: adding "Applications/Databases" to Group index.
D: opening  db index       /var/lib/rpm/Requirename create:nofsync mode=0x42
D: adding 11 entries to Requirename index.
D: opening  db index       /var/lib/rpm/Providename create:nofsync mode=0x42
D: adding 2 entries to Providename index.
D: opening  db index       /var/lib/rpm/Conflictname create:nofsync mode=0x42
D: adding "pdegpl" to Conflictname index.
D: adding 5 entries to Triggername index.
D: opening  db index       /var/lib/rpm/Dirnames create:nofsync mode=0x42
D: adding 9 entries to Dirnames index.
D: opening  db index       /var/lib/rpm/Requireversion create:nofsync mode=0x42
D: adding 11 entries to Requireversion index.
D: opening  db index       /var/lib/rpm/Provideversion create:nofsync mode=0x42
D: adding 2 entries to Provideversion index.
D: opening  db index       /var/lib/rpm/Installtid create:nofsync mode=0x42
D: adding 1 entries to Installtid index.
D: opening  db index       /var/lib/rpm/Sigmd5 create:nofsync mode=0x42
D: adding 1 entries to Sigmd5 index.
D: opening  db index       /var/lib/rpm/Sha1header create:nofsync mode=0x42
D: adding "6f5bb3656070541d65c7ec9b9f336d355c3cad8d" to Sha1header index.
D: opening  db index       /var/lib/rpm/Filemd5s create:nofsync mode=0x42
D: adding 12 entries to Filemd5s index.
D:   install: %post(bq1510-15.10.01.06-1.i386) asynchronous scriptlet start
D:   install: %post(bq1510-15.10.01.06-1.i386)        execv(/bin/sh) pid 9595
+ INCDIR=/opt/tel/client/usd1510/td/client/15.10/include
+ SAMPLEDIR=/opt/tel/client/usd1510/td/client/15.10/sample
+ INSTALLDIR=/opt/tel/client/usd1510/td/client/15.10
+ CURR_SHRTVER=15.10
++ readlink /opt/tel/client/usd1510/td/client/etc/ttu_bash.env
+ envLink=
+ '[' -n '' ']'
+ '[' -n '' ']'
+ exit 0
D:   install: waitpid(9595) rc 9595 status 0 secs 0.004
D: running post-transaction scripts
D: closed   db index       /var/lib/rpm/Filemd5s
D: closed   db index       /var/lib/rpm/Sha1header
D: closed   db index       /var/lib/rpm/Sigmd5
D: closed   db index       /var/lib/rpm/Installtid
D: closed   db index       /var/lib/rpm/Provideversion
D: closed   db index       /var/lib/rpm/Requireversion
D: closed   db index       /var/lib/rpm/Dirnames
D: closed   db index       /var/lib/rpm/Triggername
D: closed   db index       /var/lib/rpm/Conflictname
D: closed   db index       /var/lib/rpm/Providename
D: closed   db index       /var/lib/rpm/Requirename
D: closed   db index       /var/lib/rpm/Group
D: closed   db index       /var/lib/rpm/Basenames
D: closed   db index       /var/lib/rpm/Name
D: closed   db index       /var/lib/rpm/Packages
D: closed   db environment /var/lib/rpm/Packages
D: May free Score board((nil))

但是如果我使用与rpm2cpio命令中相同的名称(意味着)
假设如果我的rpm2cpio文件是这样的.. 如果我使用我的前缀' './opt/**td**
那么它就会失败(不会安装)除了' '我可以使用任何名称并且它可以成功安装..
./opt/**td**/client**td**

$> rpm -ivvh --nodeps --prefix /opt/td/client/usd1510 bq1510-15.10.01.06-1.i386.rpm

D: ============== bq1510-15.10.01.06-1.i386.rpm
D: Expected size:        16765 = lead(96)+sigs(180)+pad(4)+data(16485)
D:   Actual size:        16765
D: bq1510-15.10.01.06-1.i386.rpm: Header SHA1 digest: OK (6f5bb3656070541d65c7ec9b9f336d355c3cad8d)
D: ========== relocations
D:     0 relocate /opt -> /opt/td/client/usd1510
D: relocating /opt to /opt/td/client/usd1510
D: relocating directory /opt/td/client/15.10/sample/ to /opt/td/client/usd1510/td/client/15.10/sample/
D: relocating directory /opt/td/client/15.10/include/ to /opt/td/client/usd1510/td/client/15.10/include/
D: relocating directory /opt/td/client/15.10/bin/ to /opt/td/client/usd1510/td/client/15.10/bin/
D: relocating directory /opt/td/client/15.10/ to /opt/td/client/usd1510/td/client/15.10/
D: relocating directory /opt/td/client/ to /opt/td/client/usd1510/td/client/
D: relocating directory /opt/td/ to /opt/td/client/usd1510/td/
D: relocating directory /opt/ to /opt/td/client/usd1510/
D:      added binary package [0]
D: found 0 source and 1 binary packages
D: opening  db environment /var/lib/rpm/Packages create:cdb:mpool:private
D: opening  db index       /var/lib/rpm/Packages rdonly mode=0x0
D: locked   db index       /var/lib/rpm/Packages
D: closed   db index       /var/lib/rpm/Packages
D: closed   db environment /var/lib/rpm/Packages
D: ========== recording tsort relations
D: ========== tsorting packages (order, #predecessors, #succesors, tree, depth, breadth)
D:     0    0    0    0    1    0   +bq1510-15.10.01.06-1.i386
D: installing binary packages
D: opening  db environment /var/lib/rpm/Packages create:cdb:mpool:private
D: opening  db index       /var/lib/rpm/Packages create mode=0x42
D: locked   db index       /var/lib/rpm/Packages
D: sanity checking 1 elements
D: opening  db index       /var/lib/rpm/Name create:nofsync mode=0x42
D: running pre-transaction scripts
D: computing 12 file fingerprints
Preparing...                D: computing file dispositions
D: opening  db index       /var/lib/rpm/Basenames create:nofsync mode=0x42
########################################### [100%]
D: ========== +++ bq1510-15.10.01.06-1 i386-linux 0x0
D: Expected size:        16765 = lead(96)+sigs(180)+pad(4)+data(16485)
D:   Actual size:        16765
D: bq1510-15.10.01.06-1: Header SHA1 digest: OK (6f5bb3656070541d65c7ec9b9f336d355c3cad8d)
D: relocating /opt to /opt/td/client/usd1510
D: relocating directory /opt/td/client/15.10/sample/ to /opt/td/client/usd1510/td/client/15.10/sample/
D: relocating directory /opt/td/client/15.10/include/ to /opt/td/client/usd1510/td/client/15.10/include/
D: relocating directory /opt/td/client/15.10/bin/ to /opt/td/client/usd1510/td/client/15.10/bin/
D: relocating directory /opt/td/client/15.10/ to /opt/td/client/usd1510/td/client/15.10/
D: relocating directory /opt/td/client/ to /opt/td/client/usd1510/td/client/
D: relocating directory /opt/td/ to /opt/td/client/usd1510/td/
D: relocating directory /opt/ to /opt/td/client/usd1510/
D:   install: bq1510-15.10.01.06-1 has 12 files, test = 0
D: opening  db index       /var/lib/rpm/Triggername create:nofsync mode=0x42
D:   install: %pre(bq1510-15.10.01.06-1.i386) asynchronous scriptlet start
D:   install: %pre(bq1510-15.10.01.06-1.i386) execv(/bin/sh) pid 9611
++ uname -p
+ ARCH=x86_64
+ '[' x86_64 = s390x ']'
+ '[' x86_64 = s390 ']'
+ CURR_SHRTVER=15.10
+ '[' 15.10 = 15.10 ']'
+ CURR_SHRTVER=15.10.01
+ PKGINST=bq1510-15.10.01.06-1
+ SHRTVERNODOT=1510
++ grep bq-15.10
++ rpm -qa
+ installed_bq=
+ '[' -n '' ']'
++ egrep '(bq|ftld|arc)1510'
++ rpm -qa
+ installed_pkgs=
+ '[' -z '' ']'
+ echo ''

+ echo '   WARNING: This bq1510-15.10.01.06-1 package requires'
   WARNING: This bq1510-15.10.01.06-1 package requires
+ echo '   tgs1510, tiu1510 and pm1510.'
   tgs1510, tiu1510 and pm1510.
+ echo '   Please install the latest dependent packages'
   Please install the latest dependent packages
+ echo '   before installing bq1510-15.10.01.06-1'
   before installing bq1510-15.10.01.06-1
+ echo ''

++ cut '-d ' -f1
++ echo
+ installed_pkg=
+ '[' -n '' ']'
+ exit 0
D:   install: waitpid(9611) rc 9611 status 0 secs 0.810
   1:bq1510               D: ========== Directories not explicitly included in package:
D:          1 /opt/td/client/usd1510/
D: ==========
D: /opt/td directory created with perms 0755, no context.
D: /opt/td/client directory created with perms 0755, no context.
D: /opt/td/client/usd1510 directory created with perms 0755, no context.
D: undo      040755  3 (   0,   0)         0 /opt/td/client/usd1510/td/client/usd1510
BZDIO:       1 reads,     8192 total bytes in 0.000402 secs
########################################### [100%]
error: unpacking of archive failed on file /opt/td/client/usd1510/td/client/usd1510: cpio: mkdir failed - No such file or directory
D: running post-transaction scripts
D: closed   db index       /var/lib/rpm/Triggername
D: closed   db index       /var/lib/rpm/Basenames
D: closed   db index       /var/lib/rpm/Name
D: closed   db index       /var/lib/rpm/Packages
D: closed   db environment /var/lib/rpm/Packages
D: May free Score board((nil))

有人能帮我为什么它不会安装与中相同的名称吗rpm2cpio(我通过更改.spec文件中的不同名称进行了测试,但仍然不会安装那些路径中提到的名称

' ./opt/tld' 表示我无法给出我的--prefix' ./opt/tld/client'

' ./opt/tel' 表示我无法给出我的--prefix' ./opt/tel/client'

但在上述两种情况下,我可以使用其他名称来安装!!但不能使用相同的名称。)

答案1

看起来你的 rpm 正在尝试自行安装,/opt并将/td/client/usd110在安装前创建目录树,而无需你创建它。尝试rm -r /opt/td使用前缀运行你的命令/opt

相关内容