web-dev-qa-db-ja.com

「アーカイブの解凍に失敗しました... cpio:symlink」にどう対処しますか?

私は問題で立ち往生しています。既存のプロジェクトをRPMにパッケージ化しています。それはうまく構築されますが、私が実行すると

Sudo yum localinstal --nogpgcheck <path to rpm>

次のエラーメッセージが表示されます。

Error: unpacking of archive failed on file <path to symlink>;5656d545: cpio: symlink

RPMはプロジェクトをディレクトリに抽出し、ln -sfn <app name and version>/ latestを実行して、既存のシンボリックリンクlatestを更新してプロジェクトを指すようにします。

Googleはこの問題についてほとんど何も譲らないので、私はこれらの問題についてより多くの経験を持つ誰かが手を貸してくれることを期待しています。

3
maju

これは、ディスク上のファイル/ディレクトリがシンボリックリンクであるときに、rpmパッケージがディレクトリまたはファイルを所有している場合に発生します。またはその逆。これは長い間既知の問題です。

パッケージをインストール/アップグレードする前に、シンボリックリンクを手動で削除する必要があります。または、そのファイルを所有しないようにパッケージを変更します。

4
msuchy

CentOS7.6とCrystalでも同様の問題が発生しました。

Downloading packages:
crystal-0.27.2-1.x86_64.rpm                                                                                                              |  38 MB  00:00:02
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : crystal-0.27.2-1.x86_64                                                                                                                      1/1
Error unpacking rpm package crystal-0.27.2-1.x86_64
error: unpacking of archive failed on file /usr/share/crystal/src/lib_c/AMD64-unknown-openbsd: cpio: rename
  Verifying  : crystal-0.27.2-1.x86_64                                                                                                                      1/1

Failed:
  crystal.x86_64 0:0.27.2-1

Complete!

問題のパス全体を削除してしまいました:/usr/share/crystal/*問題を解決しました。

0
Steffen Roller

私にとって、これは、存在しないディレクトリを指すシンボリックリンクがあったときに発生しました。たとえば、/opt/から/data/へのシンボリックリンクがありましたが、ドライブをマウントしたときにスペルミスがあったため、/data/は存在しませんでした(/daat/の場合)疑問に思う)。

シンボリックリンクが存在するはずの場合は、有効な場所を指していることを確認してください。

0
Arcsector